<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">