I'm using Debian, compiling current master (5bf45fe2a9642f8ae8f8a12bcbf8f8b4770421ad) after configure with `./configure --disable-shared --enable-tests --enable-fuzz CC=${AFLPATH}/afl-clang CXX=${AFLPATH}/afl-clang++`.

Getting this error:
```[+] Instrumented 442 locations (64-bit, hardened mode, ratio 100%).
  CXX      test/fuzz/test_fuzz_key-fuzz.o
afl-cc 2.52b by <lcamtuf@google.com>
test/fuzz/integer.cpp:152:27: error: default initialization of an object of const type 'const SigningProvider' without a
      user-provided default constructor
    const SigningProvider store;
                          ^
                               {}
1 error generated.
Makefile:14931: recipe for target 'test/fuzz/test_fuzz_integer-integer.o' failed
```

If I configure for gcc, I get this error:
```
test/fuzz/multiplication_overflow.cpp: In instantiation of ‘void {anonymous}::TestMultiplicationOverflow(FuzzedDataProvider&) [with T = bool]’:
test/fuzz/multiplication_overflow.cpp:41:58:   required from here
test/fuzz/multiplication_overflow.cpp:21:75: error: argument 3 in call to function ‘__builtin_mul_overflow’ does not have pointer to integer type
     const bool is_multiplication_overflow_builtin = __builtin_mul_overflow(i, j, &result_builtin);
                                                                           ^
Makefile:15155: recipe for target 'test/fuzz/test_fuzz_multiplication_overflow-multiplication_overflow.o' failed
```

Funny enough, it works on my macbook locally :)
cc @practicalswift 
{
    const T i = fuzzed_data_provider.ConsumeIntegral<T>();
    const T j = fuzzed_data_provider.ConsumeIntegral<T>();
    const bool is_multiplication_overflow_custom = MultiplicationOverflow(i, j);
    T result_builtin;
    const bool is_multiplication_overflow_builtin = __builtin_mul_overflow(i, j, &result_builtin);
    assert(is_multiplication_overflow_custom == is_multiplication_overflow_builtin);
    if (!is_multiplication_overflow_custom) {
        assert(i * j == result_builtin);
    }
}
} 
void test_one_input(const std::vector<uint8_t>& buffer)
{
    FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size());
    TestMultiplicationOverflow<int64_t>(fuzzed_data_provider);
    TestMultiplicationOverflow<uint64_t>(fuzzed_data_provider);
    TestMultiplicationOverflow<int32_t>(fuzzed_data_provider);
    TestMultiplicationOverflow<uint32_t>(fuzzed_data_provider);
    TestMultiplicationOverflow<int16_t>(fuzzed_data_provider);
    TestMultiplicationOverflow<uint16_t>(fuzzed_data_provider);
    TestMultiplicationOverflow<char>(fuzzed_data_provider);
    TestMultiplicationOverflow<unsigned char>(fuzzed_data_provider);
    TestMultiplicationOverflow<signed char>(fuzzed_data_provider);
    TestMultiplicationOverflow<bool>(fuzzed_data_provider);
}