[Bug fortran/55827] ICE with multiple fortran modules and character lenght determined by an interfaced pure function

kargl at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Dec 28 22:03:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55827

kargl at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-12-28
                 CC|                            |kargl at gcc dot gnu.org
     Ever Confirmed|0                           |1
      Known to fail|                            |4.2.5, 4.3.6, 4.4.7, 4.5.4,
                   |                            |4.6.4, 4.7.2, 4.8.0

--- Comment #2 from kargl at gcc dot gnu.org 2012-12-28 22:02:43 UTC ---
Here's a possible patch against trunk.  I'm not
familiar with the internals for CLASS, so the
change to class.c may need some additional work.

Index: class.c
===================================================================
--- class.c     (revision 194745)
+++ class.c     (working copy)
@@ -162,7 +162,8 @@ gfc_fix_class_refs (gfc_expr *e)
   if ((e->expr_type != EXPR_VARIABLE
        && e->expr_type != EXPR_FUNCTION)
       || (e->expr_type == EXPR_FUNCTION
-         && e->value.function.isym != NULL))
+         && e->value.function.isym != NULL)
+      || e->symtree == NULL)
     return;

   ts = &e->symtree->n.sym->ts;
Index: trans-expr.c
===================================================================
--- trans-expr.c        (revision 194745)
+++ trans-expr.c        (working copy)
@@ -5527,7 +5527,7 @@ gfc_conv_function_expr (gfc_se * se, gfc

   /* We distinguish statement functions from general functions to improve
      runtime performance.  */
-  if (expr->symtree->n.sym->attr.proc == PROC_ST_FUNCTION)
+  if (expr->symtree && expr->symtree->n.sym->attr.proc == PROC_ST_FUNCTION)
     {
       gfc_conv_statement_function (se, expr);



More information about the Gcc-bugs mailing list