https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88223
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- The C standard is unclear here (C18, 6.2.6.1/7). union { struct X { int i; int j; } x; struct Y { int i; int j; } y; } u; u.x.i = 1; u.y.j = 1; after the second store does u.y.i have unspecified value? Because the union member is y and there are no bytes that are not also in the member x. I'm probably missing the correct place to look at here.