https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93776
--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> --- x86_64 testcase (reproduces at -O1): struct empty {}; struct s { int i; }; struct z { int j; struct empty e; struct s s; }; void bar (struct z); void foo (void) { struct z z, z2; z2.s.i = 1; z = z2; bar (z); z.e = (struct empty) {}; }