From 2a48c24d77c6b5bd7d7f3ed52839a5cf2981dabf Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Fri, 13 Nov 2015 01:54:40 +0000 Subject: [libFuzzer] make libFuzzer build even with a compiler that does not have sanitizer headers llvm-svn: 253003 --- llvm/lib/Fuzzer/FuzzerDFSan.h | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'llvm/lib/Fuzzer/FuzzerDFSan.h') 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() +# if defined (__linux__) +# undef LLVM_FUZZER_SUPPORTS_DFSAN +# define LLVM_FUZZER_SUPPORTS_DFSAN 1 +# include +# endif // __linux__ +# endif +#endif // defined(__has_include) -#include #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 -- cgit v1.2.3