https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79671
--- Comment #28 from Richard Biener <rguenth at gcc dot gnu.org> ---
To quote the only eventually relevant part(s) of 3.10/10:
- an aggregate or union type that includes one of the aforementioned types
among its elements or non-static data members (...)
...
- a char or unsigned char type
note the order. For union U { char c[4]; float f; } the stored value of type
'int' is not accessed through any of those when accessing it as U.
