Open
Description
For a build with extensive checks enabled, this input:
extern char a[];
void b() {
for (long c = 0; c < 6; c += -2078836808675943215)
for (long d; d < 6; d++)
a[c + d] = 0;
}
compiled with clang++ -Ofast test.cpp
runs into this error:
Trip Count for Loop at depth 1 containing: %for.cond1.preheader<header>,%for.cond.cleanup3<latch><exiting>,%for.body4.preheader,%for.cond.cleanup3.loopexit
Changed!
Old: 1
New: 5
Delta: -4
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 0x0000aaaaaf3af514 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/llvm-project/build_expensive_checks/bin/clang-21+0x490f514)
#1 0x0000aaaaaf3acfac llvm::sys::RunSignalHandlers() (/llvm-project/build_expensive_checks/bin/clang-21+0x490cfac)
#2 0x0000aaaaaf3b031c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
#3 0x0000fffff7fb09d0 (linux-vdso.so.1+0x9d0)
#4 0x0000fffff7a1f200 __pthread_kill_implementation ./nptl/./nptl/pthread_kill.c:44:76
#5 0x0000fffff79da67c gsignal ./signal/../sysdeps/posix/raise.c:27:6
#6 0x0000fffff79c7130 abort ./stdlib/./stdlib/abort.c:81:7
#7 0x0000aaaaae52727c llvm::ScalarEvolution::verify() const (/llvm-project/build_expensive_checks/bin/clang-21+0x3a8727c)
#8 0x0000aaaab085cb70 llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/llvm-project/build_expensive_checks/bin/clang-21+0x5dbcb70)
#9 0x0000aaaaaee546b4 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/llvm-project/build_expensive_checks/bin/clang-21+0x43b46b4)
#10 0x0000aaaaaef22b20 llvm::CGSCCToFunctionPassAdaptor::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/llvm-project/build_expensive_checks/bin/clang-21+0x4482b20)
#11 0x0000aaaaaef1ec7c llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/llvm-project/build_expensive_checks/bin/clang-21+0x447ec7c)
#12 0x0000aaaaaef213ec llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (/llvm-project/build_expensive_checks/bin/clang-21+0x44813ec)