diff options
Diffstat (limited to 'contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp')
-rw-r--r-- | contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp | 16 |
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); } |