Failing in trans-io.c

Paul Thomas paulthomas2@wanadoo.fr
Mon Nov 28 05:56:00 GMT 2005


Toon,

>
>print_obs_pp.f90: In function 'print_obs':
>print_obs_pp.f90:8: internal compiler error: tree check: expected integer_cst, have plus_expr in gfc_trans_transfer, at fortran/trans-io.c:1804
>Please submit a full bug report,
>with preprocessed source if appropriate.
>See <URL:http://gcc.gnu.org/bugs.html> for instructions.
>
>
I just encountered this too.  I was preparing to submit my fix for 
pr15809, which worked fine with a few day old source and no longer did 
so when I updated my tree yesterday.   IO of automatic character length 
variables is stuffed for the moment.  The problem is caused by the 
expression for the descriptor dtype

(*ch) -> dtype =  ((<unnamed type> .ch ) << 6) + 49;

which makes this

      if (((TREE_INT_CST_LOW (tmp) & GFC_DTYPE_TYPE_MASK)
           >> GFC_DTYPE_TYPE_SHIFT) != GFC_DTYPE_DERIVED)
barf.

Neither of these looks very hygenic to me.  At very least, the first 
could stand being assigned to a temporary variable.  The second should 
use the references in the gfc_expr, it seems to me.  I'll get on to it, 
since it is blocking me.

Paul



More information about the Fortran mailing list