@@ -5179,7 +5179,7 @@ bool Sema::CheckTemplateArgument(
51795179 unsigned ArgumentPackIndex,
51805180 SmallVectorImpl<TemplateArgument> &SugaredConverted,
51815181 SmallVectorImpl<TemplateArgument> &CanonicalConverted,
5182- CheckTemplateArgumentKind CTAK, bool *MatchedPackOnParmToNonPackOnArg ) {
5182+ CheckTemplateArgumentKind CTAK) {
51835183 // Check template type parameters.
51845184 if (TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(Param))
51855185 return CheckTemplateTypeArgument (TTP, Arg, SugaredConverted,
@@ -5395,8 +5395,7 @@ bool Sema::CheckTemplateArgument(
53955395 case TemplateArgument::Template:
53965396 case TemplateArgument::TemplateExpansion:
53975397 if (CheckTemplateTemplateArgument (TempParm, Params, Arg,
5398- /* IsDeduced=*/ CTAK != CTAK_Specified,
5399- MatchedPackOnParmToNonPackOnArg))
5398+ /* IsDeduced=*/ CTAK != CTAK_Specified))
54005399 return true ;
54015400
54025401 SugaredConverted.push_back (Arg.getArgument ());
@@ -5470,7 +5469,7 @@ bool Sema::CheckTemplateArgumentList(
54705469 SmallVectorImpl<TemplateArgument> &SugaredConverted,
54715470 SmallVectorImpl<TemplateArgument> &CanonicalConverted,
54725471 bool UpdateArgsWithConversions, bool *ConstraintsNotSatisfied,
5473- bool PartialOrderingTTP, bool *MatchedPackOnParmToNonPackOnArg ) {
5472+ bool PartialOrderingTTP) {
54745473
54755474 if (ConstraintsNotSatisfied)
54765475 *ConstraintsNotSatisfied = false ;
@@ -5546,10 +5545,10 @@ bool Sema::CheckTemplateArgumentList(
55465545
55475546 if (ArgIdx < NumArgs) {
55485547 // Check the template argument we were given.
5549- if (CheckTemplateArgument (
5550- *Param, NewArgs[ArgIdx], Template, TemplateLoc, RAngleLoc,
5551- SugaredArgumentPack. size (), SugaredConverted, CanonicalConverted,
5552- CTAK_Specified, MatchedPackOnParmToNonPackOnArg ))
5548+ if (CheckTemplateArgument (*Param, NewArgs[ArgIdx], Template, TemplateLoc,
5549+ RAngleLoc, SugaredArgumentPack. size () ,
5550+ SugaredConverted, CanonicalConverted,
5551+ CTAK_Specified ))
55535552 return true ;
55545553
55555554 CanonicalConverted.back ().setIsDefaulted (
@@ -5707,8 +5706,7 @@ bool Sema::CheckTemplateArgumentList(
57075706 // Check the default template argument.
57085707 if (CheckTemplateArgument (*Param, Arg, Template, TemplateLoc, RAngleLoc, 0 ,
57095708 SugaredConverted, CanonicalConverted,
5710- CTAK_Specified,
5711- /* MatchedPackOnParmToNonPackOnArg=*/ nullptr ))
5709+ CTAK_Specified))
57125710 return true ;
57135711
57145712 SugaredConverted.back ().setIsDefaulted (true );
@@ -7291,10 +7289,10 @@ static void DiagnoseTemplateParameterListArityMismatch(
72917289 Sema &S, TemplateParameterList *New, TemplateParameterList *Old,
72927290 Sema::TemplateParameterListEqualKind Kind, SourceLocation TemplateArgLoc);
72937291
7294- bool Sema::CheckTemplateTemplateArgument (
7295- TemplateTemplateParmDecl *Param, TemplateParameterList *Params,
7296- TemplateArgumentLoc &Arg, bool IsDeduced ,
7297- bool *MatchedPackOnParmToNonPackOnArg ) {
7292+ bool Sema::CheckTemplateTemplateArgument (TemplateTemplateParmDecl *Param,
7293+ TemplateParameterList *Params,
7294+ TemplateArgumentLoc &Arg,
7295+ bool IsDeduced ) {
72987296 TemplateName Name = Arg.getArgument ().getAsTemplateOrTemplatePattern ();
72997297 auto [Template, DefaultArgs] = Name.getTemplateDeclAndDefaultArgs ();
73007298 if (!Template) {
@@ -7338,8 +7336,7 @@ bool Sema::CheckTemplateTemplateArgument(
73387336 // A template-argument matches a template template-parameter P when P
73397337 // is at least as specialized as the template-argument A.
73407338 if (!isTemplateTemplateParameterAtLeastAsSpecializedAs (
7341- Params, Param, Template, DefaultArgs, Arg.getLocation (), IsDeduced,
7342- MatchedPackOnParmToNonPackOnArg))
7339+ Params, Param, Template, DefaultArgs, Arg.getLocation (), IsDeduced))
73437340 return true ;
73447341 // P2113
73457342 // C++20[temp.func.order]p2
@@ -9757,14 +9754,11 @@ DeclResult Sema::ActOnExplicitInstantiation(
97579754
97589755 // Check that the template argument list is well-formed for this
97599756 // template.
9760- bool PrimaryHasMatchedPackOnParmToNonPackOnArg = false ;
97619757 SmallVector<TemplateArgument, 4 > SugaredConverted, CanonicalConverted;
9762- if (CheckTemplateArgumentList (
9763- ClassTemplate, TemplateNameLoc, TemplateArgs,
9764- /* DefaultArgs=*/ {}, false , SugaredConverted, CanonicalConverted,
9765- /* UpdateArgsWithConversions=*/ true ,
9766- /* ConstraintsNotSatisfied=*/ nullptr , /* PartialOrderingTTP=*/ false ,
9767- &PrimaryHasMatchedPackOnParmToNonPackOnArg))
9758+ if (CheckTemplateArgumentList (ClassTemplate, TemplateNameLoc, TemplateArgs,
9759+ /* DefaultArgs=*/ {}, false , SugaredConverted,
9760+ CanonicalConverted,
9761+ /* UpdateArgsWithConversions=*/ true ))
97689762 return true ;
97699763
97709764 // Find the class template specialization declaration that
@@ -9885,9 +9879,7 @@ DeclResult Sema::ActOnExplicitInstantiation(
98859879 = cast_or_null<ClassTemplateSpecializationDecl>(
98869880 Specialization->getDefinition ());
98879881 if (!Def)
9888- InstantiateClassTemplateSpecialization (
9889- TemplateNameLoc, Specialization, TSK,
9890- /* Complain=*/ true , PrimaryHasMatchedPackOnParmToNonPackOnArg);
9882+ InstantiateClassTemplateSpecialization (TemplateNameLoc, Specialization, TSK);
98919883 else if (TSK == TSK_ExplicitInstantiationDefinition) {
98929884 MarkVTableUsed (TemplateNameLoc, Specialization, true );
98939885 Specialization->setPointOfInstantiation (Def->getPointOfInstantiation ());
0 commit comments