diff options
| -rw-r--r-- | compiler-rt/lib/asan/asan_interceptors.cc | 7 | ||||
| -rw-r--r-- | compiler-rt/lib/asan/tests/asan_str_test.cc | 2 | ||||
| -rw-r--r-- | compiler-rt/lib/interception/interception.h | 3 | 
3 files changed, 3 insertions, 9 deletions
diff --git a/compiler-rt/lib/asan/asan_interceptors.cc b/compiler-rt/lib/asan/asan_interceptors.cc index faa75a40a0b..518ceebf62a 100644 --- a/compiler-rt/lib/asan/asan_interceptors.cc +++ b/compiler-rt/lib/asan/asan_interceptors.cc @@ -725,12 +725,11 @@ void InitializeAsanInterceptors() {    InitializeCommonInterceptors();    // Intercept mem* functions. +  ASAN_INTERCEPT_FUNC(memcpy);    ASAN_INTERCEPT_FUNC(memset); -  ASAN_INTERCEPT_FUNC(memmove);    if (PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE) { -    ASAN_INTERCEPT_FUNC(memcpy); -  } else { -    ASSIGN_REAL(memcpy, memmove); +    // In asan, REAL(memmove) is not used, but it is used in msan. +    ASAN_INTERCEPT_FUNC(memmove);    }    CHECK(REAL(memcpy)); diff --git a/compiler-rt/lib/asan/tests/asan_str_test.cc b/compiler-rt/lib/asan/tests/asan_str_test.cc index 8173294a280..dd755875e74 100644 --- a/compiler-rt/lib/asan/tests/asan_str_test.cc +++ b/compiler-rt/lib/asan/tests/asan_str_test.cc @@ -456,7 +456,6 @@ TEST(AddressSanitizer, StrArgsOverlapTest) {  // memmove().  #if !defined(__APPLE__) || !defined(MAC_OS_X_VERSION_10_7) || \      (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7) -#if PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE    // Check "memcpy". Use Ident() to avoid inlining.    memset(str, 'z', size);    Ident(memcpy)(str + 1, str + 11, 10); @@ -464,7 +463,6 @@ TEST(AddressSanitizer, StrArgsOverlapTest) {    EXPECT_DEATH(Ident(memcpy)(str, str + 14, 15), OverlapErrorMessage("memcpy"));    EXPECT_DEATH(Ident(memcpy)(str + 14, str, 15), OverlapErrorMessage("memcpy"));  #endif -#endif    // We do not treat memcpy with to==from as a bug.    // See http://llvm.org/bugs/show_bug.cgi?id=11763. diff --git a/compiler-rt/lib/interception/interception.h b/compiler-rt/lib/interception/interception.h index 5885e103c30..9e9aca215c4 100644 --- a/compiler-rt/lib/interception/interception.h +++ b/compiler-rt/lib/interception/interception.h @@ -158,13 +158,10 @@ const interpose_substitution substitution_##func_name[] \      namespace __interception { \        extern FUNC_TYPE(func) PTR_TO_REAL(func); \      } -# define ASSIGN_REAL(dst, src) REAL(dst) = REAL(src)  #else  // __APPLE__  # define REAL(x) x  # define DECLARE_REAL(ret_type, func, ...) \      extern "C" ret_type func(__VA_ARGS__); -// This is not working on Apple. -# define ASSIGN_REAL(x, y) CHECK(false)  #endif  // __APPLE__  #define DECLARE_REAL_AND_INTERCEPTOR(ret_type, func, ...) \  | 

