| 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