<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/105813>105813</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-cl.exe 19.1.0 and 20.0.0 hangs non-deterministically
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
xyzzy12332
</td>
</tr>
</table>
<pre>
My clang-cl.exe hangs for the following source code. In about 1 out of 10 runs the compilation is successful.
Environment: Windows 10 64-bit, Visual Studio 2022
Clang 19.1.0-rc2, prebuilt (LLVM-19.1.0-rc2-Windows-X64.tar.xz)
Clang 20.0.0, 64-bit, local debug build
`clang-cl.exe /nologo /MTd /EHa main.cxx`
------------------------------------------------------------------------------
[main.cxx]
```
#include <map>
#include <cassert>
void Foo (std::map<int,int> const &mapFoo,
std::size_t const bar)
{
auto cur = mapFoo.find(0);
assert(bar>=0);
}
int main ()
{
std::map<int,int> M;
Foo (M, 7);
}
```
------------------------------------------------------------------------------
e:\test>clang-cl.exe /nologo /MTd /EHa main.cxx
Assertion failed: !NodePtr->isKnownSentinel(), file E:\llvm\llvm-project\llvm\include\llvm/ADT/ilist_iterator.h, line 168
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: E:\\llvm\\20.0.0\\x86_64\\bin\\clang-cl.exe -cc1 -triple x86_64-pc-windows-msvc19.41.34120 -emit-obj -mincremental-linker-compatible -dumpdir a- -disable-free -clear-ast-before-backend -main-file-name main.cxx -mrelocation-model pic -pic-level 2 -mframe-pointer=none -relaxed-aliasing -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -fms-volatile -funwind-tables=2 -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -tune-cpu generic -D_DEBUG -D_MT -flto-visibility-public-std --dependent-lib=libcmtd --dependent-lib=oldnames -stack-protector 2 -fcxx-exceptions -fexceptions -fasync-exceptions -fdiagnostics-format msvc -fdebug-compilation-dir=e:\\test -fcoverage-compilation-dir=e:\\test -resource-dir E:\\llvm\\20.0.0\\x86_64\\lib\\clang\\20 -internal-isystem E:\\llvm\\20.0.0\\x86_64\\lib\\clang\\20\\include -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.41.34120\\include" -internal-isystem "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.41.34120\\atlmfc\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22000.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22000.0\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22000.0\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22000.0\\winrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.22000.0\\cppwinrt" -fdeprecated-macro -ferror-limit 19 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.41.34120 -std=c++14 -fskip-odr-check-in-gmf -fdelayed-template-parsing -faddrsig -o c:\\Temp\\main-7df83c.obj -x c++ main.cxx
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'main.cxx'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@"?Foo@@YAXAEBV?$map@HHU?$less@H@std@@V?$allocator@U?$pair@$$CBHH@std@@@2@@std@@_K@Z"'
Exception Code: 0x80000003
#0 0x00007ff6271432dc HandleAbort E:\llvm\llvm-project\llvm\lib\Support\Windows\Signals.inc:429:0
#1 0x00007ffdbba98e05 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xa8e05)
#2 0x00007ffdbba9ab29 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xaab29)
#3 0x00007ffdbbaa094f (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xb094f)
#4 0x00007ffdbba9e881 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xae881)
#5 0x00007ffdbbaa158f (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0xb158f)
#6 0x00007ff6212a4609 llvm::ilist_iterator<struct llvm::ilist_detail::node_options<class llvm::MachineInstr, 1, 1, void, 0, void>, 0, 0>::operator*(void) const E:\llvm\llvm-project\llvm\include\llvm\ADT\ilist_iterator.h:168:0
#7 0x00007ff6212b1ec7 llvm::MachineInstrBundleIterator<class llvm::MachineInstr, 0>::operator*(void) const E:\llvm\llvm-project\llvm\include\llvm\CodeGen\MachineInstrBundleIterator.h:178:0
#8 0x00007ff6298c137e llvm::SelectionDAGISel::reportIPToStateForBlocks(class llvm::MachineFunction *) E:\llvm\llvm-project\llvm\lib\CodeGen\SelectionDAG\SelectionDAGISel.cpp:1435:0
#9 0x00007ff6298c3a04 llvm::SelectionDAGISel::SelectAllBasicBlocks(class llvm::Function const &) E:\llvm\llvm-project\llvm\lib\CodeGen\SelectionDAG\SelectionDAGISel.cpp:1857:0
#10 0x00007ff6298b4762 llvm::SelectionDAGISel::runOnMachineFunction(class llvm::MachineFunction &) E:\llvm\llvm-project\llvm\lib\CodeGen\SelectionDAG\SelectionDAGISel.cpp:614:0
#11 0x00007ff62466f30e `anonymous namespace'::X86DAGToDAGISel::runOnMachineFunction E:\llvm\llvm-project\llvm\lib\Target\X86\X86ISelDAGToDAG.cpp:191:0
#12 0x00007ff6298ca88d llvm::SelectionDAGISelLegacy::runOnMachineFunction(class llvm::MachineFunction &) E:\llvm\llvm-project\llvm\lib\CodeGen\SelectionDAG\SelectionDAGISel.cpp:374:0
#13 0x00007ff625954ab1 llvm::MachineFunctionPass::runOnFunction(class llvm::Function &) E:\llvm\llvm-project\llvm\lib\CodeGen\MachineFunctionPass.cpp:94:0
#14 0x00007ff62628c0f2 llvm::FPPassManager::runOnFunction(class llvm::Function &) E:\llvm\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1408:0
#15 0x00007ff62628c4e2 llvm::FPPassManager::runOnModule(class llvm::Module &) E:\llvm\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1454:0
#16 0x00007ff62628f358 `anonymous namespace'::MPPassManager::runOnModule E:\llvm\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1523:0
#17 0x00007ff626290279 llvm::legacy::PassManagerImpl::run(class llvm::Module &) E:\llvm\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:541:0
#18 0x00007ff62628553c llvm::legacy::PassManager::run(class llvm::Module &) E:\llvm\llvm-project\llvm\lib\IR\LegacyPassManager.cpp:1651:0
#19 0x00007ff627ba3166 `anonymous namespace'::EmitAssemblyHelper::RunCodegenPipeline E:\llvm\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:1152:0
#20 0x00007ff627ba3777 `anonymous namespace'::EmitAssemblyHelper::EmitAssembly E:\llvm\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:1174:0
#21 0x00007ff627b9ef09 clang::EmitBackendOutput(class clang::DiagnosticsEngine &, class clang::HeaderSearchOptions const &, class clang::CodeGenOptions const &, class clang::TargetOptions const &, class clang::LangOptions const &, class llvm::StringRef, class llvm::Module *, enum clang::BackendAction, class llvm::IntrusiveRefCntPtr<class llvm::vfs::FileSystem>, class std::unique_ptr<class llvm::raw_pwrite_stream, struct std::default_delete<class llvm::raw_pwrite_stream>>, class clang::BackendConsumer *) E:\llvm\llvm-project\clang\lib\CodeGen\BackendUtil.cpp:1335:0
#22 0x00007ff6287cef12 clang::BackendConsumer::HandleTranslationUnit(class clang::ASTContext &) E:\llvm\llvm-project\clang\lib\CodeGen\CodeGenAction.cpp:354:0
#23 0x00007ff62d31de05 clang::ParseAST(class clang::Sema &, bool, bool) E:\llvm\llvm-project\clang\lib\Parse\ParseAST.cpp:191:0
#24 0x00007ff628cc20d2 clang::ASTFrontendAction::ExecuteAction(void) E:\llvm\llvm-project\clang\lib\Frontend\FrontendAction.cpp:1192:0
#25 0x00007ff6287cc007 clang::CodeGenAction::ExecuteAction(void) E:\llvm\llvm-project\clang\lib\CodeGen\CodeGenAction.cpp:1144:0
#26 0x00007ff628cc19bf clang::FrontendAction::Execute(void) E:\llvm\llvm-project\clang\lib\Frontend\FrontendAction.cpp:1078:0
#27 0x00007ff628c80e36 clang::CompilerInstance::ExecuteAction(class clang::FrontendAction &) E:\llvm\llvm-project\clang\lib\Frontend\CompilerInstance.cpp:1061:0
#28 0x00007ff628f6ab85 clang::ExecuteCompilerInvocation(class clang::CompilerInstance *) E:\llvm\llvm-project\clang\lib\FrontendTool\ExecuteCompilerInvocation.cpp:280:0
#29 0x00007ff62120205d cc1_main(class llvm::ArrayRef<char const *>, char const *, void *) E:\llvm\llvm-project\clang\tools\driver\cc1_main.cpp:285:0
#30 0x00007ff6211ebcfe ExecuteCC1Tool E:\llvm\llvm-project\clang\tools\driver\driver.cpp:215:0
#31 0x00007ff6211ec513 clang_main(int, char **, struct llvm::ToolContext const &) E:\llvm\llvm-project\clang\tools\driver\driver.cpp:256:0
#32 0x00007ff621238096 main E:\llvm\build_vs17_x64\tools\clang\tools\driver\clang-driver.cpp:17:0
#33 0x00007ff631ee1279 invoke_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:79:0
#34 0x00007ff631ee1162 __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288:0
#35 0x00007ff631ee101e __scrt_common_main D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:331:0
#36 0x00007ff631ee130e mainCRTStartup D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp:17:0
#37 0x00007ffddf3c7374 (C:\WINDOWS\System32\KERNEL32.DLL+0x17374)
#38 0x00007ffde011cc91 (C:\WINDOWS\SYSTEM32\ntdll.dll+0x4cc91)
clang-cl: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 20.0.0git (https://github.com/llvm/llvm-project.git 27e5f505e5eee3da27c1515d6ed95d66fbe543ea)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: E:\llvm\20.0.0\x86_64\bin
Build config: +unoptimized, +assertions
clang-cl: note: diagnostic msg:
********************
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMetty2zjy99PQNyioSPCoC1_Ikp24Jp5JxZ7DfjcuEGzK2JAAPwBU5Hn6fzVJUaQiJ0422VmXSyRx6P51o9HdOHBr5VYBXHrxlRdvLnjrnrS53D___fdzwMKQXeS6eL68eyai4mpLRbWAPZAnrraWlNoQ9wSk1FWlP0m1JVa3RgARuoAFuVWE57p1JCD4q0sS-MS0ynadhK4bWXEntSLSEtsKAdaWbbXw_I3nr_rfa7WTRqsalPPCFflTqkJ_skgoiWguncfW5A9pW16Re9cWUhPmM9b3XSNiEiwXwcKnRjBs2xjIW1k54rHs3bs_7uixmg7E6V9JtHDcLPZ_e2w5JcX8hb_wkcyReaUFr0gBebslSLmYovcSf6Y2j90oXemtxre7hwIf1285qblUC7Hfe4k_7U5_6N8MWHw18ow3J5CH__6ThVKJqi2AeOG65o0XXp-rEdxaMO5Y2_3utCzIjUZxM-sKL1x54aojspYK1Ye_4TURWlkckqTmzY3WHlv3_cn4N_a28m94dEOPnJtxiLz06tCJt04T0RrihRvSk1yUUhUey3xsHx5b9qhZhpTCay_czBp46Uw3UrluqFCcM3y_JOHdhOnhOSjmDs0oPc_2ZDB-slUAwo_XDixi_ibLHYRadfrEKV1yWQHqg3gs-FUX8N4Z6oXX0v6i9Cd1D8pJBdWgSbYmpayAXPcIqmpXDw_aGP1vEO5YOljdoYDdrDYPHruRlbTuUTow3GmzeOomp1RAgiTrwb1_d726vya2zWvpCCc4ZQ002jjiNHlyrrHInt147GYr3VObL4RGBgOfGRx2I61twXrshnBVkMNc6Fyb4faJ5Fx8dIYLGPxOYzR6OCgGL4nF2JNbq4XkDgp0jsQKIxs3OMF7x8VHUrR1g8i6In_h-cv3Rm8Nrwk32xZ9IwI_KO-oKS9eDy6re99nyWMS9e-5VP3LbJSpEAGhzsimAtI3p42gnwbHWNudCJaLKFiEUcB8QqGWjur834TWUgkDCIVXtJLqIxiKHp47mVdAKIpQSEM4JbSQlucV0NIAsqyAG8qtozmU2gBFvYEqCEXbomgWVPEajqZGawPodtHOaK0LqEgjBaGNFLSCHVSEEVqXhtdAGy2VA-OFG6UVEGqg4nsoKK8ktxixaFlz90TBGKUJLcuGCq1w2JwXbrQitFSaGt2qQqotxbaE1p33Ma1w2vSUwCIhS3caIxoKXLYK1UYdimq9cMMIddxswVHRtKhcmkSE1jhUhOIntzW1z8rxvRduEHVFqGsVdO23oMCgkJvHzfXV72_w5e6B0LJymu6klbmspHumTZtXUlDrCkJpAQ2oApSjlcy9cFPJXNRna3RVoI4toRYtDq3cAYqHqizFfk9hL6BBjaOksw9un5WY1xeSb5W2TgpLS21q7gjaDtZgoKST2E8LiaMDo-2i90GeegeGb-EVbQ30Ewqrv2kSoOzHSXBoS2hnMopXVNpn66D-AUT758FJfM7BY2w9MjnM7huJptMV3UlhtNWlm2c7B_KM9W9rXdetku65__xj3T8ftK4OhO4PhUE0zuQZOo-x_1GA3FV1Kf4jsBhw91mCMaerPCSUv0g38A8GZrdjmOkKF_6CMd8fh7wVmDf8Q8ztEzdQ_HOy1_8Y609S_YN6F01zBFAW0BgQGLhpzYXB8AHGaEMriQlGsOyDR2uBij2n3MFeuj5OwN6BsoO3rO0YKjsnfqaI7sBgcy_czAJwl3JuhMeuPHYVRISW9qNsqC4MFU8gPlKp6LYuO7AVf4aCOqibijugDTdDAORFYazcEqqJGBX4AHXTv3VhOC3KLBSLLtbvycDwuG7pMpMAMxMvXIMuMeVFBmAIdwSjuS67DK9vybDlWhfQx7XOufc1IdZ8aJVCaA23OHbpTatEl1S-x4I7rvgWjMdSohWpddFWmJ-mIxiWDtlTdI7YX1lCNqs3mItuVm_I7RDJkfw9VNC9DbTLA1-PpV7ke4x54Q2uTyLfi_x_rf5aXV_94YU3Hosw5Y_8t29_7z8rsBa_vcjHIeraDy151eUu2niRP7RuuDQd_chj0frq7aybF_msf4xFj794kf__EA5Lh2XyIfoS1Comg_4-87u_cFhueCz0ib_HorQsE5YGUcgKQd5yVVSwyjENfk363ce3-7bBxPk4mbBMbhWv7EIqNKMIFzQr_8g9OHIv8pwvM_BjnJnDpP3z9tfNb3_eI51_3T9c34Vs8LI5t1Asiqry2JW_59htXHwhXXZCl-ds-R10sduMbjiny_1lVH473Ry7zehGJ3ghy4LvwIvdZnTjE7xBnH0PXuw2o5tMrSZgPEr8JemMoVvsztddXrju59NnLQpwXFZ9idIFPOo-XfRCzJSsnXS44-JJKuimJq6SgvFnp2WBT3_8CK_Hb79bwSMB3Qxo2MpjWd9pOewZfMcSM17jEjNef7bEDFe4uJxZeTrXVh6ASF8Q7arFmXd71NzX9PATBUS38QZwTfgywl7g9ETgbCrwMhNBmMJEhtGnblZvbu9hMIB-2X37_kHfO-7gRpurSouP1mPZC0q4OfriFcr6eld1FG2K5eQToS1Eg8vsIArjuYjLExFD7kdfFbEvXVXVFbdSvCjeKNe4B_aTpcvi9CgdumV_Ll0epQn7-gC26jd1MjSvGryfLF4SRHPpgql0UZKUoQ_ES3yutHqudWtJt_Btun2atEf9V5ZsVm8e9Fcl_gZBHrq1vxev_8qS_hdJH9gcBmcZzNGzE8vjWVZ8YWzewZaL5__tEQrTkxEKpzLGyzjiefAyQEwBJwJ-QbIfIdIZ5oMYyxMpoqkUCcuEX05n0c177HtIXX8y_tsPXrzubWHCdXRvfjaHHp9Cj-A10O-6zPucSR1S8h8LOz7ReHICuwzj7Gsz--6LsvwwrDEL51jTOdalz9JpDlVN5u2E3G3dHJ3Pf0vRcXTig7ITPcdxKL6O_b-OO0jiE-CzsJ3mPAyS5GsGcl1Lt7IW6rx6fgtVcxDkQ6vQK2xBvZcNdOcKX8R92Pw7dShX_eb2706OATmI2Qw3809xp2n6vbin5T8O8YkLZ8Ec8RJKf9kfGB9RDHR-a13TutEoJo02x03ja7VFDXcGsiaftXwLvABzD9yIp9-GTedJ-nSmxyDO6xr3ofp1bd9xtf1Cy0modkaq7Qcoz1WOE2KFtaDaespj0NxqCBSfd79VzrRW7uADlGvl3rtzi4ldOcTNG1nBfbdlNiye-pbj6WWr5P9v4bE5S8XwT4_NJyMdPFpngNdIYFjxjRQKKHlb4ZKvAgevooILm-uzGh6kX2tl2xrMq_L_b7DlcJrsoy3PUq4sFVAG7At4BovsNlEeDFe2P6r4XcmzRr66f1hr5WD_ulT_JUGGt94kDonVSYBks8SqCIMC_HiK5T03Flb3D-dw3kPND6aca10dn9-EuGNxeK7uH17Ic9kse8qEYH7BTtR2Y1Bv4zTo_coeROvgMDPGhfA3IDyQnbzOtBoEyxP3HJ8YiPD99Iyv-cE4vzz2QRCdDH5yotFgmZdTlF9Q509SpJ_O806WziFmPoTJXJF1Iyswt8o6rgSc1-Vnpjvn_h3TbCLJKYRRluTEgGdJUlYmPM9mc21AfaS3Gw6wz0lwyvU7fN5Bhgecs_H6RfaDQCzz5_Is59tYPvPjgggRPNZcnkvpVsbwZ4xu4Vo8cTPGwtXBrc8Lh927bxLMDWeEhZE7MFgxwBllmHvy-XZ3EEAuSiAHTawDVM13cu5fDnyDE77BCV8RB2E_vAft9VeDeqV0KlhNwuhRqYjwEC1evz30StRxMkfN5iMeZv4y6W87zbl1l9wedzZIH_fdmfeBz8vj1F0xmXEP5ntQ0732JAwAAlwfSbXTH6HTGdn0GLgXrx8_afPRi9eBF6-RjzXCi9c7MeLojiV2wjpuXNuMLY7fsIdHoetaq4VUuMJKl3M40SmcIGHk8dEK44aOHapHC08_GRnL5k5zusvfQ_MDOAPtJ8MKw7n_mx0SdLBCv7-xs_7wcN_T-fGQJpP_1KAmsaUoylCkYRqdPwzpMuHuMOSX6w-_Xr8L2WLz7l13FhJgr-NFPxZON7sL8INAiOVXz26UK6pqPF-JsMtI83D7ygtXpDs7xpeukJSDByeoeK6K4UYdKVogThPbHbYh79YCobuuDKCbNIfIMmVChhPk4RLrVnZXYL_t0tsCe7EU4jL2Y4gBICw4S0UQB3GRQLGMiyQpc4ijEPjIftj5DFcv3CgbWj0Z4AXprnNh20ZbOZwrd2GwqqDYSDO55zb4o_EezngJJ5fDYfIVuir0nKXc9jcRr1qlGydr-Td050geu-KHK4v28yFR2nWHqcf7TKS2PanBJP6D_47CRXEZFstwyS_gMkhZFAWMZcuLp0tfJEmYh5Hg4Be89NMgj-O4DH2RZlGWlhfykvks8jMWBgGLouUi88MIeJRlSVIKP0q8yIeay2qBilpos73obixeBn6cBeFFxXOobHfvmzEFn0hX6zHmxZsLc9mNe95urRf5lbTOHsk46Sq4nF0c7G9Rd9cZ-_EYbogrrWgBDkwtlUT98ap6vmhNdfn91y0H_LtL9n8BAAD__0ONMlg">