| Issue |
55409
|
| Summary |
clang crashes with speculative load hardening enabled for i386
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
nmosier
|
```
Stack dump:
0. Program arguments: /cafe/u/nmosier/llvm-project/build/bin/clang-15 -cc1 -triple i386-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name slh.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 pentium4 -target-feature +retpoline-indirect-calls -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/cafe/u/nmosier/llvm-project/build -resource-dir /cafe/u/nmosier/llvm-project/build/lib/clang/15.0.0 -internal-isystem /cafe/u/nmosier/llvm-project/build/lib/clang/15.0.0/include -internal-isystem /usr/local/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O1 -fdebug-compilation-dir=/cafe/u/nmosier/llvm-project/build -ferror-limit 19 -mspeculative-load-hardening -fgnuc-version=4.2.1 -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/slh-4460dd.o -x c /cafe/u/nmosier/tmp/slh.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module '/cafe/u/nmosier/tmp/slh.c'.
4. Running pass 'X86 speculative load hardening' on function '@func'
#0 0x00000000032aa62a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x32aa62a)
#1 0x00000000032aa7db PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
#2 0x00000000032a8e76 llvm::sys::RunSignalHandlers() (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x32a8e76)
#3 0x00000000032aaf05 SignalHandler(int) Signals.cpp:0:0
#4 0x00007ffff7f9b3c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x153c0)
#5 0x00007ffff7a2f18b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4618b)
#6 0x00007ffff7a0e859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x25859)
#7 0x00007ffff7a0e729 (/lib/x86_64-linux-gnu/libc.so.6+0x25729)
#8 0x00007ffff7a1ff36 (/lib/x86_64-linux-gnu/libc.so.6+0x36f36)
#9 0x000000000188b5cc (anonymous namespace)::X86SpeculativeLoadHardeningPass::hardenLoadAddr(llvm::MachineInstr&, llvm::MachineOperand&, llvm::MachineOperand&, llvm::SmallDenseMap<unsigned int, unsigned int, 32u, llvm::DenseMapInfo<unsigned int, void>, llvm::detail::DenseMapPair<unsigned int, unsigned int> >&) X86SpeculativeLoadHardening.cpp:0:0
#10 0x0000000001887b79 (anonymous namespace)::X86SpeculativeLoadHardeningPass::tracePredStateThroughBlocksAndHarden(llvm::MachineFunction&) X86SpeculativeLoadHardening.cpp:0:0
#11 0x0000000001883d40 (anonymous namespace)::X86SpeculativeLoadHardeningPass::runOnMachineFunction(llvm::MachineFunction&) X86SpeculativeLoadHardening.cpp:0:0
#12 0x0000000002017d87 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x2017d87)
#13 0x00000000027cf2be llvm::FPPassManager::runOnFunction(llvm::Function&) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x27cf2be)
#14 0x00000000027d4142 llvm::FPPassManager::runOnModule(llvm::Module&) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x27d4142)
#15 0x00000000027cfba9 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) LegacyPassManager.cpp:0:0
#16 0x00000000027cf71d llvm::legacy::PassManagerImpl::run(llvm::Module&) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x27cf71d)
#17 0x00000000027d4421 llvm::legacy::PassManager::run(llvm::Module&) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x27d4421)
#18 0x00000000037d6a6a (anonymous namespace)::EmitAssemblyHelper::RunCodegenPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile> >&) BackendUtil.cpp:0:0
#19 0x00000000037d14d6 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) BackendUtil.cpp:0:0
#20 0x00000000037d0a5d clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x37d0a5d)
#21 0x0000000004d54559 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x4d54559)
#22 0x0000000006dd0c61 clang::ParseAST(clang::Sema&, bool, bool) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x6dd0c61)
#23 0x000000000432a70c clang::ASTFrontendAction::ExecuteAction() (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x432a70c)
#24 0x0000000004d4fd02 clang::CodeGenAction::ExecuteAction() (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x4d4fd02)
#25 0x000000000432a10c clang::FrontendAction::Execute() (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x432a10c)
#26 0x00000000042607ac clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x42607ac)
#27 0x00000000044ec5d7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x44ec5d7)
#28 0x000000000140e2fd cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x140e2fd)
#29 0x00000000014018ce ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#30 0x0000000001400961 main (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x1400961)
#31 0x00007ffff7a100b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b3)
#32 0x00000000014001be _start (/cafe/u/nmosier/llvm-project/build/bin/clang-15+0x14001be)
clang-15: error: unable to execute command: Aborted
clang-15: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 15.0.0 (https://github.com/llvm/llvm-project.git d955010d8dfb371650450c4dc44d8543d2e206f5)
Target: i386-unknown-linux-gnu
Thread model: posix
InstalledDir: /cafe/u/nmosier/llvm-project/build/./bin
clang-15: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-15: note: diagnostic msg: /tmp/slh-361944.c
clang-15: note: diagnostic msg: /tmp/slh-361944.sh
clang-15: note: diagnostic msg:
********************
```
[slh.zip](https://github.com/llvm/llvm-project/files/8681537/slh.zip)
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs