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.

Reply via email to