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