CoverageMapping: Move getParams<InnerParamTy>(MCDCParams) into mcdc::

Fixup for #81227
This commit is contained in:
NAKAMURA Takumi
2024-02-15 18:24:57 +09:00
parent 3fe5a0cfa5
commit 75f0d40507
3 changed files with 18 additions and 14 deletions

View File

@@ -190,8 +190,7 @@ public:
}
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; }

View File

@@ -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;

View File

@@ -14,6 +14,8 @@
#define LLVM_PROFILEDATA_COVERAGE_MCDCTYPES_H
#include <array>
#include <cassert>
#include <type_traits>
#include <variant>
namespace llvm::coverage::mcdc {
@@ -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