summaryrefslogtreecommitdiff
path: root/lib/tsan/rtl/tsan_suppressions.h
AgeCommit message (Collapse)Author
2015-06-29tsan: implement suppressions for top frame onlyDmitry Vyukov
The new suppression type is called "race_top" and is matched only against top frame in report stacks. This is required for situations when we want to suppress a race in a "thread pool" or "event loop" implementation. If we simply use "race:ThreadPool::Execute" suppression, that can suppress everything in the program. Reviewed in http://reviews.llvm.org/D10686 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@240949 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-20[Sanitizer] Refactor SuppressionContext class.Alexey Samsonov
SuppressionContext is no longer a singleton, shared by all sanitizers, but a regular class. Each of ASan, LSan, UBSan and TSan now have their own SuppressionContext, which only parses suppressions specific to that sanitizer. "suppressions" flag is moved away from common flags into tool-specific flags, so the user now may pass ASAN_OPTIONS=suppressions=asan_supp.txt LSAN_OPIONS=suppressions=lsan_supp.txt in a single invocation. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@230026 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-30[Sanitizer] Make SuppressionContext a singleton class, residing in ↵Alexey Samsonov
sanitizer_common. Convert TSan and LSan to the new interface. More changes will follow: 1) "suppressions" should become a common runtime flag. 2) Code for parsing suppressions file should be moved to SuppressionContext::Init(). git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@214334 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-03tsan: ignore interceptors coming from specified librariesDmitry Vyukov
LibIgnore allows to ignore all interceptors called from a particular set of dynamic libraries. LibIgnore remembers all "called_from_lib" suppressions from the provided SuppressionContext; finds code ranges for the libraries; and checks whether the provided PC value belongs to the code ranges. Also make malloc and friends interceptors use SCOPED_INTERCEPTOR_RAW instead of SCOPED_TSAN_INTERCEPTOR, because if they are called from an ignored lib, then must call our internal allocator instead of libc malloc. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@191897 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-26[tsan] Move some suppressions-related code to common.Sergey Matveev
Factor out code to be reused in LSan. Also switch from linked list to vector. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@184957 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-10tsan: allows to suppress races on global variablesDmitry Vyukov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@183672 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-27tsan: print matched suppressions if print_suppressions=1 flag is providedDmitry Vyukov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@178159 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-24tsan: allow a front-end to provide default suppressionsDmitry Vyukov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@173345 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-05tsan: cache pc's that cause suppressions (this way we do not need to ↵Dmitry Vyukov
symbolize the reports) git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165317 91177308-0d34-0410-b5e6-96231b3b80d8
2012-09-13[TSan] fix a bunch of warnings reported by pedantic gccAlexey Samsonov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@163788 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-31tsan: suppress reports against source file names as wellDmitry Vyukov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@157739 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-17tsan: remove shutdown codeDmitry Vyukov
tsan runtime shutdown is problematic for 2 reasons: 1. others crash during shutdown 2. we have to override user exit status (don't know it and can't return from atexit handler) git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@156991 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-10[tsan] First commit of ThreadSanitizer (TSan) run-time library.Kostya Serebryany
Algorithm description: http://code.google.com/p/thread-sanitizer/wiki/ThreadSanitizerAlgorithm Status: The tool is known to work on large real-life applications, but still has quite a few rough edges. Nothing is guaranteed yet. The tool works on x86_64 Linux. Support for 64-bit MacOS 10.7+ is planned for late 2012. Support for 32-bit OSes is doable, but problematic and not yet planed. Further commits coming: - tests - makefiles - documentation - clang driver patch The code was previously developed at http://code.google.com/p/data-race-test/source/browse/trunk/v2/ by Dmitry Vyukov and Kostya Serebryany with contributions from Timur Iskhodzhanov, Alexander Potapenko, Alexey Samsonov and Evgeniy Stepanov. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@156542 91177308-0d34-0410-b5e6-96231b3b80d8