http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46060
kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kargl at gcc dot gnu.org Severity|critical |normal --- Comment #1 from kargl at gcc dot gnu.org 2010-10-18 02:17:48 UTC --- The following patch allows your code to compile, but I have no idea if it is the correct fix. Index: trans-expr.c =================================================================== --- trans-expr.c (revision 165533) +++ trans-expr.c (working copy) @@ -5675,7 +5675,7 @@ gfc_trans_assignment_1 (gfc_expr * expr1 gfc_conv_expr (&rse, expr2); /* Stabilize a string length for temporaries. */ - if (expr2->ts.type == BT_CHARACTER) + if (expr2->ts.type == BT_CHARACTER && rse.string_length) string_length = gfc_evaluate_now (rse.string_length, &rse.pre); else string_length = NULL_TREE;