[asan] rely on __has_feature(address_sanitizer) instead of the ADDRESS_SANITIZER macro

llvm-svn: 147297
This commit is contained in:
Kostya Serebryany 2011-12-27 21:57:12 +00:00
parent 079354692d
commit db32f967b9
4 changed files with 9 additions and 6 deletions

View File

@ -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

View File

@ -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) \

View File

@ -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

View File

@ -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) {