//===- MCDCTypes.h - Types related to MC/DC Coverage ------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Types related to MC/DC Coverage. // //===----------------------------------------------------------------------===// #ifndef LLVM_PROFILEDATA_COVERAGE_MCDCTYPES_H #define LLVM_PROFILEDATA_COVERAGE_MCDCTYPES_H #include <array> #include <cassert> #include <type_traits> #include <variant> namespace llvm::coverage::mcdc { /// The ID for MCDCBranch. ConditionID; ConditionIDs; struct DecisionParameters { … }; struct BranchParameters { … }; /// The type of MC/DC-specific parameters. Parameters; /// 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) { … } } // namespace llvm::coverage::mcdc #endif // LLVM_PROFILEDATA_COVERAGE_MCDCTYPES_H