| Issue |
184945
|
| Summary |
segmentation fault with clang-22 (-Ofast -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 -Ofast -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 -Ofast -Wno-return-type -Wno-implicit-int crash.c
clang-22: warning: argument '-Ofast' is deprecated; use '-O3 -ffast-math' for the same behavior, or '-O3' to enable only conforming optimizations [-Wdeprecated-ofast]
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 -Ofast -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 -menable-no-infs -menable-no-nans -fapprox-func -funsafe-math-optimizations -fno-signed-zeros -mreassociate -freciprocal-math -ffp-contract=fast -fno-rounding-math -ffast-math -ffinite-math-only -complex-range=basic -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=190 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -fdwarf2-cfi-asm -o /tmp/crash-4036bf.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 0x000055f119eace50 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x2060e50)
#1 0x000055f119eaa04d SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#2 0x00007fc8b3004520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#3 0x000055f119df9bc3 llvm::FoldingSetBase::FindNodeOrInsertPos(llvm::FoldingSetNodeID const&, void*&, llvm::FoldingSetBase::FoldingSetInfo const&) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1fadbc3)
#4 0x000055f1190207dd llvm::ScalarEvolution::findExistingSCEVInCache(llvm::SCEVTypes, llvm::ArrayRef<llvm::SCEV const*>) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x11d47dd)
#5 0x000055f11905d543 llvm::ScalarEvolution::getAddExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&, llvm::SCEV::NoWrapFlags, unsigned int) (.part.0) ScalarEvolution.cpp:0:0
#6 0x000055f11905fe1c llvm::ScalarEvolution::getAddExpr(llvm::SCEV const*, llvm::SCEV const*, llvm::SCEV::NoWrapFlags, unsigned int) (.constprop.0) ScalarEvolution.cpp:0:0
#7 0x000055f11905f342 llvm::ScalarEvolution::getAddExpr(llvm::SmallVectorImpl<llvm::SCEV const*>&, llvm::SCEV::NoWrapFlags, unsigned int) (.part.0) ScalarEvolution.cpp:0:0
#8 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#9 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#10 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#11 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#12 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#13 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#14 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#15 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#16 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#17 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#18 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#19 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#20 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#21 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#22 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#23 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#24 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#25 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#26 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#27 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#28 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#29 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#30 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#31 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#32 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#33 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#34 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#35 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#36 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#37 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#38 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#39 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#40 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#41 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#42 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#43 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#44 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#45 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#46 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#47 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#48 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#49 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#50 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#51 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#52 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#53 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#54 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#55 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#56 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#57 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#58 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#59 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#60 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#61 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#62 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#63 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#64 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#65 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#66 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#67 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#68 0x000055f119055bd8 llvm::ScalarEvolution::getZeroExtendExprImpl(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x1209bd8)
#69 0x000055f119056a67 llvm::ScalarEvolution::getZeroExtendExpr(llvm::SCEV const*, llvm::Type*, unsigned int) (/users/user42/clang-build/llvm-22-build/bin/clang-22+0x120aa67)
#70 0x000055<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