<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/150817>150817</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[FunctionAttrs] Failure to infer nounwind for function nounwind inline asm
</td>
</tr>
<tr>
<th>Labels</th>
<td>
ipo,
missed-optimization
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
nikic
</td>
</tr>
</table>
<pre>
https://llvm.godbolt.org/z/GbhjKE6Ex
```llvm
; RUN: opt -S -passes=function-attrs < %s
define void @test() {
call void asm "", ""() nounwind
ret void
}
```
For some reason `nounwind` does not get inferred, even though the inline asm call is nounwind.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxcks2OmzAQx59muIwSOQPGyYEDu1l6qNRDqz6AiSfgrbEj26TtPn0FSZOq0khgz4f_M7_RKdnBMzcgX0AeCz3nMcTG2x_2VPTB_G7GnC8JyhaoA-qcu07bIZg-uLwNcQDqPoC6T_34_vmtfvsFooVa3GyJXc7lC379_gXKFsMl4-Ybbi46JU5QHs-zP2Ub_EbnHBNC-YpAMoFoDZ-tZ7wGaxAqkTlloD3QAUG9gGgRT9q5m1-nCYFotdfH3xrsw-x_Wm_WjMh5TVhEqeO_UkG0XYiYwsQYWafgEWrxSK4FmsAJfcg4cEbrzxwjm-U5vrLHPIZ5GDGPjNa7RfiiaVVo00PEtjBNaQ7lQRfc7JQsa0G0V8XYsJSypDP1ZEiI6rRXlWSzq1Wvz4da7wrbkCApFCmhqqpS231d18wstNwp04sDVIInbd12JRTiUNiUZm52Uux3qnC6Z5dWykT2Em6zAqLJpsRmEy7ZTvZDLzAWnzwWsVlKbfp5SFAJZ1NOz-LZZrcuTXcn2C4AQR6x09bNkTGH25ge3eM5RPwL_Hn7nFcxR_ffug02j3O_PYXpvnv3z-YSwzufMlC3tpmAunun14b-BAAA___f0-QU">