Issue 60944
Summary wrong code at -O2 on x86_64-linux_gnu
Labels new issue
Assignees
Reporter zhendongsu
    This is a regression from 13.0.*.

Compiler Explorer: https://godbolt.org/z/9r1o5v5eq

```
[522] % clangtk -v
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 1b9b4f3bfa8bc7ed7dddd30dd30a07676891bedb)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
[523] % 
[523] % clangtk -O2 small.c
[524] % ./a.out
Floating point exception
[525] % 
[525] % cat small.c
short a, b, *c = &b;
unsigned d = 4294967295U;
int e() {
 while (1) {
    while (d <= 1 && b <= d)
      *c = 1;
    int f = d;
    d = a / f;
    if (f < 4294967295U)
      continue;
 return 1;
  }
}
int main() {
  e();
  return 0;
}
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to