https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106892
Bug ID: 106892 Summary: Wrong code at -O3 on x86_64-linux-gnu Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: shaohua.li at inf dot ethz.ch Target Milestone: --- $ gcc-tk -v Using built-in specs. COLLECT_GCC=gcc-tk COLLECT_LTO_WRAPPER=/zdata/shaoli/compilers/ccbuilder-compilers/gcc-75f59441cd63a1d07e86d70d59c518049f53904f/libexec/gcc/x86_64-pc-linux-gnu/13.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../configure --disable-multilib --disable-bootstrap --enable-languages=c,c++ --prefix=/zdata/shaoli/compilers/ccbuilder-compilers/gcc-75f59441cd63a1d07e86d70d59c518049f53904f Thread model: posix Supported LTO compression algorithms: zlib gcc version 13.0.0 20220830 (experimental) (GCC) $ $ gcc-tk -w -O0 simple.c && ./a.out 0 $ gcc-tk -w -O0 simple.c && ./a.out 3 $ $ cat simple.c a, b, c, d, e; f[8]; g() { while (a) a >>= 4; } h(i) { if (i >= '0') return i - '0'; } j(i) { b = 2; for (; g() <= 7; b++) if (i) { for (; e <= 7; e++) { c = 1; for (; c <= 7; c++) { d = h(b + 48); f[-d + 4] ^= 3; } } return; } } main() { j(1); printf("%d\n", f[2]); } $