This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/45586] [4.6 Regression] ICE non-trivial conversion at assignment
- From: "matz at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 20 Jan 2011 16:37:00 +0000
- Subject: [Bug fortran/45586] [4.6 Regression] ICE non-trivial conversion at assignment
- Auto-submitted: auto-generated
- References: <bug-45586-4@http.gcc.gnu.org/bugzilla/>
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.