Issue |
92685
|
Summary |
clang crashes at -O{2,3} on x86_64-linux-gnu: Segmentation fault
|
Labels |
clang
|
Assignees |
|
Reporter |
zhendongsu
|
It appears to be a very recent regression (e.g., it doesn't reproduce with the latest build from Compiler Explorer).
```
[535] % clangtk -v
clang version 19.0.0git (https://github.com/llvm/llvm-project.git e0217ee7829cf49bc0caa8b814f6acc4c4b0836d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/software/local/clang-trunk/bin
Build config: +assertions
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/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
[536] %
[536] % clangtk -O2 small.c
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: /local/suz-local/software/local/clang-trunk/bin/clang-19 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name small.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=/local/suz-local/software/emitesting/bugs/20240519-clangtk-m64-O3-Weverything-pipe-fPIC-build-111542/delta -fcoverage-compilation-dir=/local/suz-local/software/emitesting/bugs/20240519-clangtk-m64-O3-Weverything-pipe-fPIC-build-111542/delta -resource-dir /local/suz-local/software/local/clang-trunk/lib/clang/19 -I /usr/local/include -I /local/suz-local/software/local/include -internal-isystem /local/suz-local/software/local/clang-trunk/lib/clang/19/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 -O2 -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/small-48a113.o -x c small.c
1. <eof> parser at end of file
2. Optimizer
#0 0x0000557ed3a9e52f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x409552f)
#1 0x0000557ed3a9ba54 SignalHandler(int) Signals.cpp:0:0
#2 0x00007ffae39d7420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#3 0x0000557ed342137b llvm::DenseMapBase<llvm::DenseMap<llvm::Value const*, llvm::MDAttachments, llvm::DenseMapInfo<llvm::Value const*, void>, llvm::detail::DenseMapPair<llvm::Value const*, llvm::MDAttachments>>, llvm::Value const*, llvm::MDAttachments, llvm::DenseMapInfo<llvm::Value const*, void>, llvm::detail::DenseMapPair<llvm::Value const*, llvm::MDAttachments>>::at(llvm::Value const*) const (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3a1837b)
#4 0x0000557ed3421406 llvm::Value::getMetadataImpl(unsigned int) const (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3a18406)
#5 0x0000557ed2bd090f computeKnownBits(llvm::Value const*, llvm::APInt const&, llvm::KnownBits&, unsigned int, llvm::SimplifyQuery const&) ValueTracking.cpp:0:0
#6 0x0000557ed2bd4e70 ComputeNumSignBitsImpl(llvm::Value const*, llvm::APInt const&, unsigned int, llvm::SimplifyQuery const&) ValueTracking.cpp:0:0
#7 0x0000557ed2bd5f91 ComputeNumSignBits(llvm::Value const*, unsigned int, llvm::SimplifyQuery const&) ValueTracking.cpp:0:0
#8 0x0000557ed2bd6094 llvm::ComputeNumSignBits(llvm::Value const*, llvm::DataLayout const&, unsigned int, llvm::AssumptionCache*, llvm::Instruction const*, llvm::DominatorTree const*, bool) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x31cd094)
#9 0x0000557ed2b48c70 llvm::ScalarEvolution::getRangeRef(llvm::SCEV const*, llvm::ScalarEvolution::RangeSignHint, unsigned int) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x313fc70)
#10 0x0000557ed2b49355 llvm::ScalarEvolution::getRangeRef(llvm::SCEV const*, llvm::ScalarEvolution::RangeSignHint, unsigned int) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3140355)
#11 0x0000557ed2b4917c llvm::ScalarEvolution::getRangeRef(llvm::SCEV const*, llvm::ScalarEvolution::RangeSignHint, unsigned int) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x314017c)
#12 0x0000557ed2b4b9a6 llvm::ScalarEvolution::isKnownNonNegative(llvm::SCEV const*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x31429a6)
#13 0x0000557ed2b5821d llvm::ScalarEvolution::getGEPExpr(llvm::GEPOperator*, llvm::SmallVectorImpl<llvm::SCEV const*> const&) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x314f21d)
#14 0x0000557ed2b58401 llvm::ScalarEvolution::createNodeForGEP(llvm::GEPOperator*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x314f401)
#15 0x0000557ed2b36455 llvm::ScalarEvolution::createSCEV(llvm::Value*) (.part.0) ScalarEvolution.cpp:0:0
#16 0x0000557ed2b37081 llvm::ScalarEvolution::createSCEVIter(llvm::Value*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x312e081)
#17 0x0000557ed2b5c564 llvm::ScalarEvolution::computeSCEVAtScope(llvm::SCEV const*, llvm::Loop const*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3153564)
#18 0x0000557ed2b5ca3a llvm::ScalarEvolution::getSCEVAtScope(llvm::SCEV const*, llvm::Loop const*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3153a3a)
...
#255 0x0000557ed2b5c039 llvm::ScalarEvolution::computeSCEVAtScope(llvm::SCEV const*, llvm::Loop const*) (/local/suz-local/software/local/clang-trunk/bin/clang-19+0x3153039)
clangtk: error: unable to execute command: Segmentation fault
clangtk: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 19.0.0git (https://github.com/llvm/llvm-project.git e0217ee7829cf49bc0caa8b814f6acc4c4b0836d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/software/local/clang-trunk/bin
Build config: +assertions
clangtk: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clangtk: note: diagnostic msg: /tmp/small-7b5802.c
clangtk: note: diagnostic msg: /tmp/small-7b5802.sh
clangtk: note: diagnostic msg:
********************
[537] %
[537] % cat small.c
int a[1], b, c, d, e, f;
int main() {
int g, h = 0, i = c = 0;
for (; c < 2; c++)
for (; h < 2; h++)
for (i = 0; i < 1; i++)
;
if (i)
while (1)
return 0;
for (g = 0; g < 2; g++)
for (; g < 7; g++)
for (e = 0; e < 5; e++)
for (d = 0; d < 9; d++)
for (f = 0; f < 10; f++) {
b = a[b];
b = a[b];
}
return 0;
}
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs