https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686
--- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, what I fail to find is sth in the (C) standard that specifies the semantics of an aggregate assignment of union type. Thus I interpret it to use the effective type of the object (determined by the last access) and thus only transfer the active object (so a union aggregate copy is _not_ a bytewise copy of size sizeof (union type)).