Lines Matching defs:Specialization
4240 VarTemplateSpecializationDecl *Specialization = nullptr;
4254 Specialization = PrevDecl;
4255 Specialization->setLocation(TemplateNameLoc);
4270 Specialization = Partial;
4281 Specialization = VarTemplateSpecializationDecl::Create(
4284 Specialization->setTemplateArgsAsWritten(TemplateArgs);
4287 VarTemplate->AddSpecialization(Specialization, InsertPos);
4319 Specialization->setLexicalDeclContext(CurContext);
4324 CurContext->addDecl(Specialization);
4327 Specialization->setSpecializationKind(TSK_ExplicitSpecialization);
4332 else if (Specialization->isStaticDataMember() &&
4333 Specialization->isOutOfLine())
4334 Specialization->setAccess(VarTemplate->getAccess());
4336 return Specialization;
8459 ClassTemplateSpecializationDecl *Specialization = nullptr;
8516 Specialization = Partial;
8527 Specialization = ClassTemplateSpecializationDecl::Create(
8530 Specialization->setTemplateArgsAsWritten(TemplateArgs);
8531 SetNestedNameSpecifier(*this, Specialization, SS);
8533 Specialization->setTemplateParameterListsInfo(Context,
8538 ClassTemplate->AddSpecialization(Specialization, InsertPos);
8545 CanonType = Context.getTypeDeclType(Specialization);
8568 << Context.getTypeDeclType(Specialization) << Range;
8580 Specialization->setSpecializationKind(TSK_ExplicitSpecialization);
8584 RecordDecl *Def = Specialization->getDefinition();
8592 Diag(TemplateNameLoc, diag::err_redefinition) << Specialization << Range;
8594 Specialization->setInvalidDecl();
8599 ProcessDeclAttributeList(S, Specialization, Attr);
8600 ProcessAPINotes(Specialization);
8605 AddAlignmentAttributesForRecord(Specialization);
8606 AddMsStructLayoutForRecord(Specialization);
8610 Diag(Specialization->getLocation(), diag::err_module_private_specialization)
8622 Specialization->setLexicalDeclContext(CurContext);
8626 Specialization->startDefinition();
8648 CurContext->addDecl(Specialization);
8654 Specialization->setInvalidDecl(Invalid);
8655 inferGslOwnerPointerAttribute(Specialization);
8656 return Specialization;
9120 FunctionDecl *Specialization = nullptr;
9123 ExplicitTemplateArgs ? &Args : nullptr, FT, Specialization, Info);
9140 CUDA().IdentifyTarget(Specialization,
9152 ConvertedTemplateArgs[Specialization] = std::move(Args);
9153 Candidates.addDecl(Specialization, I.getAccess());
9185 FunctionDecl *Specialization = cast<FunctionDecl>(*Result);
9187 if (const auto *PT = Specialization->getPrimaryTemplate();
9221 Specialization->getType()->castAs<FunctionProtoType>();
9230 = Specialization->getTemplateSpecializationInfo();
9237 Specialization->setLocation(FD->getLocation());
9238 Specialization->setLexicalDeclContext(FD->getLexicalDeclContext());
9245 Specialization->setConstexprKind(FD->getConstexprKind());
9258 Specialization->getPrimaryTemplate(),
9259 Specialization, FD->getLocation(),
9273 Specialization,
9290 if (Specialization->isDeleted() && !SpecInfo->isExplicitSpecialization() &&
9291 !Specialization->getCanonicalDecl()->isReferenced()) {
9294 Specialization->getCanonicalDecl() == Specialization &&
9297 Specialization->setDeletedAsWritten(false);
9301 MarkUnusedFileScopedDecl(Specialization);
9309 Context, Specialization->getTemplateSpecializationArgs()->asArray());
9311 Specialization->getPrimaryTemplate(), TemplArgs, /*InsertPos=*/nullptr,
9313 ExplicitTemplateArgs ? &ConvertedTemplateArgs[Specialization] : nullptr);
9321 CUDA().inheritTargetAttrs(FD, *Specialization->getPrimaryTemplate());
9326 Previous.addDecl(Specialization);
9835 ClassTemplateSpecializationDecl *Specialization = nullptr;
9855 Specialization = PrevDecl;
9856 Specialization->setLocation(TemplateNameLoc);
9867 if (!Specialization) {
9870 Specialization = ClassTemplateSpecializationDecl::Create(
9873 SetNestedNameSpecifier(*this, Specialization, SS);
9881 Specialization->addAttr(Clone);
9882 Consumer.AssignInheritanceModel(Specialization);
9888 ClassTemplate->AddSpecialization(Specialization, InsertPos);
9892 Specialization->setTemplateArgsAsWritten(TemplateArgs);
9895 Specialization->setExternKeywordLoc(ExternLoc);
9896 Specialization->setTemplateKeywordLoc(TemplateLoc);
9897 Specialization->setBraceRange(SourceRange());
9899 bool PreviouslyDLLExported = Specialization->hasAttr<DLLExportAttr>();
9900 ProcessDeclAttributeList(S, Specialization, Attr);
9901 ProcessAPINotes(Specialization);
9906 Specialization->setLexicalDeclContext(CurContext);
9907 CurContext->addDecl(Specialization);
9912 Specialization->setTemplateSpecializationKind(TSK);
9913 return Specialization;
9925 Specialization->getDefinition());
9928 TemplateNameLoc, Specialization, TSK,
9931 MarkVTableUsed(TemplateNameLoc, Specialization, true);
9932 Specialization->setPointOfInstantiation(Def->getPointOfInstantiation());
9937 Specialization->getDefinition());
9948 if (!getDLLAttr(Def) && getDLLAttr(Specialization) &&
9954 getDLLAttr(Specialization)->clone(getASTContext()));
9964 !PreviouslyDLLExported && Specialization->hasAttr<DLLExportAttr>();
9976 // since the Def and Specialization will be the same in the case of
9978 // attribute to the Specialization; we just need to make it take effect.
9979 assert(Def == Specialization &&
9980 "Def and Specialization should match for implicit instantiation");
9994 Specialization->setTemplateSpecializationKind(TSK);
9999 Specialization->setTemplateSpecializationKind(TSK);
10002 return Specialization;
10388 FunctionDecl *Specialization = nullptr;
10391 Specialization, Info);
10407 CUDA().IdentifyTarget(Specialization,
10417 TemplateMatches.addDecl(Specialization, P.getAccess());
10420 FunctionDecl *Specialization = nullptr;
10429 Specialization = cast<FunctionDecl>(Best->Function);
10449 if (!Specialization) {
10462 Specialization = cast<FunctionDecl>(*Result);
10478 PDiag(DiagID) << Specialization->getType(),
10480 Specialization->getType()->getAs<FunctionProtoType>(),
10481 Specialization->getLocation(), FPT, D.getBeginLoc());
10488 if (Specialization->getTemplateSpecializationKind() == TSK_Undeclared) {
10491 << Specialization
10492 << (Specialization->getTemplateSpecializationKind() ==
10494 Diag(Specialization->getLocation(), diag::note_explicit_instantiation_here);
10498 FunctionDecl *PrevDecl = Specialization->getPreviousDecl();
10499 if (!PrevDecl && Specialization->isThisDeclarationADefinition())
10500 PrevDecl = Specialization;
10523 if (Specialization->hasAttr<InternalLinkageAttr>() &&
10525 if (auto *RD = dyn_cast<CXXRecordDecl>(Specialization->getDeclContext()))
10531 ProcessDeclAttributeList(S, Specialization, D.getDeclSpec().getAttributes());
10532 ProcessAPINotes(Specialization);
10537 Specialization->hasAttr<DLLImportAttr>() &&
10541 Specialization->setTemplateSpecializationKind(TSK, D.getIdentifierLoc());
10543 if (Specialization->isDefined()) {
10546 Consumer.HandleTopLevelDecl(DeclGroupRef(Specialization));
10548 InstantiateFunctionDefinition(D.getIdentifierLoc(), Specialization);
10557 FunctionTemplateDecl *FunTmpl = Specialization->getPrimaryTemplate();
10563 << Specialization << D.getCXXScopeSpec().getRange();
10568 : Specialization->getInstantiatedFromMemberFunction(),