[Bug c/107257] New: Wrong code at -O2 on x86_64-linux-gnu

shaohua.li at inf dot ethz.ch gcc-bugzilla@gcc.gnu.org
Fri Oct 14 08:32:32 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107257

            Bug ID: 107257
           Summary: Wrong code at -O2 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-9f0d4adabe2035886a1aa8d2ca990a90de000613/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-9f0d4adabe2035886a1aa8d2ca990a90de000613
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 13.0.0 20221013 (experimental) (GCC)
%
% gcc-tk -w -O0 a.c && ./a.out
2
% gcc-tk -w -O2 a.c && ./a.out
0
%
% cat a.c
l;
m;
static signed char n();
s() { n(); }
signed char n(u) {
  for (; u <= 2; u++) {
    l = 2;
    for (; l ; l--) {
      m = 2;
      for (; m; m--)
        if (u)
          break;
    }
  }
}
main() {
  s(2);
  printf("%d\n", m);
}
%

Compiler explorer: https://godbolt.org/z/z5Mhxaz9E


More information about the Gcc-bugs mailing list