http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57096
janus at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code --- Comment #2 from janus at gcc dot gnu.org 2013-04-28 08:16:05 UTC --- Draft patch: Index: gcc/fortran/trans-decl.c =================================================================== --- gcc/fortran/trans-decl.c (revision 198358) +++ gcc/fortran/trans-decl.c (working copy) @@ -1416,18 +1416,18 @@ gfc_get_symbol_decl (gfc_symbol * sym) } /* Remember this variable for allocation/cleanup. */ - if (sym->attr.dimension || sym->attr.allocatable || sym->attr.codimension - || (sym->ts.type == BT_CLASS && - (CLASS_DATA (sym)->attr.dimension - || CLASS_DATA (sym)->attr.allocatable)) - || (sym->ts.type == BT_DERIVED && sym->ts.u.derived->attr.alloc_comp) - /* This applies a derived type default initializer. */ - || (sym->ts.type == BT_DERIVED - && sym->attr.save == SAVE_NONE - && !sym->attr.data - && !sym->attr.allocatable - && (sym->value && !sym->ns->proc_name->attr.is_main_program) - && !(sym->attr.use_assoc && !intrinsic_array_parameter))) + if ((sym->attr.dimension || sym->attr.allocatable || sym->attr.codimension + || (sym->ts.type == BT_CLASS && + (CLASS_DATA (sym)->attr.dimension + || CLASS_DATA (sym)->attr.allocatable)) + || (sym->ts.type == BT_DERIVED && sym->ts.u.derived->attr.alloc_comp) + /* This applies a derived type default initializer. */ + || (sym->ts.type == BT_DERIVED + && sym->attr.save == SAVE_NONE + && !sym->attr.data + && !sym->attr.allocatable + && (sym->value && !sym->ns->proc_name->attr.is_main_program))) + && (!sym->attr.use_assoc || intrinsic_array_parameter)) gfc_defer_symbol_init (sym); gfc_finish_var_decl (decl, sym);