<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/152477>152477</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
confusing `-Wunreachable-code` calling a `[[noreturn]]` function with a non-POD return type
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:diagnostics
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
firewave
</td>
</tr>
</table>
<pre>
```cpp
#include <stdexcept>
#include <string>
[[noreturn]] int func();
[[noreturn]] std::string err();
void f(int i)
{
if (i == 0) {
}
else if (i == 1) {
func();
}
else {
err();
}
}
```
```
<source>:15:9: warning: code will never be executed [-Wunreachable-code]
15 | err();
| ^~~~~
```
https://godbolt.org/z/ffKzT8MfP
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0Us2O8jgQfJrOpQVy2glJDjkEGC6r1c5hpT0nTge88tjIdmBmDjz7ysBqvuFjoih_Vd1dXak-BL23zC2Uayi3WT_Hg_PtpD2f-xNngxs_WliJ26mORxAdkNRWmXlkBLkJceR3xccI8uUJ6LXd3xHRXYesrfMcZ2-h3EK5RW0jTrNVQDVQA3L9EzHEEWQHsrt1Rfb-W43oTk6POAHVqadOiOigSiAiop4wQQhyC3KLAqjBLxSq7f2JTeBHcv6dnI5HzU-afC940Hsn36__W3w36tdXuQlu9oqTjbLLS5BdA7LDc-_t1d0OlRsZz9oYtHxijwMjv7OaI48I5Xrxz2w99-rQD4YXiZwsvSrLS4Rqgz9pxNtWG4Ty5XK5XH6XeojxGNJ_oR3Qbu_GwZm4dH4PtPsE2k3TH59_139Or9nYyrGRTZ9xm1dlUa4oL4rs0DIJoiGviMu6kQ1PRdnkDQ1FTaKiSWW6JUGlqEWVCyIqlqJeNcP101iIUtZQCH7rtVkac3pLszMdwsxtXlJRVZnpBzbhGnEiZfqrZ6Pu99aFqFUAopR936byxTDvAxTC6BDDV8Ooo-FWOTvNIYUPVuKJqyuBqjcmEfpEeZbjRErZidpZPOt4wB6ts4vXv7Z442H8OHI2e9M-mKvjYR6Wyr0B7ZKy-21x9O5fVhFod907AO3uq59a-i8AAP__fjgZMw">