diff options
author | Etienne Bergeron <etienneb@google.com> | 2016-07-21 17:58:04 +0000 |
---|---|---|
committer | Etienne Bergeron <etienneb@google.com> | 2016-07-21 17:58:04 +0000 |
commit | 2c781262b8fec2d77704f88e5936662be014566f (patch) | |
tree | 7e89d3a967c58ba8e2bf238d095715319cc4c977 | |
parent | cd32eba67b94c7dc5dde86e14b1330dab85431e9 (diff) | |
download | bcm5719-llvm-2c781262b8fec2d77704f88e5936662be014566f.tar.gz bcm5719-llvm-2c781262b8fec2d77704f88e5936662be014566f.zip |
fix https://reviews.llvm.org/D22610
AppleClang can't compile the assignment expression.
llvm-svn: 276311
-rw-r--r-- | compiler-rt/lib/asan/asan_interceptors.cc | 2 | ||||
-rw-r--r-- | compiler-rt/lib/interception/interception.h | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/compiler-rt/lib/asan/asan_interceptors.cc b/compiler-rt/lib/asan/asan_interceptors.cc index 85d4e7cab4a..faa75a40a0b 100644 --- a/compiler-rt/lib/asan/asan_interceptors.cc +++ b/compiler-rt/lib/asan/asan_interceptors.cc @@ -730,7 +730,7 @@ void InitializeAsanInterceptors() { if (PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE) { ASAN_INTERCEPT_FUNC(memcpy); } else { - REAL(memcpy) = REAL(memmove); + ASSIGN_REAL(memcpy, memmove); } CHECK(REAL(memcpy)); diff --git a/compiler-rt/lib/interception/interception.h b/compiler-rt/lib/interception/interception.h index 9e9aca215c4..5885e103c30 100644 --- a/compiler-rt/lib/interception/interception.h +++ b/compiler-rt/lib/interception/interception.h @@ -158,10 +158,13 @@ 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, ...) \ |