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]);
}
$