https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77686
--- Comment #16 from Jonathan Wakely <redi at gcc dot gnu.org> --- For C++ 12.8 [class.copy] says: -16- The implicitly-defined copy/move constructor for a union X copies the object representation (3.9) of X. and -29- The implicitly-defined copy assignment operator for a union X copies the object representation (3.9) of X. so it is a bytewise copy for PODs.