llvm-project/compiler-rt/test/tsan/Darwin
Kuba Mracek a7cad4fcb7 [tsan] Detect races on modifying accesses in Swift code
This patch allows the Swift compiler to emit calls to `__tsan_external_write` before starting any modifying access, which will cause TSan to detect races on arrays, dictionaries and other classes defined in non-instrumented modules. Races on collections from the Swift standard library and user-defined structs and a frequent cause of subtle bugs and it's important that TSan detects those on top of existing LLVM IR instrumentation, which already detects races in direct memory accesses.

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

llvm-svn: 302050
2017-05-03 16:51:01 +00:00
..
deadlock.mm [tsan] Don't report bugs from interceptors called from libignored modules 2017-04-21 16:44:27 +00:00
debug_external.cc [tsan] Include __tsan_external_* API from a header file instead of declaring them manually. NFC. 2017-04-24 16:48:30 +00:00
dispatch_main.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
dispatch_once_deadlock.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
dlopen.cc [sanitizer] On OS X, verify that interceptors work and abort if not, take 2 2016-03-17 08:37:25 +00:00
external-dups.cc [tsan] Detect races on modifying accesses in Swift code 2017-05-03 16:51:01 +00:00
external-ignore-noninstrumented.cc [tsan] Ignore memory accesses for libignored modules for "external" races 2017-04-21 17:18:14 +00:00
external-lib.cc [tsan] Ignore memory accesses for libignored modules for "external" races 2017-04-21 17:18:14 +00:00
external-noninstrumented-module.cc [tsan] Ignore memory accesses for libignored modules for "external" races 2017-04-21 17:18:14 +00:00
external-swift.cc [tsan] Detect races on modifying accesses in Swift code 2017-05-03 16:51:01 +00:00
external.cc [tsan] Detect races on modifying accesses in Swift code 2017-05-03 16:51:01 +00:00
gcd-after-null.mm [tsan] Only Acquire/Release GCD queues if they're not NULL 2017-03-26 20:59:23 +00:00
gcd-after.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-apply-race.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-apply.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-async-norace.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-async-race.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-barrier-race.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-barrier.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-blocks.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-data.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-fd.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-groups-destructor.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-groups-leave.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-groups-norace.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-groups-stress.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-io-barrier-race.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-io-barrier.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-io-cleanup.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-io-race.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-io.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-once.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-semaphore-norace.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-serial-queue-norace.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-source-cancel.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-source-cancel2.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-source-event.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-source-event2.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-source-registration.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-source-registration2.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-source-serial.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-suspend.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-sync-norace.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-sync-race.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
gcd-target-queue-norace.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
ignore-noninstrumented.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
ignored-interceptors.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
libcxx-call-once.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
libcxx-future.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
libcxx-shared-ptr-recursive.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
libcxx-shared-ptr-stress.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
libcxx-shared-ptr.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
lit.local.cfg [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
main_tid.mm [sanitizer] Introduce tid_t as a typedef for OS-provided thread IDs 2017-04-17 18:17:38 +00:00
malloc-stack-logging.cc Follow-up for r264261, adding a comment explaining what the testcase does. 2016-03-24 13:20:38 +00:00
malloc_size.mm [tsan] Change some OS X tests to include system headers (xpc.h, mman.h) more explicitly. 2016-05-25 16:04:24 +00:00
norace-objcxx-run-time.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
objc-double-property.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
objc-race.mm [tsan] Fix Darwin tests (missing FileCheck's) 2016-04-07 11:31:02 +00:00
objc-simple.mm [tsan] Enable ignore_noninstrumented_modules=1 on Darwin by default 2017-01-24 21:37:50 +00:00
osatomics-add.mm test: Use %clangxx in objc++ test files 2016-07-09 21:14:36 +00:00
osatomics-bitops.mm [tsan] Fix the behavior of OSAtomicTestAndClear 2016-08-02 14:30:52 +00:00
osatomics-list.mm test: Use %clangxx in objc++ test files 2016-07-09 21:14:36 +00:00
osspinlock-norace.cc [tsan] Add interceptors for Darwin-specific locking APIs 2015-12-03 15:10:52 +00:00
realloc-zero.cc [tsan] Change nullptr to NULL in realloc-zero.cc test. Some environments don't have nullptr. 2016-11-07 22:26:13 +00:00
symbolizer-atos.cc [compiler-rt] Remove SANITIZER_AARCH64_VMA usage 2015-11-30 19:43:03 +00:00
symbolizer-dladdr.cc [compiler-rt] Remove SANITIZER_AARCH64_VMA usage 2015-11-30 19:43:03 +00:00
workerthreads.mm [tsan] Properly describe GCD worker threads in reports 2017-02-02 12:54:21 +00:00
xpc-cancel.mm XFAIL the TSan XPC tests on iOS. XPC isn't available on iOS. 2017-04-26 20:29:30 +00:00
xpc-race.mm TSan: update line number after XFAIL on iOS. 2017-04-27 16:21:50 +00:00
xpc.mm XFAIL the TSan XPC tests on iOS. XPC isn't available on iOS. 2017-04-26 20:29:30 +00:00