diff options
author | Alexey Samsonov <samsonov@google.com> | 2013-02-06 16:28:05 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2013-02-06 16:28:05 +0000 |
commit | 5ba301dfe9a39c02b3faeb0fa252473f1d6e742c (patch) | |
tree | bad8c68924a18e964e33fa093ed5348637c94b91 /lib/tsan/rtl/tsan_rtl_report.cc | |
parent | 427a89947a52bbaaa6adfaae7aa8e44ec588f43d (diff) | |
download | compiler-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.cc | 19 |
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; |