<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/93107>93107</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
-Wunguarded-availability can't cope with early returns
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DanAlbert
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/s1YGsPW4s
```c++
#include <stdlib.h>
extern "C" void foo() __attribute__((availability(android, introduced=30)));
int main() {
// This weird pattern is required:
// https://github.com/llvm/llvm-project/issues/33161
if (__builtin_available(android 30, *)) {
} else {
return 1;
}
foo();
}
```
When compiled with `-Werror=unguarded-availability -target aarch64-linux-android21 foo.cpp`:
```
<source>:13:5: error: 'foo' is only available on Android 30 or newer [-Werror,-Wunguarded-availability]
13 | foo();
| ^~~
<source>:3:17: note: 'foo' has been marked as being introduced in Android 30 here, but the deployment target is Android 21
3 | extern "C" void foo() __attribute__((availability(android, introduced=30)));
| ^
<source>:13:5: note: enclose 'foo' in a __builtin_available check to silence this warning
13 | foo();
| ^~~
1 error generated.
Compiler returned: 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Vctu6zYQ_ZrxZmBDGlpWvNBCseNuuygQdGVQ4sRiL026JJXcdHG_vaAkP-K6KLq5AiGCw9c5Zx6UIeiDZa6geIZiO5N97JyvttLWpmEfZ41Tn1UX4ymAqIF2QLuDU40zceH8AWj3F9Au5L__En59XQbItpDV03-Vja0Fek5ttJLQtjW9YgSxCVEZ3Sw6EC-3W_l7ZG8RiDZAhO9OK3xzDugJaI37vYzR66aPvN8Ptif5LrWRjTY6fqahVd5pBbRBbaN3qm9ZgdiKDGg9NfF8e6O2EY9S2-kKKKdZRMSRNf7W6YAfrL3Ck4wDQB3Q85-99un0-h877mTTseubReuOQDtj3s_d_OTdH9xGoJ0OoecAtBMiX-XX8_QbAj3t902vTdR2P9E1fOWKidsGgeqR3x2FcotsAn-1ps9z7L3F_KLHtPxWnGS6yH8V7rLo7OjbPa8dW2zd8aQNK_zQsUNYZfNX9t55ENveHnrpFav5re9wHqU_cEQpfdutlnOjbf99PnGkPMFYtKdTuuws-GMQYhNc71tOkSXqXICoCxA1TvfXCFQOnMrkRWfNJ15URWexvsiKzqPlD_YIxfOZAG3mr48pQLG9qJYLhHLzQLtR-zQ39MXLjx8PcSfYeZngWhf5K-xOBmyYLR6l_8YKh6G2h5uQR_2FSMeeU5A0fcTYMSo-Gfd5ZBtxkl2Hy3q6ib-Rxs_Myq8C3X5QvPyHi89SsW2NSzF_9bRFiQ_SCNuO228YHQZt2LaMcUh26a22h3t3Pk6HBy5N_TCXj2GHB7bsZWS1GO2bMT_8lIVDFcH8LqBnqhJqLdZyxlVe5qslZXmxnnWVfCveeMUkV5ks2kIKpWRbSC6lauTq6WmmK8pomRVEJIjEetESl6LlrMyXS6Uog2XGR6nNItWhVM9nQwWq1iLPypmRDZswvAxElj9wmASi9FD4aqhdTX8IsMyMDjFcT4k6Gq7-LUOwlRaojNi6E4-lgaU3n5MKYdZ7c__k_I_aOYJ_r-jvAAAA__8irwMY">