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.