We now get lots of compile time output like:
```bash
In file included from test/fuzz/addition_overflow.cpp:7:
./test/fuzz/util.h: In member function 'virtual SOCKET FuzzedSock::Get() const':
./test/fuzz/util.h:563:5: warning: no return statement in function returning non-void [-Wreturn-type]
  563 |     }
      |     ^
./test/fuzz/util.h: In member function 'virtual SOCKET FuzzedSock::Release()':
./test/fuzz/util.h:568:5: warning: no return statement in function returning non-void [-Wreturn-type]
  568 |     }
      |     ^
...
```
anywhere `test/fuzz/util.h` is included. Would be great to not have build logs filled with this spam.

This was all present in the CI. i.e https://cirrus-ci.com/task/5500626558779392?command=ci#L4283. 

cc @practicalswift @vasild 
   mode = "a";
            },
            [&] {
                mode = "a+";
            });
#ifdef _GNU_SOURCE
        const cookie_io_functions_t io_hooks = {
            FuzzedFileProvider::read,
            FuzzedFileProvider::write,
            FuzzedFileProvider::seek,
            FuzzedFileProvider::close,
        };
        return fopencookie(this, mode.c_str(), io_hooks);
#else
        (void)mode;
        return nullptr;
#endif
    }
    static ssize_t read(void* cookie, char* buf, size_t size)
    {
        FuzzedFileProvider* fuzzed_file = (FuzzedFileProvider*)cookie;
        if (buf == nullptr || size == 0 || fuzzed_file->m_fuzzed_data_provider.ConsumeBool()) {
            return fuzzed_file->m_fuzzed_data_provider.ConsumeBool() ? 0 : -1;
        }
        const std::vector<uint8_t> random_bytes = fuzzed_file->m_fuzzed_data_provider.ConsumeBytes<uint8_t>(size);
        if (random_bytes.empty()) {
            return 0;
        }
        std::memcpy(buf, random_bytes.data(), random_bytes.size());
        if (AdditionOverflow(fuzzed_file->m_offset, (int64_t)random_bytes.size())) {
            return fuzzed_file->m_fuzzed_data_provider.ConsumeBool() ? 0 : -1;
        }
        fuzzed_file->m_offset += random_bytes.size();
        return random_bytes.size();
    }
    static ssize_t write(void* cookie, const char* buf, size_t size)
    {
        FuzzedFileProvider* fuzzed_file = (FuzzedFileProvider*)cookie;
        const ssize_t n = fuzzed_file->m_fuzzed_data_provider.ConsumeIntegralInRange<ssize_t>(0, size);
        if (AdditionOverflow(fuzzed_file->m_offset, (int64_t)n)) {
            return fuzzed_file->m_fuzzed_data_provider.ConsumeBool() ? 0 : -1;
        }
        fuzzed_file->m_offset += n;
        return n;
    }
    static int seek(void* cookie, int64_t* offset, int whence)
    {
        assert(whence == SEEK_SET || whence == SEEK_CUR); 
        FuzzedFileProvider* fuzzed_file = (FuzzedFileProvider*)cookie;
        int64_t new_offset = 0;
        if 