<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/127327>127327</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-cl] The `[[noreturn]]` attribute causes parsing to crash by declaring a concurrent function that returns.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
YuHuanTin
</td>
</tr>
</table>
<pre>
```
D:\LLVM\bin\clang-cl.exe -TP -DCRCPP_IMPORT_API -imsvcD:\Clion\vcpkg\installed\x64-windows\include /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++latest -MDd -Zi /clang:-Wall -Wextra -Wpedantic -Wconversion /permissive- /showIncludes /FoCMakeFiles\New.dir\main.cpp.obj /FdCMakeFiles\New.dir\ -c -- D:\Clion\Project\New\main.cpp
D:\Clion\Project\New\main.cpp(7,41): warning: function 'foo' declared 'noreturn' should not return [-Winvalid-noreturn]
7 | [[noreturn]] concurrencpp::result<void> foo() {
| ^
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: D:\\LLVM\\bin\\clang-cl.exe -TP -DCRCPP_IMPORT_API -imsvcD:\\Clion\\vcpkg\\installed\\x64-windows\\include /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++latest -MDd -Zi /clang:-Wall -Wextra -Wpedantic -Wconversion /permissive- /showIncludes /FoCMakeFiles\\New.dir\\main.cpp.obj /FdCMakeFiles\\New.dir\\ -c -- D:\\Clion\\Project\\New\\main.cpp
1. <eof> parser at end of file
2. D:\Clion\Project\New\main.cpp:7:47: parsing function body 'foo'
Exception Code: 0xC0000005
#0 0x00007ff7e22fcd44 (D:\LLVM\bin\clang-cl.exe+0x77cd44)
#1 0x00007ff7e22fcb30 (D:\LLVM\bin\clang-cl.exe+0x77cb30)
#2 0x00007ff7e3a2cf6f (D:\LLVM\bin\clang-cl.exe+0x1eacf6f)
#3 0x00007ff7e2c95037 (D:\LLVM\bin\clang-cl.exe+0x1115037)
#4 0x00007ff7e2c9433a (D:\LLVM\bin\clang-cl.exe+0x111433a)
#5 0x00007ff7e2c93e83 (D:\LLVM\bin\clang-cl.exe+0x1113e83)
#6 0x00007ff7e2c90eb5 (D:\LLVM\bin\clang-cl.exe+0x1110eb5)
#7 0x00007ff7e2c90e2a (D:\LLVM\bin\clang-cl.exe+0x1110e2a)
#8 0x00007ff7e2d41fa8 (D:\LLVM\bin\clang-cl.exe+0x11c1fa8)
#9 0x00007ff7e2c82167 (D:\LLVM\bin\clang-cl.exe+0x1102167)
#10 0x00007ff7e2c7f6b4 (D:\LLVM\bin\clang-cl.exe+0x10ff6b4)
#11 0x00007ff7e2c76d59 (D:\LLVM\bin\clang-cl.exe+0x10f6d59)
#12 0x00007ff7e2ae8ea5 (D:\LLVM\bin\clang-cl.exe+0xf68ea5)
#13 0x00007ff7e2ae0c12 (D:\LLVM\bin\clang-cl.exe+0xf60c12)
#14 0x00007ff7e2add88a (D:\LLVM\bin\clang-cl.exe+0xf5d88a)
#15 0x00007ff7e36e09e6 (D:\LLVM\bin\clang-cl.exe+0x1b609e6)
#16 0x00007ff7e36e064e (D:\LLVM\bin\clang-cl.exe+0x1b6064e)
#17 0x00007ff7e2143a61 (D:\LLVM\bin\clang-cl.exe+0x5c3a61)
#18 0x00007ff7e21435f2 (D:\LLVM\bin\clang-cl.exe+0x5c35f2)
#19 0x00007ff7e2140366 (D:\LLVM\bin\clang-cl.exe+0x5c0366)
#20 0x00007ff7e213d325 (D:\LLVM\bin\clang-cl.exe+0x5bd325)
#21 0x00007ff7e213bcbe (D:\LLVM\bin\clang-cl.exe+0x5bbcbe)
#22 0x00007ff7e28555cd (D:\LLVM\bin\clang-cl.exe+0xcd55cd)
#23 0x00007ff7e22c4175 (D:\LLVM\bin\clang-cl.exe+0x744175)
#24 0x00007ff7e22c3f68 (D:\LLVM\bin\clang-cl.exe+0x743f68)
#25 0x00007ff7e1fcc0c8 (D:\LLVM\bin\clang-cl.exe+0x44c0c8)
#26 0x00007ff7e1fcb44e (D:\LLVM\bin\clang-cl.exe+0x44b44e)
#27 0x00007ff7e1fcafc7 (D:\LLVM\bin\clang-cl.exe+0x44afc7)
#28 0x00007ff7e1fc2756 (D:\LLVM\bin\clang-cl.exe+0x442756)
#29 0x00007ff7e1fbfed3 (D:\LLVM\bin\clang-cl.exe+0x43fed3)
#30 0x00007ff7e3782bc8 (D:\LLVM\bin\clang-cl.exe+0x1c02bc8)
#31 0x00007ffbdf6b7374 (C:\Windows\System32\KERNEL32.DLL+0x17374)
#32 0x00007ffbe135cc91 (C:\Windows\SYSTEM32\ntdll.dll+0x4cc91)
clang-cl: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 19.1.7
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: D:\LLVM\bin
clang-cl: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-cl: note: diagnostic msg: F:\Temp\WinTemp\main-efd334.cpp
clang-cl: note: diagnostic msg: F:\Temp\WinTemp\main-efd334.sh
clang-cl: note: diagnostic msg:
********************
ninja: build stopped: subcommand failed.
```
The full code
```c++
#include <concurrencpp/concurrencpp.h>
concurrencpp::result<void> bar() {
co_return;
}
[[noreturn]] concurrencpp::result<void> foo() {
co_await bar();
}
```
Yes, I know it's a bad practice to flag `[[noreturn]]` on a function that might return, but it should get a warn or error, but the compiler crashes
the crash file
[crash.zip](https://github.com/user-attachments/files/18811028/crash.zip)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUmF1z4jgWhn-NcnPKlC35iwsuHAPTqU13Uh12U7M3KVmSQR1juSSZpPfXb8kmGNM902ZnbpaiAMuvHn2-RudQY-S2FmKBolsULW9oa3dKL35vP7W03sj6plD8-wLF_vHtZ0tEMhTl9_f_-oyivJA1inJW0XrrsWom3gUAeJtH8Jb51_zx8eXu8-PD181L9ngHntybAzvWzyupXNUDa163KMplbSytKsFRlL_Hofcma67eTHeHVS0XgPB6-Xz3heDu18vz3Zflw_OTu1h9Msx9PxR-98Xd59dNHoBnLEckYwjfInxbUSuMBe_zkoP3b-lUXc8RybxnWlXgPYt3qyl4z43gtLaSgffMVH0Q2khVuwqN0HtpjDwIz12anXq76zto3PVa5Z_pq1jLSri-fxFvMy41ivI9lfWMNc1MFd86If8DIXgMPA8upulRq2-C2V55hhsW5JdKnCYI52GA8ByRDN6ormU3dijbmtl-fEmpFMIJcMEqqoWbyaRWWthW167c7FRbcaiVhb4QUHTrPcv6QCvJvZM0WiI_AwBIACU5dLvr9vxutASmatZqLWrXO5Ihkmlh2soikh-U5IisoOtNivAcUHJ7JEJHnPpC0Qr52eP9KntagWmLvbRAoWi3oEWjtAWrYGdtY1wP8Brh9VbaXVvMmNojvK6qw8eX1xxnFq-lMa0wCK-B1hw-NqjdCWCamh0UlL1aTZlAOIdGi0YrJowRHIxqdV_salJjFJPUCg66rcEwLRs7Q372ZCl7Bd7uu4nxM3-G_PmjVltN90D1tt2L2rouf-yTwZEnU176coorz_bRmTcv7PmDQ__PTTqy36-teikfG3Y8g4MZT34cmzdwC4tILlTp9ntDtREaqAVRc1AllLISyM-wk001OskSRLLQfXRAWW8Hi7vn-eBz5Gerdyaa7lauuHB1_Pfc716RcxzCxAf_3V0nZZkIjEvGwxAQTn_1V4Dwrf-eJE7uHjo9LLiEFcS_BlYQf4DhcxihmJVxORkWCOr0A42MusbmkU-S6bQgcPqBFl7QQkLoNTSnH2jRBY2IlFxDc_qBFl_QfFFE19CcfqAlP9DwVSN1-oGWjmg8DEqaXkFjTj_Q5uO-pTiIr1lT3-l7mtu7YyewpIyL6U4I_NLpB1pwQYt5NL-G5vQDbeQFTEUq6PQ1LWMnH2DkAuazAF8Bc_IBNnYC5TxNp--PMnLyATYyAomFPxfx9EkrYqcfaPElLQ7FVbQ4FANtbIQgJDQOJtMi5uQDLL2EReX0JYiYkw-w-QXMJ_H0WYuYk59geOyCgHCCp--0qHDyARZcwApWTF-BqHDyATb2QBpFEeOTYYw7-QAbewCzMEimDzMJnXyAhRcwUsbTn2pJ6OQDbOSBoGTMZ9NhYejkAyy-gBXhFRYIQycfYMkFjJZs-uM2DJ18gKUXMJxE0zdtGDr5AJuPYUUp-PQ_0JA4-Qk2PhGRJMXFFQsQMN_pB9qZBQpexkVCku5fJe9pz6eD9tN3Y8WeYBTl_1h9_bK6J3i2vL_vqa7WwDxzQiECEjE2D37O_P1ps_rcMWvLq2rGq6ofs6vSAz-G4E6HQmul3Y-uEEqtausOq0zt9y6mKamsBAfeChdaGbmtaeUabo0A79CVCQGyPihG3bHzrAX4OMIH81kwc4fTDdVbYV1r72n8Eodewz7iDs-FLU6y04Jy2Csuuv41ysh35Gd3HxHLUuqzQOlsacbjqpXtTr9c0m2tjAsr9qYLj7sZ_QtvPxsi0GyzyfJPsPm0gvXD_f3D892X32B9d796gs1DV3z7z9_g68qFZ33o9_iz8DE1Lib-wxDyJNACKjfPggO1PW_amNf9bG3Evul3y_GXCzI8UXJCwmME8_fxzO6qJfnLq1LL-ht1tKKVFQdjVdMIF4mCaYvxdnYx-XkSrNt3Asq2qoC5sOns9jGO7X14iotJPkp34PX55WyHyKrHTkiKFFSPkyJMvRwTK6RrNlke5-fvyrow9ULfqLRD05ct_TA9vwuDcA538FqrN5AW4cQAhYJyaDRlVrLu-VBWdAuu0k-6imIfVA10CF7tjlrYy-3uI_vkmihaC9J-ZKa2wgLtklug9PFhdRR1-Rm1b2QldJ-oEabv7JC5Ocbb_eR1RbP_yMZ1Bqd_kiZqjdAetZayXZ-ZweuySxfgdZCmLoxI3ZKfeHh-wxeEz8mc3ohFkJB5jOdRGN7sFvNkTn1G5ilOuRBpHERhEce-iP2iCJKE3sgF9nHk4yAKQhyF4YxEkfDnJfOTlOMkjFDoiz2V1ayqDvuZ0tubLl-1CHBCcHJT0UJUpkv4YlyLN-juIoxRtLzRiy7VVbRbg0K_ksaaAWOlrbpM8cmk0RKcD_5kAam1WhatFcBoa4Q5ZSSs-kiWfT9mG10pHfanvVj3nmxmN62uFv97yu44C4cF_m8AAAD__z3KnLU">