------- Comment #3 from janus at gcc dot gnu dot org  2009-06-30 15:06 -------
This patch seems to cure it:

Index: gcc/fortran/trans-types.c
===================================================================
--- gcc/fortran/trans-types.c   (revision 149095)
+++ gcc/fortran/trans-types.c   (working copy)
@@ -1946,7 +1946,13 @@ gfc_get_derived_type (gfc_symbol * deriv
   /* derived->backend_decl != 0 means we saw it before, but its
      components' backend_decl may have not been built.  */
   if (derived->backend_decl)
-    return derived->backend_decl;
+    {
+      /* Its components' backend_decl have been built.  */
+      if (TYPE_FIELDS (derived->backend_decl))
+        return derived->backend_decl;
+      else
+        typenode = derived->backend_decl;
+    }
   else
     {
       /* We see this derived type first time, so build the type node.  */

It is effectively reverting one hunk of r147206, and doesn't even give any
regressions on the proc_ptr_comp_* test cases. (I'm sure there must have been
some reason for this modification, although I have to admit that I cannot
rememeber it ;)


-- 

janus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-06-30 15:06:07
               date|                            |


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

Reply via email to