[Bug fortran/45586] [4.6 Regression] ICE non-trivial conversion at assignment

matz at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 20 16:56:00 GMT 2011


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

--- Comment #35 from Michael Matz <matz at gcc dot gnu.org> 2011-01-20 16:36:23 UTC ---
Created attachment 23047
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23047
possible patch

So, this is my current version.  I'm creating a different type for top-level
symbols that are attr.pointer.  Further I'm checking the accessed FIELD_DECLs
for compatibility with the parent type.  If they are not, I explicitely
search the parent type for a same-named FIELD_DECL (which by construction
must exist and match).  I cache this result in a new field of components.
In this way we could theoretically also support a number of other different
record types without having to add new backend_decl fields for each
combination (we would merely add a linear number of more cache entries,
in the hope that the program author is not in fact making use of all such
combinations).

It fixes the testcase.  Haven't tested much further.



More information about the Gcc-bugs mailing list