<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55018>55018</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
bogus `-Wmissing-prototypes` warning with `extern "C"` function (fuzzer)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
firewave
</td>
</tr>
</table>
<pre>
If you are writing a fuzzer the code will basically like this:
```cpp
#include <cstddef>
#include <cstdint>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t*, size_t)
{
return 0;
}
```
But this code will produce a warning:
```
clang-13 -fsanitize=fuzzer -Weverything -o main main.cpp
main.cpp:4:16: warning: no previous prototype for function 'LLVMFuzzerTestOneInput' [-Wmissing-prototypes]
extern "C" int LLVMFuzzerTestOneInput(const uint8_t*, size_t)
^
main.cpp:4:12: note: declare 'static' if the function is not intended to be used outside of this translation unit
extern "C" int LLVMFuzzerTestOneInput(const uint8_t*, size_t)
^
static
1 warning generated.
```
If you fix that warning it will obviously no longer link.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1VMFuozAQ_Rq4WEGAQyAHDk3TSJW62stq97gyZiDeunZkj5MmX78DJGm6avdWBAZ7zJs3bx40tj3Wjx072sCEA3ZwCpXpmWBdOJ3AMdwCk7aliNKaNcIrKbQ-Mq2egYLKR_wuStdRehkX6XTK3e68knNlpA6EEfF76bFtoYv4w2dRZfAtOo7wiuAMi_L8ni5GG9jT089vm5HhD_D43cCj2QWM8kpa45EF2lP9pjnh3zOvTjBMlmfQcjU9MDocYCDsNOKrS3T9TyW3VFYBx6pvNNk52wYJJNlBOEPifabINJVamH6WcTbrvDCk9gkivj6rPfsFe3BHykA9mFn2IpQZh-Qq53XG7-Z0ZQsabjIzY4kR7JUNfqCGFo87YJ111FEjUdlByPIz_UoWFavZrxflPeHNrgA-KtZf0gz2_oiKh4_LzKfaEIZ7C6QiuZX4ehSo5EBcdaNZr1VSk2j_QBBMCy1DyxpgwdOjDegV9c92UzPRCeO1GF8L1JOvrvRa5c3auZBxObs0lPVgwAmENvmPKc_fb6deqRyB15cVTg61zWgH-mrJHNqanpymlXlO4rbm7ZIvRYwKNdSN7ck1hP6hAxbpFfmgcDvsey_RsOPGZNVkahIgDk7XW8Td-LfIN3T2hBCaRNoXmmi9v9yGhH9AkmwbYhAobb4pijSr4m1dLUUlFoXgshWllHNeLZqO_jRNk3EJoom1aED7mixMbAwc2AgxMCvWsarzNM_TeZ5lZZrxIsmlKPO2LPhi2S3btIjmKZDtdDLwSKzrY1ePlJrQewpq5dG_BQUJ1BuAMR3hi4Bb6-pOOTiIPcRj7nrk_hdO7LCK">