https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100305
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is one slightly more reduced testcase:typedef struct { int g[3]; int h[3]; } i; i j; double k; int l; void w(void *); void x(char); void u(void *, void *); void m() { char a[4096], o[4096], s[4096], r[4096], t[4*4096]; w(a); u(t, s); char v = r[0]; double g[3]; { int q[4096]; w(q); w(o); } x(v); l = 0; for (; l < 3; l++) { j.g[l] = g[l]; j.h[l] = k; } } ----- CUT ---- For some reason removing the typedef and just using the struct directly causes slightly different behavior.