summaryrefslogtreecommitdiff
path: root/lib/tsan/rtl/tsan_rtl_report.cc
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-02-06 16:28:05 +0000
committerAlexey Samsonov <samsonov@google.com>2013-02-06 16:28:05 +0000
commit5ba301dfe9a39c02b3faeb0fa252473f1d6e742c (patch)
treebad8c68924a18e964e33fa093ed5348637c94b91 /lib/tsan/rtl/tsan_rtl_report.cc
parent427a89947a52bbaaa6adfaae7aa8e44ec588f43d (diff)
downloadcompiler-rt-5ba301dfe9a39c02b3faeb0fa252473f1d6e742c.tar.gz
compiler-rt-5ba301dfe9a39c02b3faeb0fa252473f1d6e742c.tar.bz2
compiler-rt-5ba301dfe9a39c02b3faeb0fa252473f1d6e742c.tar.xz
[TSan] skip multiple internal frames, if necessary
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@174516 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan/rtl/tsan_rtl_report.cc')
-rw-r--r--lib/tsan/rtl/tsan_rtl_report.cc19
1 files changed, 8 insertions, 11 deletions
diff --git a/lib/tsan/rtl/tsan_rtl_report.cc b/lib/tsan/rtl/tsan_rtl_report.cc
index 809aac29..d9099429 100644
--- a/lib/tsan/rtl/tsan_rtl_report.cc
+++ b/lib/tsan/rtl/tsan_rtl_report.cc
@@ -520,17 +520,14 @@ static bool IsJavaNonsense(const ReportDesc *rep) {
&& frame->module == 0)) {
return true;
}
- if (FrameIsInternal(frame)) {
- frame = frame->next;
- if (frame == 0
- || (frame->func == 0 && frame->file == 0 && frame->line == 0
- && frame->module == 0)) {
- if (frame) {
- FiredSuppression supp = {rep->typ, frame->pc};
- CTX()->fired_suppressions.PushBack(supp);
- }
- return true;
- }
+ frame = SkipTsanInternalFrames(frame);
+ if (frame->next == 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;
}
}
return false;