@@ -160,6 +160,7 @@ class SemaAVR;
160160class SemaBPF;
161161class SemaCodeCompletion;
162162class SemaCUDA;
163+ class SemaDirectX;
163164class SemaHLSL;
164165class SemaHexagon;
165166class SemaLoongArch;
@@ -1074,6 +1075,11 @@ class Sema final : public SemaBase {
10741075 return *CUDAPtr;
10751076 }
10761077
1078+ SemaDirectX &DirectX() {
1079+ assert(DirectXPtr);
1080+ return *DirectXPtr;
1081+ }
1082+
10771083 SemaHLSL &HLSL() {
10781084 assert(HLSLPtr);
10791085 return *HLSLPtr;
@@ -1212,6 +1218,7 @@ class Sema final : public SemaBase {
12121218 std::unique_ptr<SemaBPF> BPFPtr;
12131219 std::unique_ptr<SemaCodeCompletion> CodeCompletionPtr;
12141220 std::unique_ptr<SemaCUDA> CUDAPtr;
1221+ std::unique_ptr<SemaDirectX> DirectXPtr;
12151222 std::unique_ptr<SemaHLSL> HLSLPtr;
12161223 std::unique_ptr<SemaHexagon> HexagonPtr;
12171224 std::unique_ptr<SemaLoongArch> LoongArchPtr;
@@ -10127,13 +10134,14 @@ class Sema final : public SemaBase {
1012710134
1012810135 /// Contexts in which a converted constant expression is required.
1012910136 enum CCEKind {
10130- CCEK_CaseValue, ///< Expression in a case label.
10131- CCEK_Enumerator, ///< Enumerator value with fixed underlying type.
10132- CCEK_TemplateArg, ///< Value of a non-type template parameter.
10133- CCEK_InjectedTTP, ///< Injected parameter of a template template parameter.
10134- CCEK_ArrayBound, ///< Array bound in array declarator or new-expression.
10135- CCEK_ExplicitBool, ///< Condition in an explicit(bool) specifier.
10136- CCEK_Noexcept, ///< Condition in a noexcept(bool) specifier.
10137+ CCEK_CaseValue, ///< Expression in a case label.
10138+ CCEK_Enumerator, ///< Enumerator value with fixed underlying type.
10139+ CCEK_TemplateArg, ///< Value of a non-type template parameter.
10140+ CCEK_TempArgStrict, ///< As above, but applies strict template checking
10141+ ///< rules.
10142+ CCEK_ArrayBound, ///< Array bound in array declarator or new-expression.
10143+ CCEK_ExplicitBool, ///< Condition in an explicit(bool) specifier.
10144+ CCEK_Noexcept, ///< Condition in a noexcept(bool) specifier.
1013710145 CCEK_StaticAssertMessageSize, ///< Call to size() in a static assert
1013810146 ///< message.
1013910147 CCEK_StaticAssertMessageData, ///< Call to data() in a static assert
@@ -11895,7 +11903,7 @@ class Sema final : public SemaBase {
1189511903 QualType InstantiatedParamType, Expr *Arg,
1189611904 TemplateArgument &SugaredConverted,
1189711905 TemplateArgument &CanonicalConverted,
11898- bool MatchingTTP ,
11906+ bool StrictCheck ,
1189911907 CheckTemplateArgumentKind CTAK);
1190011908
1190111909 /// Check a template argument against its corresponding
0 commit comments