forked from OSchip/llvm-project
[tsan] Enable new/delete C++ interceptors for OS X
This patch adds `tsan_new_delete.cc` into the OS X build. Differential Revision: http://reviews.llvm.org/D14424 llvm-svn: 252284
This commit is contained in:
parent
1ef2414861
commit
3a618b0317
|
@ -92,7 +92,7 @@ if(APPLE)
|
|||
SHARED
|
||||
OS ${TSAN_SUPPORTED_OS}
|
||||
ARCHS ${TSAN_SUPPORTED_ARCH}
|
||||
SOURCES ${TSAN_SOURCES}
|
||||
SOURCES ${TSAN_SOURCES} ${TSAN_CXX_SOURCES}
|
||||
OBJECT_LIBS RTInterception
|
||||
RTSanitizerCommon
|
||||
RTSanitizerCommonLibc
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
// Interceptors for operators new and delete.
|
||||
//===----------------------------------------------------------------------===//
|
||||
#include "sanitizer_common/sanitizer_internal_defs.h"
|
||||
#include "interception/interception.h"
|
||||
#include "tsan_interceptors.h"
|
||||
|
||||
using namespace __tsan; // NOLINT
|
||||
|
@ -20,6 +21,13 @@ namespace std {
|
|||
struct nothrow_t {};
|
||||
} // namespace std
|
||||
|
||||
DECLARE_REAL(void *, malloc, uptr size)
|
||||
DECLARE_REAL(void, free, void *ptr)
|
||||
#if SANITIZER_MAC
|
||||
#define __libc_malloc REAL(malloc)
|
||||
#define __libc_free REAL(free)
|
||||
#endif
|
||||
|
||||
#define OPERATOR_NEW_BODY(mangled_name) \
|
||||
if (cur_thread()->in_symbolizer) \
|
||||
return __libc_malloc(size); \
|
||||
|
|
Loading…
Reference in New Issue