<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/137308>137308</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[ARM] Crash with -Og or -fextend-variable-liveness: "Do not know how to soften this operator's operand"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:ARM,
crash-on-valid,
generated by fuzzer
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ostannard
</td>
</tr>
</table>
<pre>
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 (git@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:
********************
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWltT47i2_jXiRZWULN8feDCB9PRU94EC5pzHlCwtJzrYUrYkc5lfv0u2g-0A3U1m9rzsLhpsXZY-rbu0zKyVWwVwjuILFF-esdbttDnX1jGlmBFnpRYv5_c7aTHXAjBnrQWLGeaG2R2WCrsd4OL2Oy4ZfwAl8NMOFOa62csaBH6SbodRQhbXW5QQrE33UsGzAyUWj8xIVtawqOUjKLDWj6m0wQw7Zrbguvm6dZgpvL75A4UFIgVKSP_DESketRSYIZohmmOUXuCq1szhEqPwEgdLUqHwAqP0cjrPPx-90ggjun7S5gHRdV0_Noiuy1bWwv-VCtE1r5na4sWiB4bCS2aahdIKFsBKiRcNM3zXNz-miwYvmmrfovDSD8ELjh1Yt-TYM4IUd7pyoNYe6vUeDFMCX-8xomGAwgI76n_zXbeHij3AprWAHUF0hVdaedm49Q0KiyqkKFwFS9L9A0QvCEHhVb-_ijlWYzBGG0-ue_ACGwTl2y41VtrhB6Wf8E4_Yaex7ZBh5yWuPTSnDaLp8KIEogEixc23q-LuCtu2bKTDDJftFhvYa-M8jZ1ze-tlRdeIrrfS7dpyyXUzstb_WeyN_n_gDtG1tLYFi-gae05IxetWQKdZvZp5yM4wDp4DewN7ozlYCwJb3Zq-2c9k1moumQOBTauw5Ubu3dLz2zH-gEXb7HsVIkvc_bsxemtYg5nZtg0o51H_o4oQDEBQuAJdofAK75mxYDBz2FuTrnAla0CkoMPIlTfDLSgvGqkVIkU49Ny2Skm1xXtmLUY0XbeK-yH4xjd8Z4ptwcsSa4UbLdoa_KgeDqKp51P0ASlv4F-VdabtKd5BDd3TQK46LIVoiiLC_B_iORkSTJ69csZxRihNwoxnKe74GhYoLOyL7R9ujFSuE9N9L-hsHGTY00ZbZ4A1iCZe2FK5zt692f9cWN4unrOUBjxLEc0HZMERsiRL4T1kt626k1vF6t-YEjUYe3A2n1o8qLIUxsXpbPE4Bx5mniJTWr00urVYsQbsvmNF3gNZeVu4Ba4fwbystHLw7L42-7rv7dF1YxDNOgatcKs69y5wrT2SHL9HY8n33ixI97-HFx7DK3k14c17VKYorp6lO4D4JKOSLC15NTIqOpJSSPgH-tO5hP5luv4Kl1rXJwiMEz7RlniCI6jKiPIq_hTFmNOSV_FIMZnzmKUkI5Od9e5003nxTe_FpzZx_yQVYO6jwWATJ20zyQnJyAgqPQKVVGnyWQFWVZqMFLMpxbCMgjCOPkUx55SFcTRSzGcUWRkxkkwYd1l8uX_ZwzfYslr-CWZgZ6sGuz10-EH2SPe9WyBH5HPB4wn5V9d3WXzpW2YET3AOecmo4INmeATBHEGaZfARgq93MNi_jwtfQBVKXDXSeXCnIEmCDCZI6BGSNMnLnyLpW4u6vmBW8ota8wc7093XwDSq76dxkiQvR5zhEc4oiYOf4jStulbfGd9JBQdIM5xv-k4AGoskDkagM3dGYiB5FPzM7xe3371O678DfHH73dM40HtH_eMjVgaQ5j9gpVd-_vJPMpRBmo8MnXnRgCUgsgx_uKLPhCZY3wX5F9ClZZyKLBvRzdxpUFURjab2s77xgA6Z2X8OV0aEoNHEXrIjXJxkwS_g-t5ljXORDk0nYIKYZBPTyI95xeNpzlFPFG2CbkyAeg__tyATgsfVKzI6z2GFSBnNcT--Wwka6S76U9V16_atzz0m3av-MGy-dic3DkO8no3ofPf13svXDv0Tm3NGqu0tVPPmwwaLI2oDlGLQlumUr8qZ1spHuIVqpdyNMyhcjd2P1WAda1nD3Yt10PjjJF1h60Tf0yr5rxY2-6OZPkXfPxnpYHNI1CeTBFSsrd1GQA0OfjIxvBrWfLslf_htG3-IKT4tVOCE0dFx0Hn6L4DHGfnRkpP09t4wZevu-PWHkkfSLu7uDxnxCaoHwuMZUc4CcJRlGRPpFOWNPy0Wd_dzDHfQsFlWeFp2yPI0YCId0czDbFiJkCdTNGvjd_6qekMuDrx1cEo2EkES8mRcPpovn2S0rPCPDG0K4GAO2cd4TwhHURzQcuIq5tEzqjiZy2sAMyJ91Jy9BfbWZXxa4fMYYjIVXnJ8gkmqEHMebBom556zMIa9eHcTrviOmUOaVhzsctZGV_hRS3ECQn8iSqpwRJjOEYbAkgAfOLYK7jsVnuC8a1hd_y9wp4cw8A7cI1fqaQzmOcs-hZGPYN6mQ3R-fAlKEkDebXhC9HD7sTEdz7reXt87Z-aHcFbXJeMPm0p5mKOk-4UHqa-ClW4apsSx6bwrm1f3qru4weqZYx2DxqtDfZ2w2fDn5yDoX0qfpXvnKz2mjoWzwb5h4wyTzh66j8ixuvZarM2k3w8pRsfTKUfP8G4KotEm6AZlh6uJ33X5Dv_zNzcRSflLNxG3rbpjFdQvM_b9WFSnXFYkY1o1v-wKA1al8Sym_NcJ-3Mei-ZZGo_Bb35DFwYJp2n4ITs7j8nexJ0Dj2fu9WiiHzC7Svm1ocXRxcspO45jmo4ecH4t6Hccp-lnd_y7Lu3H2_1dl9-kdbPt_sijvsp9z6QX-XCn9qscGpTjb-BTnI6xbH4_GQZZKfL8I0yXk-dZ-H0n7n7E33-QT5-M8jSNRD6mtbP7Uh9DBbAhRzrE-QOyzvSLwXB_HiE_GdkTYGNa9Ob2FEqWYo_nk2TDtGQTNTikNGmV5lGY0FzkBG82tSy9j2PGbXzc7TaOl56UbRFdL_2jfbEC9hbRtdq72q_9zqTlDoVFnKGwCJJhyfR4SYgI7iZIJd3xKv2jJ73oSC-5p0U9RTpEuNcL0hnF2Sbew_8u5TDNPeCBcH6kCtynpz3Jz0ozDulwK3hQ6LGw2NfDqiGVxnxQ7YqNBWB4lq6vH6fEL91awIvHrtwIgOUkCX5dAj-CsVIrTIMlWZKt7DBvpUMRmVQUw-KdiuLSj6ZhCoLwquIipUFFGERZREkVpKKkQAXL06pMDtu6H4p5BWamWbTqQeknNVb1_IidASZwo0V3BYf32spnRIouRa9rEJfS_LR6SIoL_-YNq5LbfvgFsxZMf_Kf8Fdpf1IusJBsq7R1kuPG9lNIcTDck3666vBQwS3u74vVb_j-tyu8vv727fr_vv7PF7z--u3qDt9fd80Xf3zBt1c317f3fen05r3ya2a9i_iwBPs6wADusgcQmLme3q9smK5ds_e_wbpFFIdhnCz5X5hrd7_O6b_O7MN3BmfiPBR5mLMzOA_SKI7TJI_Ds925iCCskkTkggLjhKZMxJCykAaU0yqgZ_KcEhqTiMYBoXkQLgNRZSLLWA4sz0kSoIhAw2S99Dq31GZ71pXUz4MwDUl2VrMSatt940HpWP8vbr8jShFdIUq7QvtCq8Ujq_1pbmgeCs0gcPmCq_bPP8H4vvjyzJx3Jle2W4siUkvr7Li6k67uvinxS8SXfdmx9wWL6y3WBv_gG5BOavSkbxPoWWvq89O_Pxj49XhO_x0AAP__c0mJ9A">