------- Comment #21 from janus at gcc dot gnu dot org 2010-04-19 21:34 ------- (In reply to comment #20) > Created an attachment (id=20429) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20429&action=view) [edit] > A provisional fix for the PR
Yes, the following parts are approved (they're exactly what I had in mind): @@ -10292,6 +10298,8 @@ { c->ts.u.cl = gfc_new_charlen (sym->ns, ifc->ts.u.cl); gfc_expr_replace_comp (c->ts.u.cl->length, c); + if (c->ts.u.cl->length && !c->ts.u.cl->resolved) + gfc_resolve_expr (c->ts.u.cl->length); } } else if (c->ts.interface->name[0] != '\0' && !sym->attr.vtype) @@ -10805,6 +10813,8 @@ { sym->ts.u.cl = gfc_new_charlen (sym->ns, ifc->ts.u.cl); gfc_expr_replace_symbols (sym->ts.u.cl->length, sym); + if (sym->ts.u.cl->length && !sym->ts.u.cl->resolved) + gfc_resolve_expr (sym->ts.u.cl->length); } } else if (sym->ts.interface->name[0] != '\0') Could you explain what the other stuff is needed for? I currently fail to see that. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43227