https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101615
Bug ID: 101615 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: --- It appears to be a recent regression. $ gcc-trunk -v Supported LTO compression algorithms: zlib gcc version 12.0.0 20210724 (experimental) [master revision e314cfc371d:5eb84b79079:ead235f60139edc6eb408d8d083cbb15e417b447] (GCC) $ gcc-trunk abc.c ; ./a.out 5 7 11 3 3 3 $ gcc-trunk -O3 abc.c ; ./a.out 5 7 3 3 3 11 $ cat abc.c int a[50] = {5, 5, 8}; short b; int c, d; int main() { int e; for (; b <= 4; b++) for (; c <= 4; c++) { *a |= 1; e = 0; for (; e <= 4; e++) a[e + 1] |= 3; } for (; d < 6; d++) printf("%d\n", a[d]); }