[Bug fortran/43227] [4.5/4.6 Regression] ICE: segmentation fault in mio_expr

janus at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Apr 19 21:34:00 GMT 2010



------- 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



More information about the Gcc-bugs mailing list