http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50392
--- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-09-14 16:08:16 UTC --- Patch: --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -1264,9 +1265,7 @@ gfc_get_symbol_decl (gfc_symbol * sym) TREE_USED (sym->backend_decl) = 1; if (sym->attr.assign && GFC_DECL_ASSIGN (sym->backend_decl) == 0) - { - gfc_add_assign_aux_vars (sym); - } + gfc_add_assign_aux_vars (sym); if (sym->attr.dimension && DECL_LANG_SPECIFIC (sym->backend_decl) @@ -1277,6 +1276,10 @@ gfc_get_symbol_decl (gfc_symbol * sym) return sym->backend_decl; } + if (sym->result == sym && sym->attr.assign + && GFC_DECL_ASSIGN (sym->backend_decl) == 0) + gfc_add_assign_aux_vars (sym); + if (sym->backend_decl) return sym->backend_decl;