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