Lines Matching refs:Specialization

4185   VarTemplateSpecializationDecl *Specialization = nullptr;
4199 Specialization = PrevDecl;
4200 Specialization->setLocation(TemplateNameLoc);
4214 Specialization = Partial;
4225 Specialization = VarTemplateSpecializationDecl::Create(
4228 Specialization->setTemplateArgsInfo(TemplateArgs);
4231 VarTemplate->AddSpecialization(Specialization, InsertPos);
4263 Specialization->setTemplateKeywordLoc(TemplateKWLoc);
4264 Specialization->setLexicalDeclContext(CurContext);
4269 CurContext->addDecl(Specialization);
4272 Specialization->setSpecializationKind(TSK_ExplicitSpecialization);
4280 D.setRedeclaration(CheckVariableDeclaration(Specialization, PrevSpec));
4281 } else if (Specialization->isStaticDataMember() &&
4282 Specialization->isOutOfLine()) {
4283 Specialization->setAccess(VarTemplate->getAccess());
4286 return Specialization;
8154 ClassTemplateSpecializationDecl *Specialization = nullptr;
8219 Specialization = Partial;
8230 Specialization
8237 SetNestedNameSpecifier(*this, Specialization, SS);
8239 Specialization->setTemplateParameterListsInfo(Context,
8244 ClassTemplate->AddSpecialization(Specialization, InsertPos);
8251 CanonType = Context.getTypeDeclType(Specialization);
8274 << Context.getTypeDeclType(Specialization) << Range;
8286 Specialization->setSpecializationKind(TSK_ExplicitSpecialization);
8290 RecordDecl *Def = Specialization->getDefinition();
8298 Diag(TemplateNameLoc, diag::err_redefinition) << Specialization << Range;
8300 Specialization->setInvalidDecl();
8305 ProcessDeclAttributeList(S, Specialization, Attr);
8310 AddAlignmentAttributesForRecord(Specialization);
8311 AddMsStructLayoutForRecord(Specialization);
8315 Diag(Specialization->getLocation(), diag::err_module_private_specialization)
8330 Specialization->setTypeAsWritten(WrittenTy);
8331 Specialization->setTemplateKeywordLoc(TemplateKWLoc);
8342 Specialization->setLexicalDeclContext(CurContext);
8346 Specialization->startDefinition();
8359 CurContext->addDecl(Specialization);
8365 return Specialization;
8774 FunctionDecl *Specialization = nullptr;
8777 ExplicitTemplateArgs ? &Args : nullptr, FT, Specialization,
8794 IdentifyCUDATarget(Specialization,
8805 ConvertedTemplateArgs[Specialization] = std::move(Args);
8806 Candidates.addDecl(Specialization, I.getAccess());
8838 FunctionDecl *Specialization = cast<FunctionDecl>(*Result);
8841 = Specialization->getTemplateSpecializationInfo();
8848 Specialization->setLocation(FD->getLocation());
8849 Specialization->setLexicalDeclContext(FD->getLexicalDeclContext());
8856 Specialization->setConstexprKind(FD->getConstexprKind());
8869 Specialization->getPrimaryTemplate(),
8870 Specialization, FD->getLocation(),
8884 Specialization,
8901 if (Specialization->isDeleted() && !SpecInfo->isExplicitSpecialization() &&
8902 !Specialization->getCanonicalDecl()->isReferenced()) {
8905 Specialization->getCanonicalDecl() == Specialization &&
8908 Specialization->setDeletedAsWritten(false);
8912 MarkUnusedFileScopedDecl(Specialization);
8920 TemplateArgumentList(Specialization->getTemplateSpecializationArgs());
8922 Specialization->getPrimaryTemplate(), TemplArgs, /*InsertPos=*/nullptr,
8924 ExplicitTemplateArgs ? &ConvertedTemplateArgs[Specialization] : nullptr);
8932 inheritCUDATargetAttrs(FD, *Specialization->getPrimaryTemplate());
8937 Previous.addDecl(Specialization);
9401 ClassTemplateSpecializationDecl *Specialization = nullptr;
9421 Specialization = PrevDecl;
9422 Specialization->setLocation(TemplateNameLoc);
9433 if (!Specialization) {
9436 Specialization
9443 SetNestedNameSpecifier(*this, Specialization, SS);
9447 ClassTemplate->AddSpecialization(Specialization, InsertPos);
9461 Context.getTypeDeclType(Specialization));
9462 Specialization->setTypeAsWritten(WrittenTy);
9465 Specialization->setExternLoc(ExternLoc);
9466 Specialization->setTemplateKeywordLoc(TemplateLoc);
9467 Specialization->setBraceRange(SourceRange());
9469 bool PreviouslyDLLExported = Specialization->hasAttr<DLLExportAttr>();
9470 ProcessDeclAttributeList(S, Specialization, Attr);
9475 Specialization->setLexicalDeclContext(CurContext);
9476 CurContext->addDecl(Specialization);
9481 Specialization->setTemplateSpecializationKind(TSK);
9482 return Specialization;
9494 Specialization->getDefinition());
9496 InstantiateClassTemplateSpecialization(TemplateNameLoc, Specialization, TSK);
9498 MarkVTableUsed(TemplateNameLoc, Specialization, true);
9499 Specialization->setPointOfInstantiation(Def->getPointOfInstantiation());
9504 Specialization->getDefinition());
9515 if (!getDLLAttr(Def) && getDLLAttr(Specialization) &&
9522 getDLLAttr(Specialization)->clone(getASTContext()));
9532 !PreviouslyDLLExported && Specialization->hasAttr<DLLExportAttr>();
9545 // attribute, since the Def and Specialization will be the same in the
9547 // attribute to the Specialization; we just need to make it take effect.
9548 assert(Def == Specialization &&
9549 "Def and Specialization should match for implicit instantiation");
9563 Specialization->setTemplateSpecializationKind(TSK);
9568 Specialization->setTemplateSpecializationKind(TSK);
9571 return Specialization;
9934 FunctionDecl *Specialization = nullptr;
9939 R, Specialization, Info)) {
9954 IdentifyCUDATarget(Specialization,
9963 TemplateMatches.addDecl(Specialization, P.getAccess());
9966 FunctionDecl *Specialization = NonTemplateMatch;
9967 if (!Specialization) {
9980 Specialization = cast<FunctionDecl>(*Result);
9996 PDiag(DiagID) << Specialization->getType(),
9998 Specialization->getType()->getAs<FunctionProtoType>(),
9999 Specialization->getLocation(), FPT, D.getBeginLoc());
10006 if (Specialization->getTemplateSpecializationKind() == TSK_Undeclared) {
10009 << Specialization
10010 << (Specialization->getTemplateSpecializationKind() ==
10012 Diag(Specialization->getLocation(), diag::note_explicit_instantiation_here);
10016 FunctionDecl *PrevDecl = Specialization->getPreviousDecl();
10017 if (!PrevDecl && Specialization->isThisDeclarationADefinition())
10018 PrevDecl = Specialization;
10041 if (Specialization->hasAttr<InternalLinkageAttr>() &&
10043 if (auto *RD = dyn_cast<CXXRecordDecl>(Specialization->getDeclContext()))
10049 ProcessDeclAttributeList(S, Specialization, D.getDeclSpec().getAttributes());
10054 Specialization->hasAttr<DLLImportAttr>() &&
10058 Specialization->setTemplateSpecializationKind(TSK, D.getIdentifierLoc());
10060 if (Specialization->isDefined()) {
10063 Consumer.HandleTopLevelDecl(DeclGroupRef(Specialization));
10065 InstantiateFunctionDefinition(D.getIdentifierLoc(), Specialization);
10074 FunctionTemplateDecl *FunTmpl = Specialization->getPrimaryTemplate();
10080 << Specialization << D.getCXXScopeSpec().getRange();
10085 : Specialization->getInstantiatedFromMemberFunction(),