[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:
Kuba Brecka 2015-11-06 11:07:26 +00:00
parent 1ef2414861
commit 3a618b0317
2 changed files with 9 additions and 1 deletions

View File

@ -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

View File

@ -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); \