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

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-02 
06:08:20 UTC ---
Something like the following should work; it might require some refinement or
can be shorted. (Completely untested.)

--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -12015,6 +12046,10 @@ resolve_fl_derived (gfc_symbol *sym)
   if (!sym->attr.is_class)
     gfc_find_symbol (sym->name, sym->ns, 0, &gen_dt);
   if (gen_dt && gen_dt->generic && gen_dt->generic->next
+      && (gen_dt->generic->next->next
+         || !gen_dt->generic->sym->attr.use_assoc
+         || gen_dt->generic->sym->module
+           != gen_dt->generic->next->sym->module)
       && gfc_notify_std (GFC_STD_F2003, "Fortran 2003: Generic name '%s' of "
                         "function '%s' at %L being the same name as derived "
                         "type at %L", sym->name,

Reply via email to