https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61456
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm.
This is running into nonoverlapping_component_refs_of_decl_p which has
(gdb) p field1
$32 = <field_decl 0x7ffff6d7f8e8 __delta>
(gdb) p field2
$33 = <field_decl 0x7ffff6d7f720 __delta>
but they are clearly on the same offset and have the same size. They
are members of different types (but same TYPE_MAIN_VARIANT) and appearantly
the TYPE_FIELDs of the variants are not shared.
So appearantly it is not safe to drop to TYPE_MAIN_VARIANT here (and in
nonoverlapping_component_refs_p). But it's also not necessary - if the
TYPE_FILEDs are shared then the DECL_FIELD_CONTEXT of course points to the
same type already.