diff options
author | Anna Zaks <ganna@apple.com> | 2016-11-11 22:43:12 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2016-11-11 22:43:12 +0000 |
commit | 7dc571ae0f1f271b19d92d9f9b1df9d47b173bc3 (patch) | |
tree | 906e88680ee83f7fa3573ecc3a764135e64b0d7c /lib/tsan | |
parent | 53f1eb4f7c2c066de917da1bf563140ccd6cc9c0 (diff) |
[tsan] Expose __tsan_ignore_thread_begin and __tsan_ignore_thread_end in TSan interface
This patch is needed to implement the function attribute that disable TSan checking at run time.
Differential Revision: https://reviews.llvm.org/D25859
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@286658 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan')
-rw-r--r-- | lib/tsan/rtl/tsan_interface.h | 3 | ||||
-rw-r--r-- | lib/tsan/rtl/tsan_interface_inl.h | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/tsan/rtl/tsan_interface.h b/lib/tsan/rtl/tsan_interface.h index 9e234e958..17171a2a9 100644 --- a/lib/tsan/rtl/tsan_interface.h +++ b/lib/tsan/rtl/tsan_interface.h @@ -73,6 +73,9 @@ void __tsan_vptr_update(void **vptr_p, void *new_val); SANITIZER_INTERFACE_ATTRIBUTE void __tsan_func_entry(void *call_pc); SANITIZER_INTERFACE_ATTRIBUTE void __tsan_func_exit(); +SANITIZER_INTERFACE_ATTRIBUTE void __tsan_ignore_thread_begin(); +SANITIZER_INTERFACE_ATTRIBUTE void __tsan_ignore_thread_end(); + SANITIZER_INTERFACE_ATTRIBUTE void __tsan_read_range(void *addr, unsigned long size); // NOLINT SANITIZER_INTERFACE_ATTRIBUTE diff --git a/lib/tsan/rtl/tsan_interface_inl.h b/lib/tsan/rtl/tsan_interface_inl.h index 8852aa348..fff83ee17 100644 --- a/lib/tsan/rtl/tsan_interface_inl.h +++ b/lib/tsan/rtl/tsan_interface_inl.h @@ -108,6 +108,14 @@ void __tsan_func_exit() { FuncExit(cur_thread()); } +void __tsan_ignore_thread_begin() { + ThreadIgnoreBegin(cur_thread(), CALLERPC); +} + +void __tsan_ignore_thread_end() { + ThreadIgnoreEnd(cur_thread(), CALLERPC); +} + void __tsan_read_range(void *addr, uptr size) { MemoryAccessRange(cur_thread(), CALLERPC, (uptr)addr, size, false); } |