<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/127226>127226</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] x86 backend ICE when the frontend should probably reject the source
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ashermancinelli
</td>
</tr>
</table>
<pre>
```
> cat t.f90
use,intrinsic::ieee_arithmetic
integer,parameter::k=ieee_selected_real_kind(3)
real(k)::x,y
y=ieee_rint(x,ieee_other)
end
> nvfortran t.f90
NVFORTRAN-S-0155-Could not resolve generic procedure ieee_rint (t.f90: 4)
0 inform, 0 warnings, 1 severes, 0 fatal for MAIN
> gfortran t.f90
t.f90:4:2:
4 | y=ieee_rint(x,ieee_other)
| 1
Error: There is no specific function for the generic ‘ieee_rint’ at (1)
> ngflang t.f90
> ngflang t.f90 -O1
rounding mode is not supported by X86 hardware
UNREACHABLE executed at
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.
1. Code generation
2. Running pass 'Function Pass Manager' on module 't.f90.ll'.
3. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_QQmain'
#0 0x0000562f339d583b llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (
#1 0x0000562f339d337c llvm::sys::CleanupOnSignal(unsigned long) (
#2 0x0000562f33918e98 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f3a40c3e730 __restore_rt (/lib64/libc.so.6+0x3e730)
#4 0x00007f3a40c8ba6c __pthread_kill_implementation (/lib64/libc.so.6+0x8ba6c)
#5 0x00007f3a40c3e686 gsignal (/lib64/libc.so.6+0x3e686)
#6 0x00007f3a40c28833 abort (/lib64/libc.so.6+0x28833)
#7 0x0000562f33922f9a (
#8 0x0000562f32463cef llvm::X86TargetLowering::LowerSET_ROUNDING(llvm::SDValue, llvm::SelectionDAG&) const X86ISelLowering.cpp:0:0
#9 0x0000562f32561949 llvm::X86TargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const X86ISelLowering.cpp:0:0
#10 0x0000562f34fdebe0 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) (.part.0) LegalizeDAG.cpp:0:0
#11 0x0000562f34fe2926 llvm::SelectionDAG::Legalize() (
#12 0x0000562f350dfb6e llvm::SelectionDAGISel::CodeGenAndEmitDAG() (
#13 0x0000562f350e32b5 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (
#14 0x0000562f350e4578 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (
#15 0x0000562f350d47af llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (
#16 0x0000562f32c9cea2 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (.part.0) MachineFunctionPass.cpp:0:0
#17 0x0000562f33385a1f llvm::FPPassManager::runOnFunction(llvm::Function&) (
#18 0x0000562f33385de1 llvm::FPPassManager::runOnModule(llvm::Module&) (
#19 0x0000562f333866e1 llvm::legacy::PassManagerImpl::run(llvm::Module&) (
#20 0x0000562f34464d0a 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*) (
#21 0x0000562f345d3237 clang::CodeGenAction::ExecuteAction() (
#22 0x0000562f349e1ea5 clang::FrontendAction::Execute() (
#23 0x0000562f34961c0e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (
#24 0x0000562f34ae8d6e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (
#25 0x0000562f3227b337 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (
#26 0x0000562f322727da ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#27 0x0000562f34752769 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::'lambda'()>(long) Job.cpp:0:0
#28 0x0000562f33919364 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (
#29 0x0000562f34752d6f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#30 0x0000562f34710c50 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (
#31 0x0000562f34711cee clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (
#32 0x0000562f3471a315 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (
#33 0x0000562f32277b1b clang_main(int, char**, llvm::ToolContext const&) (
#34 0x0000562f3228a7b7 main (
#35 0x00007f3a40c295d0 __libc_start_call_main (/lib64/libc.so.6+0x295d0)
#36 0x00007f3a40c29680 __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x29680)
#37 0x0000562f3227226e _start (
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 21.0.0git (https://github.com/llvm/llvm-project 083f099a345f02390d00a8196d4ffa36ae71c82f)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir:
Build config: +assertions
clang++: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWV1T4zjW_jXiRkXKlr8vuDAhMEx1Qw_0TM2dS7aPE70okl9JDrC_fkuyk9hOaLq3dvdmu-hK9HWeo-d86EihWrO1ALhC0TWKbi5oZzZSXVG9AbWlomICOGcXpazfr1DsDX9ejoIVrqjBZtFktt1pQGTJhFFMaFahIEdBzgCgoIqZzRYMq5CXM2FgDQqRZUsV3YIB1U99QcGNm66BQ2WgLhRQXrwwUSOSBohkyMttFyLpi225VW-ILN-Rl7_vVysmDCKp7XdtaTYWzS4GUQ96i10jlVFU9NpjjDHy8oe_bh-fvj_lD5fPl54fRZdL2fEaC2mwAi35DvAaBChW4VbJCupOAT6AYkTSnosgx2GPiLGHmWik2iKyxLb1SpVgYq37to817ECBa3q4oYZy3EiFv-b3D4Ou63Oq7oFCFOTEMmGxMA4xSpb4Z7jA7p-djX3k5SulpLUD_r4BuymNhcS6hYo1rMJNJyrDpHCqmc2RBrQiKPVQlh7hhp4MU8eI38M50tcNp2I92cdp_-Wj1UfJTtRMrPFW1oM6BuuubaUyUOPyHf-dxnhDVf1KFSAv__PhaZUvf8uvv6wwvEHV2WlWBS__9mWVP6-w7sotM5jisltjBVYSNhJvjGm1ZZDcInK7ZmbTlYtKbhG55Xy3_7hslfw_qAwit0zrzhrsFlNRYyYq3tXgWKkU1Rtc0urFKFrZaMCtAucqWkONtexU321XUq1lxajVU3UC60qx1iyQlz8bWr3gutu2vWG9xWAsL_eHr0vLijMCtXZBXk6GkadOWP_CLdUaI5Lc7k33zXZ8pYK64EuwFJbbjoOd5ahfcI5IYjUIPhBmOb_J7y5RsLrJ7_C90EZ1vfhnF7RWl172wWUQSVDoFX_8saXMDlrfQyTwsPfmeZ4XxaQJgqyO0qDEjnAX1vpd91--WadyjHzvOU2PkxR9LaQ2CugWkdjy6vw9s343wPgzmCBIqnMwSw5UdO2jeGZr4VJMJ1xarDGXYj0VSqZC_RSyFC-t8Z-gkjtQ772U36iouWU7HfSazFlKYeDNLKrW2tlz_3v5wSA_aQIaelUASeDholCgjVRQKBdY1jFZGYf9Z7XQchEjcu29uelDkCMShFNhaUnjChdFazYKaF28MM4Ltm05bEEYOpjsY-lu_VF6NFc1TmO81m77n2gZp_FRTjyVQ9I0CDAt5Sd7dfOOUpKpYQhpMjqyWzoeJmEcVNCMnOHvNP5O1RrMF_kKiol13-1az6vvxdPjnw839w93Ex98vvmL8s4F9ahzHww3-Z3zzAxXUmhjk9b9M_A9wBnbZxMdo9jPwuwndXxs9-ngP6WgDahJ4IZNDSV4lmMqpHjfyk5jQbegWxes2SncF1hTzv4Bg-JD67GdKf0ga0AkHwJv0VJlFtar8X7FTX53Rjt_qh2QjMQf7XuigPOyfZBbSZMgj7y6KWP4QJJlbEgjsoY7ELmoV1tmHLkzscFULASkjD4V2_fmnF9TzaprLqsXPeHrkOWdFQeLHkHDGWgYJemnoKoTj-IrrTZMwF7-BPRkbIYazRgME9r8ANVaonr_N2HHkzCqsgoowR8ut2fjCPgs4inUyCnPyDvjnNP0FKQR9ceE3H6z6_ZH9C-rM4Ckc5Aa_J8A-epqgSnHQ9cMIJsBxPEEgI_MOIK637ZHv_oJGDLNM2Ec1h7FlS0U-2WwZeaaVi8g6sfOtJ0tdEfDS7ltGQdlaxQqKhgKhMkMF6uPraVRD-Mj97T3mPUTNNPuvbb5TNqgSj4YZbzkXhjVabaDJ2iWwnwzCgXL4_CuGXzvlnF4ftcGtihYWRHa1P1IJ9j_d1C0s5W2_mlfFTNQ7Kug0aIaGtpxU9TAwcAnC4PVgHm6paUUutvaMiafWmiaa6M6sAfwKcEDJa5r1Vfme5amuZFMUm6YgQ80Ggu8VbZkOpA8lngiK5jKiv3KA_wj_zir38fgc3edpNiQQlrHE7xB8hF2Jyt6inLqtjPSJ0mVkKQMLOmVX_Tl9SiucqXou_XfYFltqNofDfne0JM-ssQ7yeoTuHgGR5Ka4v1elv53Kfn04N5Szv-Cysgh4s9gzwLNyhhq4cnxVSu2A3WaRskkjYZJRJI4c9qPhO6vH4VyBLjR3kecq9spFeXc3tWKRlg1jzbogQd7LP2l3G6pqOfudpboQ_BJl1Uon4TdMaUcwu2woCiqtzff7xulPeZtaLoCz1E4mWw7CqMoM3o_PBNHObf-Ze_0h3E7xVm6dFbLD1VfvwSRhNNtWVN7STtQRdL9_ed3WZ4xRjq7C2VBHI7scO7G0488deKZNsDfJ1z-2G4T18zmblDHDf5fNuOsJjlrr-m9O0x8r4q8D1lzyYieJNs9lZPMNVtoJ4zCefkDjPHUfJjd7220sUF9f6a-XwH8qvq_y1J_rPvvsvzCtJno_qP8drBVS5k1k7vq__x2B4P-cNNktmlqa-sPAG5G3ydnzpnD5iOy_oubHgV0EMzOmqT0y17k_nDbw7hAyocw-PwkOUKEU4iUJmWCrfDRnNmTBsmi2sNFwVlpY5kqU9iTozis-vBtwi4cXj9JcPLCkcXpTKzbZOjdfbm_XhZkQRbRJ_LjdCQ_mZ_UJAbcSx4211uHXNu_IMewf_J1_bgZ6htcDdZqKONQ41dmNhjemKW0BuwHoRXXacCXO2wk1gCYjaqZbI-Ed6C0vZMSf-EtvDVzevzacyv20qDxsowGYdR4JMi82vNo6mdxHTYNDWIKiV-lpOlx-6cRu6e3NC7i8LITL0K-ikvORPd2uRadneQevtzDsr2R4FZq9oa83JVcnEN9wxwtyMuvO8ad2zZs7brINdUaVH9jOGFUSFtn57hmdC2kNqzCW-0Wuuf1w4OtWJ9_F0619dZLLORonJbcEtx2Ri-sqUe_wFzUV0GdBRm9gCs_CbIoInEQX2yuoiSllFLfT6qqCeuIpBSyxA9JQwM_hPqCXRGPRB7xQz_xgiheAKFRU0GTlGFSNoSi0IMtZXxhrbGQan3hnr2vfOdYF5yWwLX7xYiQslsjQhBZIkKanhGCopsLdeVMWXZrjUKPM230UZxhhrufnPoV0Y01mXs7tz54v1zh1w0I96x-8Ey9cb_HtEqWtOTvWIHzETunp_CiU_zqX3_QHza3uyL_DAAA__8LpiLJ">