diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2024-02-13 22:43:46 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-13 22:43:46 +0900 |
commit | a17a3e9d9a6b4baefd96e19ee5e8ce04cead8ab5 (patch) | |
tree | 2fead6e2ffdf9ed9e02e89dcdaec10f9506debee /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp | |
parent | a70077ed8cdf7c7c2879c18c1c67917cd88e64ef (diff) | |
download | llvm-a17a3e9d9a6b4baefd96e19ee5e8ce04cead8ab5.zip llvm-a17a3e9d9a6b4baefd96e19ee5e8ce04cead8ab5.tar.gz llvm-a17a3e9d9a6b4baefd96e19ee5e8ce04cead8ab5.tar.bz2 |
[MC/DC] Refactor: Make `MCDCParams` as `std::variant` (#81227)
Introduce `mcdc::DecisionParameters` and `mcdc::BranchParameters` and make
sure them not initialized as zero.
FIXME: Could we make `CoverageMappingRegion` as a smart tagged union?
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
-rw-r--r-- | llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp index 061f0f1..d528d9a 100644 --- a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp +++ b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp @@ -244,7 +244,8 @@ Error RawCoverageMappingReader::readMappingRegionsSubArray( unsigned LineStart = 0; for (size_t I = 0; I < NumRegions; ++I) { Counter C, C2; - uint64_t BIDX = 0, NC = 0, ID = 0, TID = 0, FID = 0; + uint64_t BIDX, NC, ID, TID, FID; + mcdc::Parameters Params; CounterMappingRegion::RegionKind Kind = CounterMappingRegion::CodeRegion; // Read the combined counter + region kind. @@ -312,6 +313,9 @@ Error RawCoverageMappingReader::readMappingRegionsSubArray( return make_error<CoverageMapError>( coveragemap_error::malformed, "MCDCConditionID shouldn't be zero"); + Params = mcdc::BranchParameters{static_cast<unsigned>(ID), + static_cast<unsigned>(TID), + static_cast<unsigned>(FID)}; break; case CounterMappingRegion::MCDCDecisionRegion: Kind = CounterMappingRegion::MCDCDecisionRegion; @@ -319,6 +323,8 @@ Error RawCoverageMappingReader::readMappingRegionsSubArray( return Err; if (auto Err = readIntMax(NC, std::numeric_limits<unsigned>::max())) return Err; + Params = mcdc::DecisionParameters{static_cast<unsigned>(BIDX), + static_cast<unsigned>(NC)}; break; default: return make_error<CoverageMapError>(coveragemap_error::malformed, @@ -374,12 +380,8 @@ Error RawCoverageMappingReader::readMappingRegionsSubArray( }); auto CMR = CounterMappingRegion( - C, C2, - mcdc::Parameters{static_cast<unsigned>(BIDX), static_cast<unsigned>(NC), - static_cast<unsigned>(ID), static_cast<unsigned>(TID), - static_cast<unsigned>(FID)}, - InferredFileID, ExpandedFileID, LineStart, ColumnStart, - LineStart + NumLines, ColumnEnd, Kind); + C, C2, InferredFileID, ExpandedFileID, LineStart, ColumnStart, + LineStart + NumLines, ColumnEnd, Kind, Params); if (CMR.startLoc() > CMR.endLoc()) return make_error<CoverageMapError>( coveragemap_error::malformed, |