Skip to content

Commit

Permalink
CoverageMapping: Move getParams<InnerParamTy>(MCDCParams) into `mcd…
Browse files Browse the repository at this point in the history
…c::`

Fixup for #81227
  • Loading branch information
chapuni committed Feb 15, 2024
1 parent 3fe5a0c commit 75f0d40
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 14 deletions.
3 changes: 1 addition & 2 deletions clang/lib/CodeGen/CoverageMappingGen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,7 @@ class SourceMappingRegion {
}

const auto &getMCDCDecisionParams() const {
return CounterMappingRegion::getParams<const mcdc::DecisionParameters>(
MCDCParams);
return mcdc::getParams<const mcdc::DecisionParameters>(MCDCParams);
}

const mcdc::Parameters &getMCDCParams() const { return MCDCParams; }
Expand Down
14 changes: 2 additions & 12 deletions llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
Original file line number Diff line number Diff line change
Expand Up @@ -258,22 +258,12 @@ struct CounterMappingRegion {
/// Parameters used for Modified Condition/Decision Coverage
mcdc::Parameters MCDCParams;

template <class MaybeConstInnerParameters, class MaybeConstMCDCParameters>
static auto &getParams(MaybeConstMCDCParameters &MCDCParams) {
using InnerParameters =
typename std::remove_const<MaybeConstInnerParameters>::type;
MaybeConstInnerParameters *Params =
std::get_if<InnerParameters>(&MCDCParams);
assert(Params && "InnerParameters unavailable");
return *Params;
}

const auto &getDecisionParams() const {
return getParams<const mcdc::DecisionParameters>(MCDCParams);
return mcdc::getParams<const mcdc::DecisionParameters>(MCDCParams);
}

const auto &getBranchParams() const {
return getParams<const mcdc::BranchParameters>(MCDCParams);
return mcdc::getParams<const mcdc::BranchParameters>(MCDCParams);
}

unsigned FileID = 0;
Expand Down
15 changes: 15 additions & 0 deletions llvm/include/llvm/ProfileData/Coverage/MCDCTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
#define LLVM_PROFILEDATA_COVERAGE_MCDCTYPES_H

#include <array>
#include <cassert>
#include <type_traits>
#include <variant>

namespace llvm::coverage::mcdc {
Expand Down Expand Up @@ -49,6 +51,19 @@ struct BranchParameters {
using Parameters =
std::variant<std::monostate, DecisionParameters, BranchParameters>;

/// Check and get underlying params in MCDCParams.
/// \tparam MaybeConstInnerParameters Type to get. May be const.
/// \tparam MaybeConstMCDCParameters Expected inferred. May be const.
/// \param MCDCParams May be const.
template <class MaybeConstInnerParameters, class MaybeConstMCDCParameters>
static auto &getParams(MaybeConstMCDCParameters &MCDCParams) {
using InnerParameters =
typename std::remove_const<MaybeConstInnerParameters>::type;
MaybeConstInnerParameters *Params = std::get_if<InnerParameters>(&MCDCParams);
assert(Params && "InnerParameters unavailable");
return *Params;
}

} // namespace llvm::coverage::mcdc

#endif // LLVM_PROFILEDATA_COVERAGE_MCDCTYPES_H

0 comments on commit 75f0d40

Please sign in to comment.