@@ -63,14 +63,15 @@ auto sumMCDCPairs(const ArrayRef<MCDCRecord> &Records) {
6363}
6464
6565static std::pair<RegionCoverageInfo, LineCoverageInfo>
66- sumRegions (ArrayRef<CountedRegion> CodeRegions, const CoverageData &CD) {
66+ sumRegions (const CoverageData &CD) {
6767 // Compute the region coverage.
6868 size_t NumCodeRegions = 0 , CoveredRegions = 0 ;
69- for (auto &CR : CodeRegions ) {
70- if (CR. Kind != CounterMappingRegion::CodeRegion )
69+ for (auto I = CD. begin (), E = CD. end (); I != E; ++I ) {
70+ if (!I-> IsRegionEntry || !I-> HasCount || I-> IsGapRegion )
7171 continue ;
72+
7273 ++NumCodeRegions;
73- if (CR. ExecutionCount != 0 )
74+ if (I-> Count )
7475 ++CoveredRegions;
7576 }
7677
@@ -88,9 +89,8 @@ sumRegions(ArrayRef<CountedRegion> CodeRegions, const CoverageData &CD) {
8889 LineCoverageInfo (CoveredLines, NumLines)};
8990}
9091
91- CoverageDataSummary::CoverageDataSummary (const CoverageData &CD,
92- ArrayRef<CountedRegion> CodeRegions) {
93- std::tie (RegionCoverage, LineCoverage) = sumRegions (CodeRegions, CD);
92+ CoverageDataSummary::CoverageDataSummary (const CoverageData &CD) {
93+ std::tie (RegionCoverage, LineCoverage) = sumRegions (CD);
9494 BranchCoverage = sumBranches (CD.getBranches ());
9595 MCDCCoverage = sumMCDCPairs (CD.getMCDCRecords ());
9696}
@@ -103,7 +103,7 @@ FunctionCoverageSummary::get(const CoverageMapping &CM,
103103 auto Summary =
104104 FunctionCoverageSummary (Function.Name , Function.ExecutionCount );
105105
106- Summary += CoverageDataSummary (CD, Function. CountedRegions );
106+ Summary += CoverageDataSummary (CD);
107107
108108 // Compute the branch coverage, including branches from expansions.
109109 Summary.BranchCoverage += sumBranchExpansions (CM, CD.getExpansions ());
0 commit comments