mirror of
https://github.com/intel/llvm.git
synced 2026-01-19 01:15:50 +08:00
CoverageMapping: Move getParams<InnerParamTy>(MCDCParams) into mcdc::
Fixup for #81227
This commit is contained in:
@@ -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; }
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user