summaryrefslogtreecommitdiff
path: root/lib/tsan/rtl/tsan_suppressions.cc
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2013-05-29 11:23:54 +0000
committerDmitry Vyukov <dvyukov@google.com>2013-05-29 11:23:54 +0000
commit24cdfee9776abddcd6c96240e398706667029e0d (patch)
tree881ba2d51b47401a8c97cdb831ff27526d8a822b /lib/tsan/rtl/tsan_suppressions.cc
parent5aac3a6caad7bd3c82050db13a37eb1a3808b5ac (diff)
tsan: match "race" suppressions against "race on vptr" reports
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@182842 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan/rtl/tsan_suppressions.cc')
-rw-r--r--lib/tsan/rtl/tsan_suppressions.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/tsan/rtl/tsan_suppressions.cc b/lib/tsan/rtl/tsan_suppressions.cc
index 6c49355be..977c008b8 100644
--- a/lib/tsan/rtl/tsan_suppressions.cc
+++ b/lib/tsan/rtl/tsan_suppressions.cc
@@ -152,14 +152,20 @@ uptr IsSuppressed(ReportType typ, const ReportStack *stack, Suppression **sp) {
SuppressionType stype;
if (typ == ReportTypeRace)
stype = SuppressionRace;
+ else if (typ == ReportTypeVptrRace)
+ stype = SuppressionRace;
+ else if (typ == ReportTypeUseAfterFree)
+ return 0;
else if (typ == ReportTypeThreadLeak)
stype = SuppressionThread;
else if (typ == ReportTypeMutexDestroyLocked)
stype = SuppressionMutex;
else if (typ == ReportTypeSignalUnsafe)
stype = SuppressionSignal;
- else
+ else if (typ == ReportTypeErrnoInSignal)
return 0;
+ else
+ Printf("ThreadSanitizer: unknown report type %d\n", typ), Die();
for (const ReportStack *frame = stack; frame; frame = frame->next) {
for (Suppression *supp = g_suppressions; supp; supp = supp->next) {
if (stype == supp->type &&