http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54195
--- Comment #15 from Mikael Morin <mikael at gcc dot gnu.org> 2013-02-02 12:13:41 UTC --- (In reply to comment #13) > I'm inclined to test and submit both, They break class_20.f03. Fixed with this (reverts partially patches for pr44044 and pr48112): diff --git a/resolve.c b/resolve.c index ef06f4e..5d0d4a6 100644 --- a/resolve.c +++ b/resolve.c @@ -11051,11 +11051,6 @@ resolve_fl_var_and_proc (gfc_symbol *sym, int mp_flag) { gfc_array_spec *as; - /* Avoid double diagnostics for function result symbols. */ - if ((sym->result || sym->attr.result) && !sym->attr.dummy - && (sym->ns != gfc_current_ns)) - return SUCCESS; - if (sym->ts.type == BT_CLASS && sym->attr.class_ok) as = CLASS_DATA (sym)->as; else