diff options
-rw-r--r-- | llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp index ef81ceaee17..37ba5184ccd 100644 --- a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp +++ b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp @@ -337,9 +337,9 @@ void SourceCoverageViewHTML::renderLine( for (unsigned I = 0, E = Snippets.size(); I < E; ++I) Snippets[I] = escape(Snippets[I]); - // 3. Use \p WrappedSegment to set the highlight for snippets 0 and 1. Use - // segment 1 to set the highlight for snippet 2, segment 2 to set the - // highlight for snippet 3, and so on. + // 3. Use \p WrappedSegment to set the highlight for snippet 0. Use segment + // 1 to set the highlight for snippet 2, segment 2 to set the highlight for + // snippet 3, and so on. Optional<std::string> Color; auto Highlight = [&](const std::string &Snippet) { @@ -347,17 +347,16 @@ void SourceCoverageViewHTML::renderLine( }; auto CheckIfUncovered = [](const coverage::CoverageSegment *S) { - return S && S->HasCount && S->Count == 0; + return !S || (S->HasCount && S->Count == 0); }; if (CheckIfUncovered(WrappedSegment) || CheckIfUncovered(Segments.empty() ? nullptr : Segments.front())) { Color = "red"; Snippets[0] = Highlight(Snippets[0]); - Snippets[1] = Highlight(Snippets[1]); } - for (unsigned I = 1, E = Segments.size(); I < E; ++I) { + for (unsigned I = 0, E = Segments.size(); I < E; ++I) { const auto *CurSeg = Segments[I]; if (CurSeg->Col == ExpansionCol) Color = "cyan"; @@ -370,6 +369,9 @@ void SourceCoverageViewHTML::renderLine( Snippets[I + 1] = Highlight(Snippets[I + 1]); } + if (Color.hasValue() && Segments.empty()) + Snippets.back() = Highlight(Snippets.back()); + // 4. Snippets[1:N+1] correspond to \p Segments[0:N]: use these to generate // sub-line region count tooltips if needed. @@ -390,7 +392,7 @@ void SourceCoverageViewHTML::renderLine( Snippets[I + 1] = tag("div", Snippets[I + 1] + tag("span", formatCount(CurSeg->Count), - "tooltip-content"), + "tooltip-content"), "tooltip"); } } |