summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp')
-rw-r--r--contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp b/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
index de89750..21aa7ff 100644
--- a/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
+++ b/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
@@ -19,7 +19,7 @@ using namespace coverage;
FunctionCoverageSummary
FunctionCoverageSummary::get(const coverage::FunctionRecord &Function) {
- // Compute the region coverage
+ // Compute the region coverage.
size_t NumCodeRegions = 0, CoveredRegions = 0;
for (auto &CR : Function.CountedRegions) {
if (CR.Kind != CounterMappingRegion::CodeRegion)
@@ -67,5 +67,17 @@ FunctionCoverageSummary::get(const coverage::FunctionRecord &Function) {
return FunctionCoverageSummary(
Function.Name, Function.ExecutionCount,
RegionCoverageInfo(CoveredRegions, NumCodeRegions),
- LineCoverageInfo(CoveredLines, 0, NumLines));
+ LineCoverageInfo(CoveredLines, NumLines));
+}
+
+void FunctionCoverageSummary::update(const FunctionCoverageSummary &Summary) {
+ ExecutionCount += Summary.ExecutionCount;
+ RegionCoverage.Covered =
+ std::max(RegionCoverage.Covered, Summary.RegionCoverage.Covered);
+ RegionCoverage.NotCovered =
+ std::min(RegionCoverage.NotCovered, Summary.RegionCoverage.NotCovered);
+ LineCoverage.Covered =
+ std::max(LineCoverage.Covered, Summary.LineCoverage.Covered);
+ LineCoverage.NotCovered =
+ std::min(LineCoverage.NotCovered, Summary.LineCoverage.NotCovered);
}
OpenPOWER on IntegriCloud