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