diff options
author | Dmitry Vyukov <dvyukov@google.com> | 2013-05-29 11:23:54 +0000 |
---|---|---|
committer | Dmitry Vyukov <dvyukov@google.com> | 2013-05-29 11:23:54 +0000 |
commit | 24cdfee9776abddcd6c96240e398706667029e0d (patch) | |
tree | 881ba2d51b47401a8c97cdb831ff27526d8a822b /lib/tsan/rtl/tsan_suppressions.cc | |
parent | 5aac3a6caad7bd3c82050db13a37eb1a3808b5ac (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.cc | 8 |
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 && |