Issue 184947
Summary segmentation fault with clang-22 (-O3 -Wno-return-type -Wno-implicit-int)
Labels new issue
Assignees
Reporter ayseirmak
    **Environment**
- Clang-Version: LLVM version 22.1.1
- Commit Hash: git [e693f0fe6390d491a7c9195c2a77d52581bd3f24](https://github.com/llvm/llvm-project/commit/e693f0fe6390d491a7c9195c2a77d52581bd3f24)
- Platform: Linux 5.15.0-168-generic 

when compiling the following code with this flag combination:
```C
// clang-22 -O3 -Wno-return-type -Wno-implicit-int input.c 

a() {
  int b = 0, c = 0;
  for (;; a) {
 c++;
    if (c <= 14)
      continue;
    b++;
    if (b <= 45)
 continue;
    return;
  }
}

```
<details>
<summary>Below is the stack trace we get</summary>

```sh
user42@node0:~$ clang-build/llvm-22-build/bin/clang-22 -O3 -Wno-return-type -Wno-implicit-int crash.c 
crash.c:3:11: warning: _expression_ result unused [-Wunused-value]
 3 |   for (;; a) {
      |           ^
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /users/user42/clang-build/llvm-22-build/bin/clang-22 -cc1 -triple x86_64-unknown-linux-gnu -O3 -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name crash.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/users/user42 -fcoverage-compilation-dir=/users/user42 -resource-dir /users/user42/clang-build/llvm-22-build/lib/clang/22 -internal-isystem /users/user42/clang-build/llvm-22-build/lib/clang/22/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -Wno-return-type -Wno-implicit-int -ferror-limit 19 -fmessage-length=275 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -fdwarf2-cfi-asm -o /tmp/crash-2ed190.o -x c crash.c
1.      <eof> parser at end of file
2. Code generation
3.      Running pass 'Function Pass Manager' on module 'crash.c'.
4.      Running pass 'Loop Pass Manager' on function '@a'
5. Running pass 'Loop Strength Reduction' on basic block '%263'
  #0 0x000056225998de50 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x2060e50)
  #1 0x000056225998b04d SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #2 0x00007f27e1ed6520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
  #3 0x0000562258b0172e llvm::ScalarEvolution::findExistingSCEVInCache(llvm::SCEVTypes, llvm::ArrayRef<llvm::SCEV const*>) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x11d472e)
  #4 0x0000562258b3e543 llvm::ScalarEvolution::getAddExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&, llvm::SCEV::NoWrapFlags, unsigned int) (.part.0) ScalarEvolution.cpp:0:0
 #5 0x0000562258b40e1c llvm::ScalarEvolution::getAddExpr(llvm::SCEV const*, llvm::SCEV const*, llvm::SCEV::NoWrapFlags, unsigned int) (.constprop.0) ScalarEvolution.cpp:0:0
  #6 0x0000562258b40342 llvm::ScalarEvolution::getAddExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&, llvm::SCEV::NoWrapFlags, unsigned int) (.part.0) ScalarEvolution.cpp:0:0
 #7 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
  #8 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
  #9 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #10 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #11 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #12 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #13 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #14 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #15 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #16 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #17 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #18 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #19 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #20 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #21 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #22 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #23 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #24 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #25 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #26 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #27 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #28 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #29 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #30 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #31 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #32 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #33 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #34 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #35 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #36 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #37 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #38 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #39 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #40 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #41 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #42 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #43 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #44 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #45 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #46 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #47 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #48 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #49 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #50 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #51 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #52 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #53 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #54 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #55 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #56 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #57 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #58 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #59 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #60 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #61 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #62 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #63 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #64 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #65 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #66 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #67 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #68 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #69 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #70 0x0000562258b37a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
 #71 0x0000562258b36bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
 #72 0x0000562258b37a67 llvm::Scalar<truncated>Please see the issue for the entire body.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to