diff options
Diffstat (limited to 'llvm/tools')
-rw-r--r-- | llvm/tools/llvm-cov/SourceCoverageView.cpp | 17 | ||||
-rw-r--r-- | llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/llvm-cov/SourceCoverageViewText.cpp | 2 |
3 files changed, 12 insertions, 9 deletions
diff --git a/llvm/tools/llvm-cov/SourceCoverageView.cpp b/llvm/tools/llvm-cov/SourceCoverageView.cpp index 79c2c69..1965595 100644 --- a/llvm/tools/llvm-cov/SourceCoverageView.cpp +++ b/llvm/tools/llvm-cov/SourceCoverageView.cpp @@ -89,7 +89,7 @@ LineCoverageStats::LineCoverageStats( // Find the minimum number of regions which start in this line. unsigned MinRegionCount = 0; auto isStartOfRegion = [](const coverage::CoverageSegment *S) { - return S->HasCount && S->IsRegionEntry; + return !S->IsGapRegion && S->HasCount && S->IsRegionEntry; }; for (unsigned I = 0; I < LineSegments.size() && MinRegionCount < 2; ++I) if (isStartOfRegion(LineSegments[I])) @@ -112,16 +112,19 @@ LineCoverageStats::LineCoverageStats( // avoid erroneously using the wrapped count, and to avoid picking region // counts which come from deferred regions. if (LineSegments.size() > 1) { - for (unsigned I = 0; I < LineSegments.size() - 1; ++I) - ExecutionCount = std::max(ExecutionCount, LineSegments[I]->Count); + for (unsigned I = 0; I < LineSegments.size() - 1; ++I) { + if (!LineSegments[I]->IsGapRegion) + ExecutionCount = std::max(ExecutionCount, LineSegments[I]->Count); + } return; } - // Just pick the maximum count. - if (WrappedSegment && WrappedSegment->HasCount) + // If a non-gap region starts here, use its count. Otherwise use the wrapped + // count. + if (MinRegionCount == 1) + ExecutionCount = LineSegments[0]->Count; + else ExecutionCount = WrappedSegment->Count; - if (!LineSegments.empty()) - ExecutionCount = std::max(ExecutionCount, LineSegments[0]->Count); } unsigned SourceCoverageView::getFirstUncoveredLineNo() { diff --git a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp index 1a21b72..300a016 100644 --- a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp +++ b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp @@ -527,7 +527,7 @@ void SourceCoverageViewHTML::renderLine( const auto *CurSeg = Segments[I]; if (CurSeg->Col == ExpansionCol) Color = "cyan"; - else if (CheckIfUncovered(CurSeg)) + else if (!CurSeg->IsGapRegion && CheckIfUncovered(CurSeg)) Color = "red"; else Color = None; diff --git a/llvm/tools/llvm-cov/SourceCoverageViewText.cpp b/llvm/tools/llvm-cov/SourceCoverageViewText.cpp index a88558f..a78c057 100644 --- a/llvm/tools/llvm-cov/SourceCoverageViewText.cpp +++ b/llvm/tools/llvm-cov/SourceCoverageViewText.cpp @@ -120,7 +120,7 @@ void SourceCoverageViewText::renderLine( Col = End; if (Col == ExpansionCol) Highlight = raw_ostream::CYAN; - else if (S->HasCount && S->Count == 0) + else if (!S->IsGapRegion && S->HasCount && S->Count == 0) Highlight = raw_ostream::RED; else Highlight = None; |