tsan: enabled report suppression for signal-unsafe reports
authorDmitry Vyukov <dvyukov@google.com>
Mon, 14 May 2012 15:28:03 +0000 (15:28 +0000)
committerDmitry Vyukov <dvyukov@google.com>
Mon, 14 May 2012 15:28:03 +0000 (15:28 +0000)
llvm-svn: 156765

compiler-rt/lib/tsan/rtl/tsan_mman.cc
compiler-rt/lib/tsan/rtl/tsan_rtl.h
compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc

index e24074e..124d5ca 100644 (file)
@@ -25,7 +25,7 @@ static void SignalUnsafeCall(ThreadState *thr, uptr pc) {
   stack.ObtainCurrent(thr, pc);
   ScopedReport rep(ReportTypeSignalUnsafe);
   rep.AddStack(&stack);
-  OutputReport(rep);
+  OutputReport(rep, rep.GetReport()->stacks[0]);
 }
 
 void *user_alloc(ThreadState *thr, uptr pc, uptr sz) {
index a5bdd52..765ad00 100644 (file)
@@ -371,7 +371,8 @@ void InitializeDynamicAnnotations();
 void Die() NORETURN;
 
 void ReportRace(ThreadState *thr);
-bool OutputReport(const ScopedReport &srep, ReportStack *suppress_stack = 0);
+bool OutputReport(const ScopedReport &srep,
+                  const ReportStack *suppress_stack = 0);
 bool IsExpectedReport(uptr addr, uptr size);
 
 #if defined(TSAN_DEBUG_OUTPUT) && TSAN_DEBUG_OUTPUT >= 1
index a5c5417..534e305 100644 (file)
@@ -273,7 +273,7 @@ static void AddRacyStacks(ThreadState *thr, const StackTrace (&traces)[2],
   }
 }
 
-bool OutputReport(const ScopedReport &srep, ReportStack *suppress_stack) {
+bool OutputReport(const ScopedReport &srep, const ReportStack *suppress_stack) {
   const ReportDesc *rep = srep.GetReport();
   bool suppressed = IsSuppressed(rep->typ, suppress_stack);
   suppressed = OnReport(rep, suppressed);