https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93843
Bug ID: 93843 Summary: wrong code at -O3 on x86_64-linux-gnu Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: qrzhang at gatech dot edu Target Milestone: --- A recent regression. Gcc-9 works fine. Bisection points to g:6271dd984d7f920d4fb17ad37af6a1f8e6b796dc $ gcc-trunk -v gcc version 10.0.1 20200219 (experimental) [master revision 665c5bad168:533e82edecf:51faf07cef9293af544bfacc7d0b320ab90d7d60] (GCC) $ gcc-trunk -O3 abc.c ; ./a.out 4 0 $ gcc-9 -O3 abc.c ; ./a.out 4 4 $ gcc-trunk abc.c ; ./a.out 4 4 $ cat abc.c int printf(const char *, ...); char a, e; struct { short b; short c; } d; int f; int main() { short *g = &d.c, *h = &d.b; e = 4 - a; *h = *g = e; for (; f < 2; f++) printf("%d\n", d.c); }