From 952eddef9aff85b1e92626e89baaf7a360e2ac85 Mon Sep 17 00:00:00 2001 From: dim Date: Sun, 22 Dec 2013 00:07:40 +0000 Subject: Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3): https://llvm.org/svn/llvm-project/cfe/branches/release_34@197841 --- docs/ThreadSanitizer.rst | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'docs/ThreadSanitizer.rst') diff --git a/docs/ThreadSanitizer.rst b/docs/ThreadSanitizer.rst index 5e5ee48..194ad4a 100644 --- a/docs/ThreadSanitizer.rst +++ b/docs/ThreadSanitizer.rst @@ -91,11 +91,21 @@ Some code should not be instrumented by ThreadSanitizer. One may use the function attribute :ref:`no_sanitize_thread ` to disable instrumentation of plain (non-atomic) loads/stores in a particular function. -ThreadSanitizer may still instrument such functions to avoid false positives. +ThreadSanitizer still instruments such functions to avoid false positives and +provide meaningful stack traces. This attribute may not be supported by other compilers, so we suggest to use it together with -``__has_feature(thread_sanitizer)``. Note: currently, this attribute will be -lost if the function is inlined. +``__has_feature(thread_sanitizer)``. + +Blacklist +--------- + +ThreadSanitizer supports ``src`` and ``fun`` entity types in +:doc:`SanitizerSpecialCaseList`, that can be used to suppress data race reports in +the specified source files or functions. Unlike functions marked with +:ref:`no_sanitize_thread ` attribute, +blacklisted functions are not instrumented at all. This can lead to false positives +due to missed synchronization via atomic operations and missed stack frames in reports. Limitations ----------- -- cgit v1.1