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

            Bug ID: 110582
           Summary: Wrong code at -O2/3 on x86_64-linux-gnu
           Product: gcc
           Version: 14.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: ---

This seems to be a recent regression. gcc at -O2 and -O3 produce wrong code.

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

$ cat a.c
int a, b;
int main() {
  char c = a = 0;
  for (; c != -3; c++) {
    int d = 2;
    d ^= 2 && a;
    b = a == 0 ? d : d / a;
    a = b;
  }
  for (; (1 + 95 << 24) + b + 1 + 686658714L + b - 2297271457;)
    ;
}
$
$ gcc-tk -O0 a.c && ./a.out
$
$ gcc-tk -O2 a.c
$ 
$ ./a.out
Killed
$
$ gcc-tk -v
Using built-in specs.
COLLECT_GCC=gcc-tk
COLLECT_LTO_WRAPPER=/zdata/shaoli/compilers/ccbuilder-compilers/gcc-55900189ab517906efe08f8d17f3e4a310ee7fff/libexec/gcc/x86_64-pc-linux-gnu/14.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-55900189ab517906efe08f8d17f3e4a310ee7fff
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 14.0.0 20230707 (experimental) (GCC)
$

Reply via email to