https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101031
Bug ID: 101031 Summary: wrong code at -O2 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: --- It appears to be a recent regression. $ gcc-trunk -v Supported LTO compression algorithms: zlib gcc version 12.0.0 20210611 (experimental) [master revision 336c41dbcb2:00da4bcb67d:36943c6bdd3d3b535b24872bbd802d91ef0c6299] (GCC) $ gcc-trunk abc.c ; ./a.out 0 $ gcc-trunk -O2 abc.c ; ./a.out 1 $ cat abc.c int a; char b, e; static char *c = &b; static long d; void f(void); void h() { int g = 0; for (; g < 2; ++g) { d = *c; *c = 1; b = 0; } f(); } void f() { if (d++) c = &e; for (; a;) ; } int main() { h(); printf("%d\n", b); }