diff options
| -rw-r--r-- | compiler-rt/lib/asan/Makefile.old | 2 | ||||
| -rw-r--r-- | compiler-rt/lib/asan/asan_interface.h | 2 | ||||
| -rw-r--r-- | compiler-rt/lib/asan/asan_internal.h | 2 | ||||
| -rw-r--r-- | compiler-rt/lib/asan/tests/asan_test.cc | 9 | 
4 files changed, 9 insertions, 6 deletions
diff --git a/compiler-rt/lib/asan/Makefile.old b/compiler-rt/lib/asan/Makefile.old index 94faabe3d80..1b28239b552 100644 --- a/compiler-rt/lib/asan/Makefile.old +++ b/compiler-rt/lib/asan/Makefile.old @@ -137,7 +137,6 @@ COMMON_ASAN_DEFINES=\  CLANG_ASAN_CXX=$(CLANG_CXX) \  	       -faddress-sanitizer \ -	       -DADDRESS_SANITIZER=1 \  		$(BLACKLIST)  \  		-mllvm -asan-stack=$(ASAN_STACK)      \  		-mllvm -asan-globals=$(ASAN_GLOBALS)  \ @@ -152,7 +151,6 @@ CLANG_ASAN_LD=$(CLANG_CXX) -faddress-sanitizer  GCC_ASAN_PATH=SET_FROM_COMMAND_LINE  GCC_ASAN_CXX=$(GCC_ASAN_PATH)/g++ \  	     -faddress-sanitizer \ -	     -DADDRESS_SANITIZER=1 \  	     $(COMMON_ASAN_DEFINES)  GCC_ASAN_LD=$(GCC_ASAN_PATH)/g++ -ldl -lpthread diff --git a/compiler-rt/lib/asan/asan_interface.h b/compiler-rt/lib/asan/asan_interface.h index 72ec1265b54..7506586fefe 100644 --- a/compiler-rt/lib/asan/asan_interface.h +++ b/compiler-rt/lib/asan/asan_interface.h @@ -75,7 +75,7 @@ extern "C" {    void __asan_unpoison_memory_region(void const volatile *addr, size_t size);  // User code should use macro instead of functions. -#ifdef ADDRESS_SANITIZER +#if defined(__has_feature) && __has_feature(address_sanitizer)  #define ASAN_POISON_MEMORY_REGION(addr, size) \    __asan_poison_memory_region((addr), (size))  #define ASAN_UNPOISON_MEMORY_REGION(addr, size) \ diff --git a/compiler-rt/lib/asan/asan_internal.h b/compiler-rt/lib/asan/asan_internal.h index cf85704109d..79a4f05e84e 100644 --- a/compiler-rt/lib/asan/asan_internal.h +++ b/compiler-rt/lib/asan/asan_internal.h @@ -36,7 +36,7 @@  #include <sys/atomics.h>  #endif -#ifdef ADDRESS_SANITIZER +#if defined(__has_feature) && __has_feature(address_sanitizer)  # error "The AddressSanitizer run-time should not be"          " instrumented by AddressSanitizer"  #endif diff --git a/compiler-rt/lib/asan/tests/asan_test.cc b/compiler-rt/lib/asan/tests/asan_test.cc index b1ac647c1ab..7a9645443f3 100644 --- a/compiler-rt/lib/asan/tests/asan_test.cc +++ b/compiler-rt/lib/asan/tests/asan_test.cc @@ -219,8 +219,13 @@ void uaf_test(int size, int off) {    asan_write((T*)(p + off));  } -TEST(AddressSanitizer, ADDRESS_SANITIZER_MacroTest) { -  EXPECT_EQ(1, ADDRESS_SANITIZER); +TEST(AddressSanitizer, HasFeatureAddressSanitizerTest) { +#if defined(__has_feature) && __has_feature(address_sanitizer) +  bool asan = 1; +#else +  bool asan = 0; +#endif +  EXPECT_EQ(true, asan);  }  TEST(AddressSanitizer, SimpleDeathTest) {  | 

