tsan: fix suppress_java logic
authorDmitry Vyukov <dvyukov@google.com>
Thu, 7 Feb 2013 17:12:28 +0000 (17:12 +0000)
committerDmitry Vyukov <dvyukov@google.com>
Thu, 7 Feb 2013 17:12:28 +0000 (17:12 +0000)
llvm-svn: 174635

compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc

index d79f46b..de9a0e9 100644 (file)
@@ -521,14 +521,17 @@ static bool IsJavaNonsense(const ReportDesc *rep) {
           && frame->module == 0)) {
       return true;
     }
-    frame = SkipTsanInternalFrames(frame);
-    if (frame->next == 0
-        || (frame->func == 0 && frame->file == 0 && frame->line == 0
+    if (FrameIsInternal(frame)) {
+      frame = frame->next;
+      if (frame == 0
+          || (frame->func == 0 && frame->file == 0 && frame->line == 0
           && frame->module == 0)) {
-      CHECK(frame);
-      FiredSuppression supp = {rep->typ, frame->pc};
-      CTX()->fired_suppressions.PushBack(supp);
-      return true;
+        if (frame) {
+          FiredSuppression supp = {rep->typ, frame->pc};
+          CTX()->fired_suppressions.PushBack(supp);
+        }
+        return true;
+      }
     }
   }
 #endif