------- 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