Issue |
137308
|
Summary |
[ARM] Crash with -Og or -fextend-variable-liveness: "Do not know how to soften this operator's operand"
|
Labels |
backend:ARM,
crash-on-valid,
generated by fuzzer
|
Assignees |
|
Reporter |
ostannard
|
This code causes a crash in the ARM backend when compiled with `-Og` or `-fextend-variable-liveness` for a target without an FPU:
```c
void a() { float b = 1.0f; }
```
```
$ /work/llvm/build/bin/clang --target=arm-none-eabi -march=armv7-m -mfpu=none -c test.c -Og
SoftenFloatOperand Op #1: t2: ch = fake_use t0, ConstantFP:f32<1.000000e+00>
fatal error: error in backend: Do not know how to soften this operator's operand!
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: /work/llvm/build/bin/clang --target=arm-none-eabi -march=armv7-m -mfpu=none -c test.c -Og
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'test.c'.
4. Running pass 'ARM Instruction Selection' on function '@a'
#0 0x0000558022638c87 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work/llvm/build/bin/clang+0x8721c87)
#1 0x000055802263687e llvm::sys::RunSignalHandlers() (/work/llvm/build/bin/clang+0x871f87e)
#2 0x000055802259ec38 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
#3 0x000055802259ebcf llvm::CrashRecoveryContext::HandleExit(int) (/work/llvm/build/bin/clang+0x8687bcf)
#4 0x00005580226330c7 llvm::sys::Process::Exit(int, bool) (/work/llvm/build/bin/clang+0x871c0c7)
#5 0x000055801fb42cf5 (/work/llvm/build/bin/clang+0x5c2bcf5)
#6 0x00005580225a7080 llvm::report_fatal_error(llvm::Twine const&, bool) (/work/llvm/build/bin/clang+0x8690080)
#7 0x00005580225a6f76 (/work/llvm/build/bin/clang+0x868ff76)
#8 0x0000558023b41354 (/work/llvm/build/bin/clang+0x9c2a354)
#9 0x0000558023ab4a06 llvm::DAGTypeLegalizer::run() LegalizeTypes.cpp:0:0
#10 0x0000558023ab9dc5 llvm::SelectionDAG::LegalizeTypes() (/work/llvm/build/bin/clang+0x9ba2dc5)
#11 0x0000558023a788e5 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/work/llvm/build/bin/clang+0x9b618e5)
#12 0x0000558023a7769b llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/work/llvm/build/bin/clang+0x9b6069b)
#13 0x0000558023a74651 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/work/llvm/build/bin/clang+0x9b5d651)
#14 0x00005580205e0941 (anonymous namespace)::ARMDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) ARMISelDAGToDAG.cpp:0:0
#15 0x0000558023a71e79 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/work/llvm/build/bin/clang+0x9b5ae79)
#16 0x0000558021a6ed88 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/work/llvm/build/bin/clang+0x7b57d88)
#17 0x0000558021ff424b llvm::FPPassManager::runOnFunction(llvm::Function&) (/work/llvm/build/bin/clang+0x80dd24b)
#18 0x0000558021ffc081 llvm::FPPassManager::runOnModule(llvm::Module&) (/work/llvm/build/bin/clang+0x80e5081)
#19 0x0000558021ff4c5f llvm::legacy::PassManagerImpl::run(llvm::Module&) (/work/llvm/build/bin/clang+0x80ddc5f)
#20 0x0000558022dd7a29 clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/work/llvm/build/bin/clang+0x8ec0a29)
#21 0x0000558022dec580 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/work/llvm/build/bin/clang+0x8ed5580)
#22 0x0000558024888ad7 clang::ParseAST(clang::Sema&, bool, bool) (/work/llvm/build/bin/clang+0xa971ad7)
#23 0x00005580233fd3c6 clang::FrontendAction::Execute() (/work/llvm/build/bin/clang+0x94e63c6)
#24 0x00005580233682bf clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/work/llvm/build/bin/clang+0x94512bf)
#25 0x00005580234fc0d7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/work/llvm/build/bin/clang+0x95e50d7)
#26 0x000055801fb426f3 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/work/llvm/build/bin/clang+0x5c2b6f3)
#27 0x000055801fb3ea61 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#28 0x00005580231b01e9 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_1>(long) Job.cpp:0:0
#29 0x000055802259eb6b llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/work/llvm/build/bin/clang+0x8687b6b)
#30 0x00005580231af750 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/work/llvm/build/bin/clang+0x9298750)
#31 0x000055802316c273 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/work/llvm/build/bin/clang+0x9255273)
#32 0x000055802316c577 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/work/llvm/build/bin/clang+0x9255577)
#33 0x000055802318bd99 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/work/llvm/build/bin/clang+0x9274d99)
#34 0x000055801fb3deaf clang_main(int, char**, llvm::ToolContext const&) (/work/llvm/build/bin/clang+0x5c26eaf)
#35 0x000055801fb4eba7 main (/work/llvm/build/bin/clang+0x5c37ba7)
#36 0x00007f7943629d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#37 0x00007f7943629e40 call_init ./csu/../csu/libc-start.c:128:20
#38 0x00007f7943629e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#39 0x000055801fb3c325 _start (/work/llvm/build/bin/clang+0x5c25325)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 21.0.0git (g...@github.com:llvm/llvm-project.git 237ed0cffcd721f0ae48420f17db2e2da97fb625)
Target: arm-unknown-none-eabi
Thread model: posix
InstalledDir: /work/llvm/build/bin
Build config: +assertions
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/test-453356.c
clang: note: diagnostic msg: /tmp/test-453356.sh
clang: note: diagnostic msg:
********************
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs