[Bug c++/95976] [[no_unique_address]] on union members has the opposite-of-intended effect
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 30 11:56:48 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95976
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Version|unknown |10.1.0
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This changed behavior twice, first one with
r9-3261-gbedf03a298f87b43f02eaee57542fbd10228ec08
with which the union size became 0 rather than the expected 1, and then in
r9-5710-g7e574f68fa82e7c5f879fd468291ec8b5ebecc83
which made the union size 2 instead (also incorrect). From what I can see in
the standard, [[no_unique_address]] is allowed on union members and those
members are potentially-overlapping subobjects, but the union description makes
it clear that all those members start at offset 0.
More information about the Gcc-bugs
mailing list