https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94066
--- Comment #7 from Hubert Tong <hstong at ca dot ibm.com> --- (In reply to Jakub Jelinek from comment #6) > The standard seems to say a union member becomes active when the constructor > finishes, not when it starts, so what wording prevents changing the active > member during the construction? I do not believe there is such wording. Especially in the case presented, the actual construction of the `a` member can be considered to occur while `y` is the active member. The lack of such wording may well be unintentional.