mirror of
https://github.com/intel/llvm.git
synced 2026-01-24 00:20:25 +08:00
[NFC][Sanitizer] Change "return type" of INTERCEPT_FUNCTION to void
This temporary change tells us about all the places where the return value of the INTERCEPT_FUNCTION macro is actually used. In the next patch I will cleanup the macro and remove GetRealFuncAddress. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D61145 llvm-svn: 359325
This commit is contained in:
@@ -122,12 +122,16 @@ DECLARE_REAL(char*, strstr, const char *s1, const char *s2)
|
||||
#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)
|
||||
|
||||
@@ -30,16 +30,18 @@ void *GetFuncAddrVer(const char *name, const char *ver);
|
||||
} // 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)
|
||||
|
||||
@@ -1243,13 +1243,17 @@ int OnExit() {
|
||||
|
||||
#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)
|
||||
|
||||
Reference in New Issue
Block a user