diff options
Diffstat (limited to 'llvm/lib/Fuzzer')
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerDFSan.h | 26 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerIO.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Fuzzer/FuzzerLoop.cpp | 9 |
3 files changed, 26 insertions, 10 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerDFSan.h b/llvm/lib/Fuzzer/FuzzerDFSan.h index 6398575e695..eb206ec61ce 100644 --- a/llvm/lib/Fuzzer/FuzzerDFSan.h +++ b/llvm/lib/Fuzzer/FuzzerDFSan.h @@ -12,15 +12,17 @@ #ifndef LLVM_FUZZER_DFSAN_H #define LLVM_FUZZER_DFSAN_H -#ifndef LLVM_FUZZER_SUPPORTS_DFSAN -# if defined(__linux__) -# define LLVM_FUZZER_SUPPORTS_DFSAN 1 -# else -# define LLVM_FUZZER_SUPPORTS_DFSAN 0 -# endif // __linux__ -#endif // LLVM_FUZZER_SUPPORTS_DFSAN +#define LLVM_FUZZER_SUPPORTS_DFSAN 0 +#if defined(__has_include) +# if __has_include(<sanitizer/dfsan_interface.h>) +# if defined (__linux__) +# undef LLVM_FUZZER_SUPPORTS_DFSAN +# define LLVM_FUZZER_SUPPORTS_DFSAN 1 +# include <sanitizer/dfsan_interface.h> +# endif // __linux__ +# endif +#endif // defined(__has_include) -#include <sanitizer/dfsan_interface.h> #if LLVM_FUZZER_SUPPORTS_DFSAN extern "C" { @@ -42,6 +44,14 @@ static bool ReallyHaveDFSan() { } } // namespace fuzzer #else +// When compiling with a compiler which does not support dfsan, +// this code is still expected to build (but not necessary work). +typedef unsigned short dfsan_label; +struct dfsan_label_info { + dfsan_label l1, l2; + const char *desc; + void *userdata; +}; namespace fuzzer { static bool ReallyHaveDFSan() { return false; } } // namespace fuzzer diff --git a/llvm/lib/Fuzzer/FuzzerIO.cpp b/llvm/lib/Fuzzer/FuzzerIO.cpp index 4bb2df5d71a..abc444a3d47 100644 --- a/llvm/lib/Fuzzer/FuzzerIO.cpp +++ b/llvm/lib/Fuzzer/FuzzerIO.cpp @@ -15,6 +15,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> +#include <cstdarg> #include <cstdio> namespace fuzzer { diff --git a/llvm/lib/Fuzzer/FuzzerLoop.cpp b/llvm/lib/Fuzzer/FuzzerLoop.cpp index 455aa625337..48c1b35dccb 100644 --- a/llvm/lib/Fuzzer/FuzzerLoop.cpp +++ b/llvm/lib/Fuzzer/FuzzerLoop.cpp @@ -10,12 +10,17 @@ //===----------------------------------------------------------------------===// #include "FuzzerInternal.h" -#include <sanitizer/coverage_interface.h> #include <algorithm> +#if defined(__has_include) +# if __has_include(<sanitizer/coverage_interface.h>) +# include <sanitizer/coverage_interface.h> +# endif +#endif + extern "C" { // Re-declare some of the sanitizer functions as "weak" so that -// libFuzzer can be linked w/o the sanitizers and sanitizer-coveragte +// libFuzzer can be linked w/o the sanitizers and sanitizer-coverage // (in which case it will complain at start-up time). __attribute__((weak)) void __sanitizer_print_stack_trace(); __attribute__((weak)) void __sanitizer_reset_coverage(); |