Lines Matching refs:Specialization
4439 VarTemplateSpecializationDecl *Specialization = nullptr; in ActOnVarTemplateSpecialization() local
4453 Specialization = PrevDecl; in ActOnVarTemplateSpecialization()
4454 Specialization->setLocation(TemplateNameLoc); in ActOnVarTemplateSpecialization()
4468 Specialization = Partial; in ActOnVarTemplateSpecialization()
4479 Specialization = VarTemplateSpecializationDecl::Create( in ActOnVarTemplateSpecialization()
4482 Specialization->setTemplateArgsInfo(TemplateArgs); in ActOnVarTemplateSpecialization()
4485 VarTemplate->AddSpecialization(Specialization, InsertPos); in ActOnVarTemplateSpecialization()
4517 Specialization->setTemplateKeywordLoc(TemplateKWLoc); in ActOnVarTemplateSpecialization()
4518 Specialization->setLexicalDeclContext(CurContext); in ActOnVarTemplateSpecialization()
4523 CurContext->addDecl(Specialization); in ActOnVarTemplateSpecialization()
4526 Specialization->setSpecializationKind(TSK_ExplicitSpecialization); in ActOnVarTemplateSpecialization()
4534 D.setRedeclaration(CheckVariableDeclaration(Specialization, PrevSpec)); in ActOnVarTemplateSpecialization()
4535 } else if (Specialization->isStaticDataMember() && in ActOnVarTemplateSpecialization()
4536 Specialization->isOutOfLine()) { in ActOnVarTemplateSpecialization()
4537 Specialization->setAccess(VarTemplate->getAccess()); in ActOnVarTemplateSpecialization()
4540 return Specialization; in ActOnVarTemplateSpecialization()
8450 ClassTemplateSpecializationDecl *Specialization = nullptr; in ActOnClassTemplateSpecialization() local
8515 Specialization = Partial; in ActOnClassTemplateSpecialization()
8526 Specialization in ActOnClassTemplateSpecialization()
8533 SetNestedNameSpecifier(*this, Specialization, SS); in ActOnClassTemplateSpecialization()
8535 Specialization->setTemplateParameterListsInfo(Context, in ActOnClassTemplateSpecialization()
8540 ClassTemplate->AddSpecialization(Specialization, InsertPos); in ActOnClassTemplateSpecialization()
8547 CanonType = Context.getTypeDeclType(Specialization); in ActOnClassTemplateSpecialization()
8570 << Context.getTypeDeclType(Specialization) << Range; in ActOnClassTemplateSpecialization()
8582 Specialization->setSpecializationKind(TSK_ExplicitSpecialization); in ActOnClassTemplateSpecialization()
8586 RecordDecl *Def = Specialization->getDefinition(); in ActOnClassTemplateSpecialization()
8594 Diag(TemplateNameLoc, diag::err_redefinition) << Specialization << Range; in ActOnClassTemplateSpecialization()
8596 Specialization->setInvalidDecl(); in ActOnClassTemplateSpecialization()
8601 ProcessDeclAttributeList(S, Specialization, Attr); in ActOnClassTemplateSpecialization()
8606 AddAlignmentAttributesForRecord(Specialization); in ActOnClassTemplateSpecialization()
8607 AddMsStructLayoutForRecord(Specialization); in ActOnClassTemplateSpecialization()
8611 Diag(Specialization->getLocation(), diag::err_module_private_specialization) in ActOnClassTemplateSpecialization()
8626 Specialization->setTypeAsWritten(WrittenTy); in ActOnClassTemplateSpecialization()
8627 Specialization->setTemplateKeywordLoc(TemplateKWLoc); in ActOnClassTemplateSpecialization()
8638 Specialization->setLexicalDeclContext(CurContext); in ActOnClassTemplateSpecialization()
8642 Specialization->startDefinition(); in ActOnClassTemplateSpecialization()
8655 CurContext->addDecl(Specialization); in ActOnClassTemplateSpecialization()
8661 return Specialization; in ActOnClassTemplateSpecialization()
9111 FunctionDecl *Specialization = nullptr; in CheckFunctionTemplateSpecialization() local
9114 ExplicitTemplateArgs ? &Args : nullptr, FT, Specialization, in CheckFunctionTemplateSpecialization()
9131 IdentifyCUDATarget(Specialization, in CheckFunctionTemplateSpecialization()
9142 ConvertedTemplateArgs[Specialization] = std::move(Args); in CheckFunctionTemplateSpecialization()
9143 Candidates.addDecl(Specialization, I.getAccess()); in CheckFunctionTemplateSpecialization()
9175 FunctionDecl *Specialization = cast<FunctionDecl>(*Result); in CheckFunctionTemplateSpecialization() local
9178 = Specialization->getTemplateSpecializationInfo(); in CheckFunctionTemplateSpecialization()
9185 Specialization->setLocation(FD->getLocation()); in CheckFunctionTemplateSpecialization()
9186 Specialization->setLexicalDeclContext(FD->getLexicalDeclContext()); in CheckFunctionTemplateSpecialization()
9193 Specialization->setConstexprKind(FD->getConstexprKind()); in CheckFunctionTemplateSpecialization()
9206 Specialization->getPrimaryTemplate(), in CheckFunctionTemplateSpecialization()
9207 Specialization, FD->getLocation(), in CheckFunctionTemplateSpecialization()
9221 Specialization, in CheckFunctionTemplateSpecialization()
9238 if (Specialization->isDeleted() && !SpecInfo->isExplicitSpecialization() && in CheckFunctionTemplateSpecialization()
9239 !Specialization->getCanonicalDecl()->isReferenced()) { in CheckFunctionTemplateSpecialization()
9242 Specialization->getCanonicalDecl() == Specialization && in CheckFunctionTemplateSpecialization()
9245 Specialization->setDeletedAsWritten(false); in CheckFunctionTemplateSpecialization()
9249 MarkUnusedFileScopedDecl(Specialization); in CheckFunctionTemplateSpecialization()
9257 TemplateArgumentList(Specialization->getTemplateSpecializationArgs()); in CheckFunctionTemplateSpecialization()
9259 Specialization->getPrimaryTemplate(), TemplArgs, /*InsertPos=*/nullptr, in CheckFunctionTemplateSpecialization()
9261 ExplicitTemplateArgs ? &ConvertedTemplateArgs[Specialization] : nullptr); in CheckFunctionTemplateSpecialization()
9269 inheritCUDATargetAttrs(FD, *Specialization->getPrimaryTemplate()); in CheckFunctionTemplateSpecialization()
9274 Previous.addDecl(Specialization); in CheckFunctionTemplateSpecialization()
9738 ClassTemplateSpecializationDecl *Specialization = nullptr; in ActOnExplicitInstantiation() local
9758 Specialization = PrevDecl; in ActOnExplicitInstantiation()
9759 Specialization->setLocation(TemplateNameLoc); in ActOnExplicitInstantiation()
9770 if (!Specialization) { in ActOnExplicitInstantiation()
9773 Specialization in ActOnExplicitInstantiation()
9780 SetNestedNameSpecifier(*this, Specialization, SS); in ActOnExplicitInstantiation()
9784 ClassTemplate->AddSpecialization(Specialization, InsertPos); in ActOnExplicitInstantiation()
9798 Context.getTypeDeclType(Specialization)); in ActOnExplicitInstantiation()
9799 Specialization->setTypeAsWritten(WrittenTy); in ActOnExplicitInstantiation()
9802 Specialization->setExternLoc(ExternLoc); in ActOnExplicitInstantiation()
9803 Specialization->setTemplateKeywordLoc(TemplateLoc); in ActOnExplicitInstantiation()
9804 Specialization->setBraceRange(SourceRange()); in ActOnExplicitInstantiation()
9806 bool PreviouslyDLLExported = Specialization->hasAttr<DLLExportAttr>(); in ActOnExplicitInstantiation()
9807 ProcessDeclAttributeList(S, Specialization, Attr); in ActOnExplicitInstantiation()
9812 Specialization->setLexicalDeclContext(CurContext); in ActOnExplicitInstantiation()
9813 CurContext->addDecl(Specialization); in ActOnExplicitInstantiation()
9818 Specialization->setTemplateSpecializationKind(TSK); in ActOnExplicitInstantiation()
9819 return Specialization; in ActOnExplicitInstantiation()
9831 Specialization->getDefinition()); in ActOnExplicitInstantiation()
9833 InstantiateClassTemplateSpecialization(TemplateNameLoc, Specialization, TSK); in ActOnExplicitInstantiation()
9835 MarkVTableUsed(TemplateNameLoc, Specialization, true); in ActOnExplicitInstantiation()
9836 Specialization->setPointOfInstantiation(Def->getPointOfInstantiation()); in ActOnExplicitInstantiation()
9841 Specialization->getDefinition()); in ActOnExplicitInstantiation()
9852 if (!getDLLAttr(Def) && getDLLAttr(Specialization) && in ActOnExplicitInstantiation()
9859 getDLLAttr(Specialization)->clone(getASTContext())); in ActOnExplicitInstantiation()
9869 !PreviouslyDLLExported && Specialization->hasAttr<DLLExportAttr>(); in ActOnExplicitInstantiation()
9885 assert(Def == Specialization && in ActOnExplicitInstantiation()
9899 Specialization->addAttr(Def->getAttr<MSInheritanceAttr>()); in ActOnExplicitInstantiation()
9900 Consumer.AssignInheritanceModel(Specialization); in ActOnExplicitInstantiation()
9905 Specialization->setTemplateSpecializationKind(TSK); in ActOnExplicitInstantiation()
9910 Specialization->setTemplateSpecializationKind(TSK); in ActOnExplicitInstantiation()
9913 return Specialization; in ActOnExplicitInstantiation()
10284 FunctionDecl *Specialization = nullptr; in ActOnExplicitInstantiation() local
10289 R, Specialization, Info)) { in ActOnExplicitInstantiation()
10304 IdentifyCUDATarget(Specialization, in ActOnExplicitInstantiation()
10313 TemplateMatches.addDecl(Specialization, P.getAccess()); in ActOnExplicitInstantiation()
10316 FunctionDecl *Specialization = NonTemplateMatch; in ActOnExplicitInstantiation() local
10317 if (!Specialization) { in ActOnExplicitInstantiation()
10330 Specialization = cast<FunctionDecl>(*Result); in ActOnExplicitInstantiation()
10346 PDiag(DiagID) << Specialization->getType(), in ActOnExplicitInstantiation()
10348 Specialization->getType()->getAs<FunctionProtoType>(), in ActOnExplicitInstantiation()
10349 Specialization->getLocation(), FPT, D.getBeginLoc()); in ActOnExplicitInstantiation()
10356 if (Specialization->getTemplateSpecializationKind() == TSK_Undeclared) { in ActOnExplicitInstantiation()
10359 << Specialization in ActOnExplicitInstantiation()
10360 << (Specialization->getTemplateSpecializationKind() == in ActOnExplicitInstantiation()
10362 Diag(Specialization->getLocation(), diag::note_explicit_instantiation_here); in ActOnExplicitInstantiation()
10366 FunctionDecl *PrevDecl = Specialization->getPreviousDecl(); in ActOnExplicitInstantiation()
10367 if (!PrevDecl && Specialization->isThisDeclarationADefinition()) in ActOnExplicitInstantiation()
10368 PrevDecl = Specialization; in ActOnExplicitInstantiation()
10391 if (Specialization->hasAttr<InternalLinkageAttr>() && in ActOnExplicitInstantiation()
10393 if (auto *RD = dyn_cast<CXXRecordDecl>(Specialization->getDeclContext())) in ActOnExplicitInstantiation()
10399 ProcessDeclAttributeList(S, Specialization, D.getDeclSpec().getAttributes()); in ActOnExplicitInstantiation()
10404 Specialization->hasAttr<DLLImportAttr>() && in ActOnExplicitInstantiation()
10408 Specialization->setTemplateSpecializationKind(TSK, D.getIdentifierLoc()); in ActOnExplicitInstantiation()
10410 if (Specialization->isDefined()) { in ActOnExplicitInstantiation()
10413 Consumer.HandleTopLevelDecl(DeclGroupRef(Specialization)); in ActOnExplicitInstantiation()
10415 InstantiateFunctionDefinition(D.getIdentifierLoc(), Specialization); in ActOnExplicitInstantiation()
10424 FunctionTemplateDecl *FunTmpl = Specialization->getPrimaryTemplate(); in ActOnExplicitInstantiation()
10430 << Specialization << D.getCXXScopeSpec().getRange(); in ActOnExplicitInstantiation()
10435 : Specialization->getInstantiatedFromMemberFunction(), in ActOnExplicitInstantiation()