[PATCH] D61145: [NFC][Sanitizer] Change "return type" of INTERCEPT_FUNCTION to void
Julian Lettner via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 25 13:28:07 PDT 2019
yln created this revision.
Herald added subscribers: llvm-commits, Sanitizers, kubamracek.
Herald added projects: Sanitizers, LLVM.
This temporary change, tells us about all the places where the return
value of the macro is actually used. Next path will remove will cleanup
the macro and remove GetRealFuncAddress.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D61145
Files:
compiler-rt/lib/asan/asan_interceptors.h
compiler-rt/lib/interception/interception_linux.h
compiler-rt/lib/msan/msan_interceptors.cc
Index: compiler-rt/lib/msan/msan_interceptors.cc
===================================================================
--- compiler-rt/lib/msan/msan_interceptors.cc
+++ compiler-rt/lib/msan/msan_interceptors.cc
@@ -1243,13 +1243,17 @@
#define MSAN_INTERCEPT_FUNC(name) \
do { \
- if ((!INTERCEPT_FUNCTION(name) || !REAL(name))) \
+ INTERCEPT_FUNCTION(name); \
+ bool same = (& (name) == & WRAP(name)); \
+ if ((!same || !REAL(name))) \
VReport(1, "MemorySanitizer: failed to intercept '" #name "'\n"); \
} while (0)
#define MSAN_INTERCEPT_FUNC_VER(name, ver) \
do { \
- if ((!INTERCEPT_FUNCTION_VER(name, ver) || !REAL(name))) \
+ INTERCEPT_FUNCTION_VER(name, ver); \
+ name##_type ptr = (::__interception::real_##name); \
+ if ((!ptr || !REAL(name))) \
VReport( \
1, "MemorySanitizer: failed to intercept '" #name "@@" #ver "'\n"); \
} while (0)
Index: compiler-rt/lib/interception/interception_linux.h
===================================================================
--- compiler-rt/lib/interception/interception_linux.h
+++ compiler-rt/lib/interception/interception_linux.h
@@ -30,16 +30,18 @@
} // namespace __interception
#define INTERCEPT_FUNCTION_LINUX_OR_FREEBSD(func) \
- ::__interception::GetRealFunctionAddress( \
+ do { ::__interception::GetRealFunctionAddress( \
#func, (::__interception::uptr *)&__interception::PTR_TO_REAL(func), \
(::__interception::uptr) & (func), \
- (::__interception::uptr) & WRAP(func))
+ (::__interception::uptr) & WRAP(func)); \
+ } while (0) // TODO(yln): temporarily make macro void.
// Android, Solaris and OpenBSD do not have dlvsym
#if !SANITIZER_ANDROID && !SANITIZER_SOLARIS && !SANITIZER_OPENBSD
#define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
- (::__interception::real_##func = (func##_type)( \
- unsigned long)::__interception::GetFuncAddrVer(#func, symver))
+ do { (::__interception::real_##func = (func##_type)( \
+ unsigned long)::__interception::GetFuncAddrVer(#func, symver)); \
+ } while (0)
#else
#define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
INTERCEPT_FUNCTION_LINUX_OR_FREEBSD(func)
Index: compiler-rt/lib/asan/asan_interceptors.h
===================================================================
--- compiler-rt/lib/asan/asan_interceptors.h
+++ compiler-rt/lib/asan/asan_interceptors.h
@@ -122,12 +122,16 @@
#if !SANITIZER_MAC
#define ASAN_INTERCEPT_FUNC(name) \
do { \
- if ((!INTERCEPT_FUNCTION(name) || !REAL(name))) \
+ INTERCEPT_FUNCTION(name); \
+ bool same = (& (name) == & WRAP(name)); \
+ if ((!same || !REAL(name))) \
VReport(1, "AddressSanitizer: failed to intercept '" #name "'\n"); \
} while (0)
#define ASAN_INTERCEPT_FUNC_VER(name, ver) \
do { \
- if ((!INTERCEPT_FUNCTION_VER(name, ver) || !REAL(name))) \
+ INTERCEPT_FUNCTION_VER(name, ver); \
+ name##_type ptr = (::__interception::real_##name); \
+ if ((!ptr || !REAL(name))) \
VReport( \
1, "AddressSanitizer: failed to intercept '" #name "@@" #ver "'\n"); \
} while (0)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D61145.196717.patch
Type: text/x-patch
Size: 4372 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190425/f8ebcf36/attachment.bin>
More information about the llvm-commits
mailing list