[Bug fortran/71783] [5/6/7 Regression ] ICE on valid code in gimplify_var_or_parm_decl at gimplify.c:1801
tkoenig at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 8 21:15:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71783
--- Comment #3 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
The solution turns that fixes the ICE turns out to be reasonably simple: We
were missing a charlen for the allocatable case.
What I do not yet understand is why this code was reached in the first place;
the temporary assignment should never happen for this case.
Index: frontend-passes.c
===================================================================
--- frontend-passes.c (Revision 237949)
+++ frontend-passes.c (Arbeitskopie)
@@ -665,12 +665,10 @@ create_var (gfc_expr * e, const char *vname)
{
gfc_expr *length;
+ symbol->ts.u.cl = gfc_new_charlen (ns, NULL);
length = constant_string_length (e);
if (length)
- {
- symbol->ts.u.cl = gfc_new_charlen (ns, NULL);
- symbol->ts.u.cl->length = length;
- }
+ symbol->ts.u.cl->length = length;
else
symbol->attr.allocatable = 1;
}
Toon, does this fix the ICE for you as well?
More information about the Gcc-bugs
mailing list