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

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |janus at gcc dot gnu.org

--- Comment #2 from janus at gcc dot gnu.org ---
The following patch seems to fix it ...


Index: gcc/fortran/trans-decl.c
===================================================================
--- gcc/fortran/trans-decl.c    (revision 201253)
+++ gcc/fortran/trans-decl.c    (working copy)
@@ -1491,14 +1491,15 @@ gfc_get_symbol_decl (gfc_symbol * sym)
      SAVE is specified otherwise they need to be reinitialized
      every time the procedure is entered. The TREE_STATIC is
      in this case due to -fmax-stack-var-size=.  */
+      bool ptr = sym->attr.pointer || sym->attr.allocatable
+        || (sym->ts.type == BT_CLASS && CLASS_DATA (sym)->attr.pointer);
+                          
       DECL_INITIAL (decl) = gfc_conv_initializer (sym->value, &sym->ts,
                           TREE_TYPE (decl),
                           sym->attr.dimension
                           || (sym->attr.codimension
                               && sym->attr.allocatable),
-                          sym->attr.pointer
-                          || sym->attr.allocatable,
-                          sym->attr.proc_pointer);
+                          ptr, sym->attr.proc_pointer);
     }

   if (!TREE_STATIC (decl)

Reply via email to