diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2013-09-03 11:43:04 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2013-09-03 11:43:04 +0000 |
commit | ed93fbf93ec5ef622cbb11ff573e71d3c5fdcdc4 (patch) | |
tree | 5ce912d37fda64018d2c7a5aecdb6be01c277b56 /compiler-rt | |
parent | 94377c337bdbaf0785ffeef2e802bcec758fb305 (diff) | |
download | bcm5719-llvm-ed93fbf93ec5ef622cbb11ff573e71d3c5fdcdc4.tar.gz bcm5719-llvm-ed93fbf93ec5ef622cbb11ff573e71d3c5fdcdc4.zip |
tsan: add suppressions for true/false positives in standard libraries
llvm-svn: 189791
Diffstat (limited to 'compiler-rt')
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_suppressions.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc b/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc index 69e616c135e..4606c2656cc 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_suppressions.cc @@ -21,6 +21,19 @@ #include "tsan_mman.h" #include "tsan_platform.h" +// Suppressions for true/false positives in standard libraries. +static const char *const std_suppressions = +// Libstdc++ 4.4 has data races in std::string. +// See http://crbug.com/181502 for an example. +"race:^_M_rep$\n" +"race:^_M_is_leaked$\n" + +// False positive when using std <thread>. +// Happens because we miss atomic synchronization in libstdc++. +// See http://llvm.org/bugs/show_bug.cgi?id=17066 for details. +"race:std::_Sp_counted_ptr_inplace<std::thread::_Impl\n" +; + // Can be overriden in frontend. #ifndef TSAN_GO extern "C" const char *WEAK __tsan_default_suppressions() { @@ -72,6 +85,7 @@ void InitializeSuppressions() { #ifndef TSAN_GO supp = __tsan_default_suppressions(); g_ctx->Parse(supp); + g_ctx->Parse(std_suppressions); #endif } |