http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38894
--- Comment #8 from janus at gcc dot gnu.org 2012-04-25 19:47:52 UTC ---
The errors in comment #5 - #7 can be fixed by the following patch:
Index: gcc/fortran/interface.c
===================================================================
--- gcc/fortran/interface.c (revision 186596)
+++ gcc/fortran/interface.c (working copy)
@@ -404,6 +404,13 @@ gfc_compare_derived_types (gfc_symbol *derived1, g
&& strcmp (derived1->module, derived2->module) == 0)
return 1;
+ /* Types from intrinsinc modules (like ISO_C_BINDING) might be renamed,
+ but can still be identified via their 'intmod_sym_id'. */
+ if (derived1->from_intmod != INTMOD_NONE
+ && derived1->from_intmod == derived2->from_intmod
+ && derived1->intmod_sym_id == derived2->intmod_sym_id)
+ return 1;
+
/* Compare type via the rules of the standard. Both types must have
the SEQUENCE or BIND(C) attribute to be equal. */