mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-04 17:56:53 +00:00
[llvm-cov] Simplify code to find the first uncovered segment. NFC.
Now that that segment builder is guaranteed to produce segments in sorted order, we don't need a linear scan to get the right result. llvm-svn: 313595
This commit is contained in:
parent
8a95021a63
commit
901e6b85af
@ -125,22 +125,16 @@ LineCoverageStats::LineCoverageStats(
|
||||
}
|
||||
|
||||
unsigned SourceCoverageView::getFirstUncoveredLineNo() {
|
||||
auto CheckIfUncovered = [](const coverage::CoverageSegment &S) {
|
||||
return S.HasCount && S.Count == 0;
|
||||
};
|
||||
// L is less than R if (1) it's an uncovered segment (has a 0 count), and (2)
|
||||
// either R is not an uncovered segment, or L has a lower line number than R.
|
||||
const auto MinSegIt =
|
||||
std::min_element(CoverageInfo.begin(), CoverageInfo.end(),
|
||||
[CheckIfUncovered](const coverage::CoverageSegment &L,
|
||||
const coverage::CoverageSegment &R) {
|
||||
return (CheckIfUncovered(L) &&
|
||||
(!CheckIfUncovered(R) || (L.Line < R.Line)));
|
||||
});
|
||||
if (CheckIfUncovered(*MinSegIt))
|
||||
return (*MinSegIt).Line;
|
||||
find_if(CoverageInfo, [](const coverage::CoverageSegment &S) {
|
||||
return S.HasCount && S.Count == 0;
|
||||
});
|
||||
|
||||
// There is no uncovered line, return zero.
|
||||
return 0;
|
||||
if (MinSegIt == CoverageInfo.end())
|
||||
return 0;
|
||||
|
||||
return (*MinSegIt).Line;
|
||||
}
|
||||
|
||||
std::string SourceCoverageView::formatCount(uint64_t N) {
|
||||
|
Loading…
Reference in New Issue
Block a user