[Bug fortran/46244] gfc_compare_derived_types is buggy

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Oct 30 15:04:00 GMT 2010


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

--- Comment #3 from janus at gcc dot gnu.org 2010-10-30 15:04:29 UTC ---
The test case in comment #1 can be fixed by:

Index: gcc/fortran/interface.c
===================================================================
--- gcc/fortran/interface.c     (revision 166089)
+++ gcc/fortran/interface.c     (working copy)
@@ -424,6 +424,11 @@ gfc_compare_derived_types (gfc_symbol *derived1, g
      match.  */
   for (;;)
     {
+      if (dt1 == NULL && dt2 == NULL)
+       break;
+      if (dt1 == NULL || dt2 == NULL)
+       return 0;
+      
       if (strcmp (dt1->name, dt2->name) != 0)
        return 0;

@@ -459,11 +464,6 @@ gfc_compare_derived_types (gfc_symbol *derived1, g

       dt1 = dt1->next;
       dt2 = dt2->next;
-
-      if (dt1 == NULL && dt2 == NULL)
-       break;
-      if (dt1 == NULL || dt2 == NULL)
-       return 0;
     }

   return 1;



More information about the Gcc-bugs mailing list