diff options
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_interceptors.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc b/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc index 96c64d8be53..e38786a629b 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc @@ -367,21 +367,29 @@ extern "C" void __tsan_setjmp(uptr sp, uptr mangled_sp) { } // Not called. Merely to satisfy TSAN_INTERCEPT(). +extern "C" int __interceptor_setjmp(void *env) + SANITIZER_INTERFACE_ATTRIBUTE; extern "C" int __interceptor_setjmp(void *env) { CHECK(0); return 0; } +extern "C" int __interceptor__setjmp(void *env) + SANITIZER_INTERFACE_ATTRIBUTE; extern "C" int __interceptor__setjmp(void *env) { CHECK(0); return 0; } +extern "C" int __interceptor_sigsetjmp(void *env) + SANITIZER_INTERFACE_ATTRIBUTE; extern "C" int __interceptor_sigsetjmp(void *env) { CHECK(0); return 0; } +extern "C" int __interceptor___sigsetjmp(void *env) + SANITIZER_INTERFACE_ATTRIBUTE; extern "C" int __interceptor___sigsetjmp(void *env) { CHECK(0); return 0; @@ -493,15 +501,26 @@ TSAN_INTERCEPTOR(uptr, malloc_usable_size, void *p) { invoke_malloc_hook(p, size); \ return p; +void *operator new(__sanitizer::uptr size) + SANITIZER_INTERFACE_ATTRIBUTE; void *operator new(__sanitizer::uptr size) { OPERATOR_NEW_BODY(_Znwm); } + +void *operator new[](__sanitizer::uptr size) + SANITIZER_INTERFACE_ATTRIBUTE; void *operator new[](__sanitizer::uptr size) { OPERATOR_NEW_BODY(_Znam); } + +void *operator new(__sanitizer::uptr size, std::nothrow_t const&) + SANITIZER_INTERFACE_ATTRIBUTE; void *operator new(__sanitizer::uptr size, std::nothrow_t const&) { OPERATOR_NEW_BODY(_ZnwmRKSt9nothrow_t); } + +void *operator new[](__sanitizer::uptr size, std::nothrow_t const&) + SANITIZER_INTERFACE_ATTRIBUTE; void *operator new[](__sanitizer::uptr size, std::nothrow_t const&) { OPERATOR_NEW_BODY(_ZnamRKSt9nothrow_t); } @@ -514,15 +533,26 @@ void *operator new[](__sanitizer::uptr size, std::nothrow_t const&) { SCOPED_INTERCEPTOR_RAW(mangled_name, ptr); \ user_free(thr, pc, ptr); +void operator delete(void *ptr) + SANITIZER_INTERFACE_ATTRIBUTE; void operator delete(void *ptr) { OPERATOR_DELETE_BODY(_ZdlPv); } + +void operator delete[](void *ptr) + SANITIZER_INTERFACE_ATTRIBUTE; void operator delete[](void *ptr) { OPERATOR_DELETE_BODY(_ZdlPvRKSt9nothrow_t); } + +void operator delete(void *ptr, std::nothrow_t const&) + SANITIZER_INTERFACE_ATTRIBUTE; void operator delete(void *ptr, std::nothrow_t const&) { OPERATOR_DELETE_BODY(_ZdaPv); } + +void operator delete[](void *ptr, std::nothrow_t const&) + SANITIZER_INTERFACE_ATTRIBUTE; void operator delete[](void *ptr, std::nothrow_t const&) { OPERATOR_DELETE_BODY(_ZdaPvRKSt9nothrow_t); } |