Lines Matching refs:Specialization

2610   VarTemplateSpecializationDecl *Specialization = nullptr;  in ActOnVarTemplateSpecialization()  local
2624 Specialization = PrevDecl; in ActOnVarTemplateSpecialization()
2625 Specialization->setLocation(TemplateNameLoc); in ActOnVarTemplateSpecialization()
2639 Specialization = Partial; in ActOnVarTemplateSpecialization()
2675 Specialization = VarTemplateSpecializationDecl::Create( in ActOnVarTemplateSpecialization()
2678 Specialization->setTemplateArgsInfo(TemplateArgs); in ActOnVarTemplateSpecialization()
2681 VarTemplate->AddSpecialization(Specialization, InsertPos); in ActOnVarTemplateSpecialization()
2713 Specialization->setTemplateKeywordLoc(TemplateKWLoc); in ActOnVarTemplateSpecialization()
2714 Specialization->setLexicalDeclContext(CurContext); in ActOnVarTemplateSpecialization()
2719 CurContext->addDecl(Specialization); in ActOnVarTemplateSpecialization()
2722 Specialization->setSpecializationKind(TSK_ExplicitSpecialization); in ActOnVarTemplateSpecialization()
2730 D.setRedeclaration(CheckVariableDeclaration(Specialization, PrevSpec)); in ActOnVarTemplateSpecialization()
2731 } else if (Specialization->isStaticDataMember() && in ActOnVarTemplateSpecialization()
2732 Specialization->isOutOfLine()) { in ActOnVarTemplateSpecialization()
2733 Specialization->setAccess(VarTemplate->getAccess()); in ActOnVarTemplateSpecialization()
2738 if (Specialization->isStaticDataMember()) in ActOnVarTemplateSpecialization()
2739 Specialization->setInstantiationOfStaticDataMember( in ActOnVarTemplateSpecialization()
2741 Specialization->getSpecializationKind()); in ActOnVarTemplateSpecialization()
2743 return Specialization; in ActOnVarTemplateSpecialization()
6338 ClassTemplateSpecializationDecl *Specialization = nullptr; in ActOnClassTemplateSpecialization() local
6398 Specialization = Partial; in ActOnClassTemplateSpecialization()
6436 Specialization in ActOnClassTemplateSpecialization()
6443 SetNestedNameSpecifier(Specialization, SS); in ActOnClassTemplateSpecialization()
6445 Specialization->setTemplateParameterListsInfo(Context, in ActOnClassTemplateSpecialization()
6450 ClassTemplate->AddSpecialization(Specialization, InsertPos); in ActOnClassTemplateSpecialization()
6461 CanonType = Context.getTypeDeclType(Specialization); in ActOnClassTemplateSpecialization()
6484 << Context.getTypeDeclType(Specialization) << Range; in ActOnClassTemplateSpecialization()
6496 Specialization->setSpecializationKind(TSK_ExplicitSpecialization); in ActOnClassTemplateSpecialization()
6500 RecordDecl *Def = Specialization->getDefinition(); in ActOnClassTemplateSpecialization()
6510 << Context.getTypeDeclType(Specialization) << Range; in ActOnClassTemplateSpecialization()
6512 Specialization->setInvalidDecl(); in ActOnClassTemplateSpecialization()
6518 ProcessDeclAttributeList(S, Specialization, Attr); in ActOnClassTemplateSpecialization()
6523 AddAlignmentAttributesForRecord(Specialization); in ActOnClassTemplateSpecialization()
6524 AddMsStructLayoutForRecord(Specialization); in ActOnClassTemplateSpecialization()
6528 Diag(Specialization->getLocation(), diag::err_module_private_specialization) in ActOnClassTemplateSpecialization()
6543 Specialization->setTypeAsWritten(WrittenTy); in ActOnClassTemplateSpecialization()
6544 Specialization->setTemplateKeywordLoc(TemplateKWLoc); in ActOnClassTemplateSpecialization()
6555 Specialization->setLexicalDeclContext(CurContext); in ActOnClassTemplateSpecialization()
6559 Specialization->startDefinition(); in ActOnClassTemplateSpecialization()
6572 CurContext->addDecl(Specialization); in ActOnClassTemplateSpecialization()
6574 return Specialization; in ActOnClassTemplateSpecialization()
6912 FunctionDecl *Specialization = nullptr; in CheckFunctionTemplateSpecialization() local
6915 ExplicitTemplateArgs ? &Args : nullptr, FT, Specialization, in CheckFunctionTemplateSpecialization()
6928 ConvertedTemplateArgs[Specialization] = std::move(Args); in CheckFunctionTemplateSpecialization()
6929 Candidates.addDecl(Specialization, I.getAccess()); in CheckFunctionTemplateSpecialization()
6946 FunctionDecl *Specialization = cast<FunctionDecl>(*Result); in CheckFunctionTemplateSpecialization() local
6950 if (Specialization->getPrimaryTemplate()->isConcept()) { in CheckFunctionTemplateSpecialization()
6953 Diag(Specialization->getLocation(), diag::note_previous_declaration); in CheckFunctionTemplateSpecialization()
6958 = Specialization->getTemplateSpecializationInfo(); in CheckFunctionTemplateSpecialization()
6965 Specialization->setLocation(FD->getLocation()); in CheckFunctionTemplateSpecialization()
6969 Specialization->setConstexpr(FD->isConstexpr()); in CheckFunctionTemplateSpecialization()
6982 Specialization->getPrimaryTemplate(), in CheckFunctionTemplateSpecialization()
6983 Specialization, FD->getLocation(), in CheckFunctionTemplateSpecialization()
6997 Specialization, in CheckFunctionTemplateSpecialization()
7014 if (Specialization->isDeleted() && !SpecInfo->isExplicitSpecialization() && in CheckFunctionTemplateSpecialization()
7015 !Specialization->getCanonicalDecl()->isReferenced()) { in CheckFunctionTemplateSpecialization()
7017 Specialization->getCanonicalDecl() == Specialization && in CheckFunctionTemplateSpecialization()
7019 Specialization->setDeletedAsWritten(false); in CheckFunctionTemplateSpecialization()
7022 MarkUnusedFileScopedDecl(Specialization); in CheckFunctionTemplateSpecialization()
7030 TemplateArgumentList(Specialization->getTemplateSpecializationArgs()); in CheckFunctionTemplateSpecialization()
7032 Specialization->getPrimaryTemplate(), TemplArgs, /*InsertPos=*/nullptr, in CheckFunctionTemplateSpecialization()
7034 ExplicitTemplateArgs ? &ConvertedTemplateArgs[Specialization] : nullptr); in CheckFunctionTemplateSpecialization()
7039 Previous.addDecl(Specialization); in CheckFunctionTemplateSpecialization()
7446 ClassTemplateSpecializationDecl *Specialization = nullptr; in ActOnExplicitInstantiation() local
7466 Specialization = PrevDecl; in ActOnExplicitInstantiation()
7467 Specialization->setLocation(TemplateNameLoc); in ActOnExplicitInstantiation()
7478 if (!Specialization) { in ActOnExplicitInstantiation()
7481 Specialization in ActOnExplicitInstantiation()
7488 SetNestedNameSpecifier(Specialization, SS); in ActOnExplicitInstantiation()
7492 ClassTemplate->AddSpecialization(Specialization, InsertPos); in ActOnExplicitInstantiation()
7506 Context.getTypeDeclType(Specialization)); in ActOnExplicitInstantiation()
7507 Specialization->setTypeAsWritten(WrittenTy); in ActOnExplicitInstantiation()
7510 Specialization->setExternLoc(ExternLoc); in ActOnExplicitInstantiation()
7511 Specialization->setTemplateKeywordLoc(TemplateLoc); in ActOnExplicitInstantiation()
7512 Specialization->setRBraceLoc(SourceLocation()); in ActOnExplicitInstantiation()
7515 ProcessDeclAttributeList(S, Specialization, Attr); in ActOnExplicitInstantiation()
7520 Specialization->setLexicalDeclContext(CurContext); in ActOnExplicitInstantiation()
7521 CurContext->addDecl(Specialization); in ActOnExplicitInstantiation()
7526 Specialization->setTemplateSpecializationKind(TSK); in ActOnExplicitInstantiation()
7527 return Specialization; in ActOnExplicitInstantiation()
7539 Specialization->getDefinition()); in ActOnExplicitInstantiation()
7541 InstantiateClassTemplateSpecialization(TemplateNameLoc, Specialization, TSK); in ActOnExplicitInstantiation()
7543 MarkVTableUsed(TemplateNameLoc, Specialization, true); in ActOnExplicitInstantiation()
7544 Specialization->setPointOfInstantiation(Def->getPointOfInstantiation()); in ActOnExplicitInstantiation()
7549 Specialization->getDefinition()); in ActOnExplicitInstantiation()
7560 if (!getDLLAttr(Def) && getDLLAttr(Specialization) && in ActOnExplicitInstantiation()
7566 getDLLAttr(Specialization)->clone(getASTContext())); in ActOnExplicitInstantiation()
7588 Specialization->setTemplateSpecializationKind(TSK); in ActOnExplicitInstantiation()
7593 Specialization->setTemplateSpecializationKind(TSK); in ActOnExplicitInstantiation()
7596 return Specialization; in ActOnExplicitInstantiation()
7979 FunctionDecl *Specialization = nullptr; in ActOnExplicitInstantiation() local
7984 R, Specialization, Info)) { in ActOnExplicitInstantiation()
7993 Matches.addDecl(Specialization, P.getAccess()); in ActOnExplicitInstantiation()
8008 FunctionDecl *Specialization = cast<FunctionDecl>(*Result); in ActOnExplicitInstantiation() local
8023 PDiag(DiagID) << Specialization->getType(), in ActOnExplicitInstantiation()
8025 Specialization->getType()->getAs<FunctionProtoType>(), in ActOnExplicitInstantiation()
8026 Specialization->getLocation(), FPT, D.getLocStart()); in ActOnExplicitInstantiation()
8033 if (Specialization->getTemplateSpecializationKind() == TSK_Undeclared) { in ActOnExplicitInstantiation()
8036 << Specialization in ActOnExplicitInstantiation()
8037 << (Specialization->getTemplateSpecializationKind() == in ActOnExplicitInstantiation()
8039 Diag(Specialization->getLocation(), diag::note_explicit_instantiation_here); in ActOnExplicitInstantiation()
8043 FunctionDecl *PrevDecl = Specialization->getPreviousDecl(); in ActOnExplicitInstantiation()
8044 if (!PrevDecl && Specialization->isThisDeclarationADefinition()) in ActOnExplicitInstantiation()
8045 PrevDecl = Specialization; in ActOnExplicitInstantiation()
8062 Specialization->setTemplateSpecializationKind(TSK, D.getIdentifierLoc()); in ActOnExplicitInstantiation()
8065 ProcessDeclAttributeList(S, Specialization, Attr); in ActOnExplicitInstantiation()
8067 if (Specialization->isDefined()) { in ActOnExplicitInstantiation()
8070 Consumer.HandleTopLevelDecl(DeclGroupRef(Specialization)); in ActOnExplicitInstantiation()
8072 InstantiateFunctionDefinition(D.getIdentifierLoc(), Specialization); in ActOnExplicitInstantiation()
8081 FunctionTemplateDecl *FunTmpl = Specialization->getPrimaryTemplate(); in ActOnExplicitInstantiation()
8087 << Specialization << D.getCXXScopeSpec().getRange(); in ActOnExplicitInstantiation()
8101 : Specialization->getInstantiatedFromMemberFunction(), in ActOnExplicitInstantiation()