<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/162798>162798</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Adding cfi_unchecked_callee in function type conversion suppresses diagnosis regarding other info
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
brunodf-snps
</td>
</tr>
</table>
<pre>
C++ test case:
```
void f();
// adding cfi_unchecked_callee is OK
void (*fptr1)() __attribute__((cfi_unchecked_callee)) = &f;
// adding noreturn is NOT ok
void (*fptr2)() __attribute__((noreturn)) = &f;
// BUG: adding cfi_unchecked_callee absolves adding noreturn ??
void (*fptr3)() __attribute__((cfi_unchecked_callee,noreturn)) = &f;
```
Godbolt demo: https://godbolt.org/z/1P4onfG7K
There was a similar issue for the conversion in C mode. This was part of a larger issue that was resolved in #160477.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycU01r5DgQ_TXypUgjl92y--BDd0LnENjsIXtuZKtsa6OWjCT3kv31g9QJ85GZHhgoMLj0Xr33ipIh6MkSdWx7YNuHQq5xdr7r_WqdGu-CXULRO_XW3TM8MDxApBBhkIFYtWc8l-DvxfcXpxWMDFuGO1Yd3h_gkeERpFLaTjCM-rTaYabhldRpkMYQgQ7w_PSBz_D9uERfJppMBqeTjNHrfo10OuV_7c-YMmAHrHoAhmL8hQbrPMXV2zT3r-cXcK-fZ-PN2R8Mv5l3-OeRVfub1mUfnLlQ-KSNVcdUn4RVfxDK_W2932yQ8f2jU70zERSdXVI_x7iEtO7sabp2N85PDI__MzyWf9fOjo_N0xX-MpMn-E8GkBD0WRvpQYewEozOQ5wJBmcv5IN2FrSFezg7RRt4mXXIsEX6CG4ECUb6iT7QcZYx9z3lxFQCM6xKweum2RSqq9Su2smCurIRnLeVqEUxd7JtSqG4IF4rUYseCcumrgaFvGzGWhW6Q47bkpect7xBscFmbLHZilqott6KHas5naU2G2Mu52S8yIq6UmCzawsjezIhXxDiYKSdGGI6Jt8lwF2_ToHV3OgQw1eKqKPJZ3dFbB9gf-tALIyrHWLKLL4t32UY1mXxFAIFUFpO1gWdQpqkz3wuzilDO7pi9ab7YZs6zmu_GdyZ4TFpe__cLd79S0NkeMxeQ9rz1e6lwy8BAAD__71iUZc">