@@ -341,7 +341,7 @@ struct TemplateInstantiationArgumentCollecter
341341 // If this function was instantiated from a specialized member that is
342342 // a function template, we're done.
343343 assert (FD->getPrimaryTemplate () && " No function template?" );
344- if (FD->getPrimaryTemplate ()->isMemberSpecialization ())
344+ if (FD->getPrimaryTemplate ()->hasMemberSpecialization ())
345345 return Done ();
346346
347347 // If this function is a generic lambda specialization, we are done.
@@ -440,11 +440,11 @@ struct TemplateInstantiationArgumentCollecter
440440 Specialized = CTSD->getSpecializedTemplateOrPartial ();
441441 if (auto *CTPSD =
442442 Specialized.dyn_cast <ClassTemplatePartialSpecializationDecl *>()) {
443- if (CTPSD->isMemberSpecialization ())
443+ if (CTPSD->hasMemberSpecialization ())
444444 return Done ();
445445 } else {
446446 auto *CTD = Specialized.get <ClassTemplateDecl *>();
447- if (CTD->isMemberSpecialization ())
447+ if (CTD->hasMemberSpecialization ())
448448 return Done ();
449449 }
450450 return UseNextDecl (CTSD);
@@ -476,11 +476,11 @@ struct TemplateInstantiationArgumentCollecter
476476 Specialized = VTSD->getSpecializedTemplateOrPartial ();
477477 if (auto *VTPSD =
478478 Specialized.dyn_cast <VarTemplatePartialSpecializationDecl *>()) {
479- if (VTPSD->isMemberSpecialization ())
479+ if (VTPSD->hasMemberSpecialization ())
480480 return Done ();
481481 } else {
482482 auto *VTD = Specialized.get <VarTemplateDecl *>();
483- if (VTD->isMemberSpecialization ())
483+ if (VTD->hasMemberSpecialization ())
484484 return Done ();
485485 }
486486 return UseNextDecl (VTSD);
@@ -4111,10 +4111,7 @@ getPatternForClassTemplateSpecialization(
41114111 CXXRecordDecl *Pattern = nullptr ;
41124112 Specialized = ClassTemplateSpec->getSpecializedTemplateOrPartial ();
41134113 if (auto *CTD = Specialized.dyn_cast <ClassTemplateDecl *>()) {
4114- while (true ) {
4115- CTD = CTD->getMostRecentDecl ();
4116- if (CTD->isMemberSpecialization ())
4117- break ;
4114+ while (!CTD->hasMemberSpecialization ()) {
41184115 if (auto *NewCTD = CTD->getInstantiatedFromMemberTemplate ())
41194116 CTD = NewCTD;
41204117 else
@@ -4124,10 +4121,7 @@ getPatternForClassTemplateSpecialization(
41244121 } else if (auto *CTPSD =
41254122 Specialized
41264123 .dyn_cast <ClassTemplatePartialSpecializationDecl *>()) {
4127- while (true ) {
4128- CTPSD = CTPSD->getMostRecentDecl ();
4129- if (CTPSD->isMemberSpecialization ())
4130- break ;
4124+ while (!CTPSD->hasMemberSpecialization ()) {
41314125 if (auto *NewCTPSD = CTPSD->getInstantiatedFromMemberTemplate ())
41324126 CTPSD = NewCTPSD;
41334127 else
0 commit comments