llvm-project/compiler-rt/lib/tsan/rtl
Kuba Brecka 419ebb2891 [tsan] Support C++11 call_once in TSan on Darwin
This patch adds a wrapper for call_once, which uses an already-compiled helper __call_once with an atomic release which is invisible to TSan. To avoid false positives, the interceptor performs an explicit atomic release in the callback wrapper.

Differential Revision: https://reviews.llvm.org/D24188

llvm-svn: 280920
2016-09-08 10:15:20 +00:00
..
tsan.syms.extra Export __ubsan_* symbols from MSan and TSan runtimes. 2015-04-28 01:20:34 +00:00
tsan_clock.cc [tsan] Handle libdispatch worker threads on OS X 2015-11-04 15:09:14 +00:00
tsan_clock.h Revert "Apply modernize-use-default to compiler-rt." 2015-10-30 18:52:31 +00:00
tsan_debugging.cc tsan: fix compiler warning 2016-04-27 08:28:08 +00:00
tsan_defs.h tsan: split thread into logical and physical state 2016-04-27 08:23:02 +00:00
tsan_dense_alloc.h [TSan] Try harder to avoid compiler-generated memset calls. 2015-12-09 18:48:10 +00:00
tsan_fd.cc tsan: fix handling of dup2 2015-06-25 20:32:04 +00:00
tsan_fd.h tsan: fix handling of dup2 2015-06-25 20:32:04 +00:00
tsan_flags.cc tsan: clean up dynamic TLS memory between reuse 2016-06-02 19:18:22 +00:00
tsan_flags.h [Sanitizer] Change the runtime flag representation. 2015-01-07 00:38:00 +00:00
tsan_flags.inc [tsan] Intercept libcxx __release_shared to avoid false positive with weak_ptrs and destructors in C++ 2016-06-26 08:14:01 +00:00
tsan_ignoreset.cc
tsan_ignoreset.h
tsan_interceptors.cc [TSan][MIPS] Implements setjmp assembly for MIPS64 2016-08-16 05:06:56 +00:00
tsan_interceptors.h [tsan] Switch to InternalAlloc everywhere __libc_malloc is currently used 2016-06-06 18:18:47 +00:00
tsan_interceptors_mac.cc [tsan] Support C++11 call_once in TSan on Darwin 2016-09-08 10:15:20 +00:00
tsan_interface.cc tsan: add memory access functions that accept pc 2015-05-05 08:09:46 +00:00
tsan_interface.h [tsan] Rename ReportThread->pid to ReportThread->os_id 2016-04-21 14:49:25 +00:00
tsan_interface_ann.cc tsan: speed up race deduplication 2015-09-03 11:20:46 +00:00
tsan_interface_ann.h
tsan_interface_atomic.cc [tsan] Add TSan __tsan_atomic* functions to tsan_interface.h 2016-04-07 11:59:36 +00:00
tsan_interface_inl.h Revert r255996 ("[tsan] Add a DCHECK to verify __tsan_read* and __tsan_write function aren't called from ScopedInterceptor"). 2015-12-18 13:52:08 +00:00
tsan_interface_java.cc tsan: change tsan/Go interface for obtaining the current Processor 2016-04-27 12:30:48 +00:00
tsan_interface_java.h tsan: add acquire/release functions to java interface 2014-12-22 09:44:56 +00:00
tsan_libdispatch_mac.cc [tsan] Add support for GCD IO channels on Darwin 2016-07-11 15:57:50 +00:00
tsan_malloc_mac.cc [tsan] Switch to InternalAlloc everywhere __libc_malloc is currently used 2016-06-06 18:18:47 +00:00
tsan_md5.cc Fix -Wcast-qual warnings in sanitizers 2014-11-13 22:40:59 +00:00
tsan_mman.cc [asan] first attempt at releasing free-d memory back to the system using madvise. Requires quite some tuning. 2016-08-26 23:58:42 +00:00
tsan_mman.h tsan: fix a crash 2016-05-06 19:35:22 +00:00
tsan_mutex.cc tsan: fix a crash 2016-05-06 19:35:22 +00:00
tsan_mutex.h tsan: fix a crash 2016-05-06 19:35:22 +00:00
tsan_mutexset.cc
tsan_mutexset.h [tsan] remove TSAN_GO in favor of SANITIZER_GO 2014-12-09 01:31:14 +00:00
tsan_new_delete.cc [tsan] Switch to InternalAlloc everywhere __libc_malloc is currently used 2016-06-06 18:18:47 +00:00
tsan_platform.h [TSan][MIPS] Changes mips memory layout to support pie with address space randomization. 2016-08-23 08:15:25 +00:00
tsan_platform_linux.cc [asan] first attempt at releasing free-d memory back to the system using madvise. Requires quite some tuning. 2016-08-26 23:58:42 +00:00
tsan_platform_mac.cc [tsan] On OS X, optimize main thread’s ThreadState accesses 2016-06-06 16:27:38 +00:00
tsan_platform_posix.cc [sanitizer] rename MmapNoAccess to MmapFixedNoAccess; NFC 2016-04-22 23:46:53 +00:00
tsan_platform_windows.cc [compiler-rt] [tsan] Unify aarch64 mapping 2015-11-26 13:10:47 +00:00
tsan_ppc_regs.h [PPC64, TSAN] Provide setjmp interceptor support for PPC64 2015-12-08 22:14:34 +00:00
tsan_preinit.cc Init tsan with .preinit_array section 2016-05-26 17:05:36 +00:00
tsan_report.cc [tsan] Rename ReportThread->pid to ReportThread->os_id 2016-04-21 14:49:25 +00:00
tsan_report.h [tsan] Rename ReportThread->pid to ReportThread->os_id 2016-04-21 14:49:25 +00:00
tsan_rtl.cc [asan] first attempt at releasing free-d memory back to the system using madvise. Requires quite some tuning. 2016-08-26 23:58:42 +00:00
tsan_rtl.h [sanitizer] enable random shuffling the memory chunks inside the allocator, under a flag. Set this flag for the scudo allocator, add a test. 2016-08-26 00:06:03 +00:00
tsan_rtl_aarch64.S tsan: Remove __pointer_chk_guard@GLIBC_PRIVATE requirement for AArch64 2016-08-10 21:39:28 +00:00
tsan_rtl_amd64.S [tsan] Fix signals and setjmp/longjmp on OS X 2015-11-30 14:11:02 +00:00
tsan_rtl_mips64.S [TSan][MIPS] Implements setjmp assembly for MIPS64 2016-08-16 05:06:56 +00:00
tsan_rtl_mutex.cc tsan: don't create sync objects on acquire 2016-06-27 11:14:59 +00:00
tsan_rtl_ppc64.S Avoid extended mnemonic 'mfvrsave' in assembly code 2015-12-09 15:18:30 +00:00
tsan_rtl_proc.cc tsan: change tsan/Go interface for obtaining the current Processor 2016-04-27 12:30:48 +00:00
tsan_rtl_report.cc tsan: don't create sync objects on acquire 2016-06-27 11:14:59 +00:00
tsan_rtl_thread.cc [asan] first attempt at releasing free-d memory back to the system using madvise. Requires quite some tuning. 2016-08-26 23:58:42 +00:00
tsan_stack_trace.cc [TSan] Use StackTrace from sanitizer_common where applicable 2014-11-03 22:23:44 +00:00
tsan_stack_trace.h [TSan] Use StackTrace from sanitizer_common where applicable 2014-11-03 22:23:44 +00:00
tsan_stat.cc tsan: fix a crash 2016-05-06 19:35:22 +00:00
tsan_stat.h tsan: fix a crash 2016-05-06 19:35:22 +00:00
tsan_suppressions.cc [tsan] Detect uses of uninitialized, destroyed and invalid mutexes 2016-03-16 15:39:20 +00:00
tsan_suppressions.h tsan: implement suppressions for top frame only 2015-06-29 14:38:31 +00:00
tsan_symbolize.cc [TSan] Try harder to avoid compiler-generated memcpy calls. 2015-12-10 19:24:27 +00:00
tsan_symbolize.h tsan: don't print external PCs in reports 2015-06-24 13:04:12 +00:00
tsan_sync.cc tsan: don't create sync objects on acquire 2016-06-27 11:14:59 +00:00
tsan_sync.h tsan: Enable 48-bit VMA support on aarch64 2016-07-29 12:45:35 +00:00
tsan_trace.h tsan: fix build 2015-02-14 16:14:10 +00:00
tsan_update_shadow_word_inl.h tsan: fix a bug memory access handling 2015-04-28 18:08:42 +00:00
tsan_vector.h tsan: refactor storage of meta information for heap blocks and sync objects 2014-05-29 13:50:54 +00:00