llvm-project/llvm/test/Instrumentation
Anna Zaks 3c43737832 [tsan][llvm] Implement the function attribute to disable TSan checking at run time
This implements a function annotation that disables TSan checking for the
function at run time. The benefit over attribute((no_sanitize("thread")))
is that the accesses within the callees will also be suppressed.

The motivation for this attribute is a guarantee given by the objective C
language that the calls to the reference count decrement and object
deallocation will be synchronized. To model this properly, we would need
to intercept all ref count decrement calls (which are very common in ObjC
due to use of ARC) and also every single message send. Instead, we propose
to just ignore all accesses made from within dealloc at run time. The main
downside is that this still does not introduce any synchronization, which
means we might still report false positives if the code that relies on this
synchronization is not executed from within dealloc. However, we have not seen
this in practice so far and think these cases will be very rare.

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

llvm-svn: 286663
2016-11-11 23:01:02 +00:00
..
AddressSanitizer [asan] Speed up compilation of large C++ stringmaps (tons of allocas) with ASan 2016-11-08 21:30:41 +00:00
BoundsChecking Add a bunch of CHECK missing colons in tests. NFC. 2015-03-14 01:43:57 +00:00
DataFlowSanitizer [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
EfficiencySanitizer [EfficiencySanitizer] Using '$' instead of '#' for struct counter name 2016-09-22 08:33:06 +00:00
InstrProfiling [InstrProf] Add support for dead_strip+live_support functionality 2016-10-11 21:48:16 +00:00
MemorySanitizer [msan] Fix __msan_maybe_ for non-standard type sizes. 2016-07-01 22:49:59 +00:00
SanitizerCoverage [sanitizer-coverage] use private linkage for coverage guards, delete old commented-out code. 2016-10-11 19:36:50 +00:00
ThreadSanitizer [tsan][llvm] Implement the function attribute to disable TSan checking at run time 2016-11-11 23:01:02 +00:00