clang
15.0.0git
|
#include "clang/Sema/Template.h"
Public Types | |
enum | RewriteKind { RewriteKind::None, RewriteKind::RewriteSpaceshipAsEqualEqual } |
using | delayed_partial_spec_iterator = SmallVectorImpl< std::pair< ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl * > >::iterator |
using | delayed_var_partial_spec_iterator = SmallVectorImpl< std::pair< VarTemplateDecl *, VarTemplatePartialSpecializationDecl * > >::iterator |
Definition at line 463 of file Template.h.
using clang::TemplateDeclInstantiator::delayed_partial_spec_iterator = SmallVectorImpl<std::pair< ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *> >::iterator |
Definition at line 559 of file Template.h.
using clang::TemplateDeclInstantiator::delayed_var_partial_spec_iterator = SmallVectorImpl<std::pair< VarTemplateDecl *, VarTemplatePartialSpecializationDecl *> >::iterator |
Definition at line 562 of file Template.h.
|
strong |
Enumerator | |
---|---|
None | |
RewriteSpaceshipAsEqualEqual |
Definition at line 522 of file Template.h.
|
inline |
Definition at line 489 of file Template.h.
void TemplateDeclInstantiator::adjustForRewrite | ( | RewriteKind | RK, |
FunctionDecl * | Orig, | ||
QualType & | T, | ||
TypeSourceInfo *& | TInfo, | ||
DeclarationNameInfo & | NameInfo | ||
) |
Definition at line 3925 of file SemaTemplateInstantiateDecl.cpp.
References clang::ASTContext::BoolTy, clang::TypeLoc::castAs(), clang::Type::castAs(), clang::Sema::Context, clang::ASTContext::DeclarationNames, clang::TypeLoc::getAsAdjusted(), clang::DeclarationNameTable::getCXXOperatorName(), clang::Decl::getEndLoc(), clang::ASTContext::getFunctionType(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::TypeSourceInfo::getTypeLoc(), RewriteSpaceshipAsEqualEqual, clang::DeclarationNameInfo::setName(), and clang::FunctionTypeLoc::setParam().
Referenced by VisitCXXMethodDecl(), and VisitFunctionDecl().
|
inline |
Return an iterator to the beginning of the set of "delayed" partial specializations, which must be passed to InstantiateClassTemplatePartialSpecialization once the class definition has been completed.
Definition at line 568 of file Template.h.
|
inline |
Return an iterator to the end of the set of "delayed" partial specializations, which must be passed to InstantiateClassTemplatePartialSpecialization once the class definition has been completed.
Definition at line 580 of file Template.h.
|
inline |
Definition at line 572 of file Template.h.
|
inline |
Definition at line 584 of file Template.h.
|
inline |
Definition at line 551 of file Template.h.
|
inline |
Definition at line 545 of file Template.h.
References clang::Sema::CurrentInstantiationScope.
|
inline |
Definition at line 556 of file Template.h.
bool TemplateDeclInstantiator::InitFunctionInstantiation | ( | FunctionDecl * | New, |
FunctionDecl * | Tmpl | ||
) |
Initializes the common fields of an instantiation function declaration (New) from the corresponding fields of its template (Tmpl).
Definition at line 4612 of file SemaTemplateInstantiateDecl.cpp.
References clang::atTemplateBegin(), clang::atTemplateEnd(), clang::Sema::CodeSynthesisContexts, clang::Sema::Context, clang::EST_BasicNoexcept, clang::EST_DynamicNone, clang::EST_None, clang::EST_Unevaluated, clang::EST_Uninstantiated, clang::FunctionProtoType::ExtProtoInfo::ExceptionSpec, clang::Type::getAs(), clang::FunctionProtoType::getExtProtoInfo(), clang::ASTContext::getFunctionType(), clang::Sema::getLangOpts(), clang::ASTContext::getManglingNumber(), clang::FunctionType::getNoReturnAttr(), clang::FunctionProtoType::getParamTypes(), clang::FunctionType::getReturnType(), clang::ValueDecl::getType(), clang::FunctionProtoType::hasExceptionSpec(), clang::Sema::InstantiateAttrs(), clang::Sema::InstantiatingSpecializations, clang::FunctionDecl::isDefined(), clang::Decl::isImplicit(), clang::Decl::isInLocalScopeForInstantiation(), clang::Decl::setImplicit(), clang::ASTContext::setManglingNumber(), clang::ValueDecl::setType(), clang::FunctionProtoType::ExceptionSpecInfo::SourceDecl, clang::FunctionProtoType::ExceptionSpecInfo::SourceTemplate, clang::Sema::SubstExceptionSpec(), clang::Sema::TemplateInstCallbacks, and clang::FunctionProtoType::ExceptionSpecInfo::Type.
Referenced by InitMethodInstantiation(), and VisitFunctionDecl().
bool TemplateDeclInstantiator::InitMethodInstantiation | ( | CXXMethodDecl * | New, |
CXXMethodDecl * | Tmpl | ||
) |
Initializes common fields of an instantiated method declaration (New) from the corresponding fields of its template (Tmpl).
Definition at line 4702 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::AdjustDestructorExceptionSpec(), clang::Decl::getAccess(), clang::Sema::getLangOpts(), InitFunctionInstantiation(), clang::FunctionDecl::isVirtualAsWritten(), clang::Decl::setAccess(), and clang::FunctionDecl::setVirtualAsWritten().
Referenced by VisitCXXMethodDecl().
ClassTemplatePartialSpecializationDecl * TemplateDeclInstantiator::InstantiateClassTemplatePartialSpecialization | ( | ClassTemplateDecl * | ClassTemplate, |
ClassTemplatePartialSpecializationDecl * | PartialSpec | ||
) |
Instantiate the declaration of a class template partial specialization.
ClassTemplate | the (instantiated) class template that is partially |
PartialSpec | the (uninstantiated) class template partial specialization that we are instantiating. |
Definition at line 4058 of file SemaTemplateInstantiateDecl.cpp.
References clang::ClassTemplateDecl::AddPartialSpecialization(), clang::ASTTemplateArgumentListInfo::arguments(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::CheckTemplatePartialSpecialization(), clang::Sema::CheckTemplatePartialSpecializationArgs(), clang::Sema::Context, clang::ClassTemplatePartialSpecializationDecl::Create(), clang::Sema::Diag(), clang::ClassTemplateDecl::findPartialSpecialization(), clang::TypeDecl::getBeginLoc(), clang::Decl::getLocation(), clang::TagDecl::getTagKind(), clang::ClassTemplatePartialSpecializationDecl::getTemplateArgsAsWritten(), clang::ClassTemplatePartialSpecializationDecl::getTemplateParameters(), clang::ASTContext::getTemplateSpecializationType(), clang::ASTContext::getTemplateSpecializationTypeInfo(), clang::TypeSourceInfo::getType(), clang::ASTContext::getTypeDeclType(), clang::ASTTemplateArgumentListInfo::LAngleLoc, clang::ASTTemplateArgumentListInfo::RAngleLoc, clang::ClassTemplatePartialSpecializationDecl::setInstantiatedFromMember(), clang::ClassTemplateSpecializationDecl::setTypeAsWritten(), clang::TemplateArgumentListInfo::size(), SubstQualifier(), clang::Sema::SubstTemplateArguments(), and SubstTemplateParams().
Definition at line 1488 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::ActOnEnumBody(), clang::Sema::CheckEnumConstant(), clang::Sema::ConstantEvaluated, clang::Sema::CurrentInstantiationScope, clang::EnumDecl::enumerators(), clang::Decl::getDeclContext(), clang::Decl::getLocation(), clang::Sema::InstantiateAttrs(), clang::LocalInstantiationScope::InstantiatedLocal(), clang::DeclContext::isFunctionOrMethod(), isInvalid(), clang::Decl::setAccess(), clang::Decl::setInvalidDecl(), and clang::Sema::SubstExpr().
Referenced by clang::Sema::InstantiateEnum().
Decl * TemplateDeclInstantiator::InstantiateTypedefNameDecl | ( | TypedefNameDecl * | D, |
bool | IsTypeAlias | ||
) |
Definition at line 932 of file SemaTemplateInstantiateDecl.cpp.
References clang::Type::castAs(), clang::Sema::Context, clang::TypedefDecl::Create(), clang::TypeAliasDecl::Create(), clang::Sema::FindInstantiatedDecl(), clang::Decl::getAccess(), clang::Type::getAs(), clang::TypeDecl::getBeginLoc(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::NamedDecl::getIdentifier(), clang::Decl::getLocation(), clang::QualType::getNonReferenceType(), getPreviousDeclForInstantiation(), clang::Sema::getSourceManager(), clang::Sema::getStdNamespace(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::TypeSourceInfo::getType(), clang::TagDecl::getTypedefNameForAnonDecl(), clang::TypedefNameDecl::getTypeSourceInfo(), clang::DecltypeType::getUnderlyingExpr(), clang::TypedefNameDecl::getUnderlyingType(), clang::TagDecl::hasNameForLinkage(), clang::Sema::inferGslPointerAttribute(), clang::Sema::InstantiateAttrs(), clang::ASTContext::IntTy, clang::Sema::isIncompatibleTypedef(), clang::Type::isInstantiationDependentType(), clang::SourceManager::isInSystemHeader(), clang::Decl::isReferenced(), clang::Type::isReferenceType(), clang::IdentifierInfo::isStr(), clang::Type::isVariablyModifiedType(), clang::Sema::MarkDeclarationsReferencedInType(), clang::Decl::setAccess(), clang::Decl::setInvalidDecl(), clang::Redeclarable< decl_type >::setPreviousDecl(), clang::Decl::setReferenced(), clang::TagDecl::setTypedefNameForAnonDecl(), and clang::Sema::SubstType().
VarTemplatePartialSpecializationDecl * TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization | ( | VarTemplateDecl * | VarTemplate, |
VarTemplatePartialSpecializationDecl * | PartialSpec | ||
) |
Instantiate the declaration of a variable template partial specialization.
VarTemplate | the (instantiated) variable template that is partially specialized by the instantiation of PartialSpec . |
PartialSpec | the (uninstantiated) variable template partial specialization that we are instantiating. |
Definition at line 4185 of file SemaTemplateInstantiateDecl.cpp.
References clang::VarTemplateDecl::AddPartialSpecialization(), clang::ASTTemplateArgumentListInfo::arguments(), clang::Sema::BuildVariableInstantiation(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::CheckTemplatePartialSpecialization(), clang::Sema::CheckTemplatePartialSpecializationArgs(), clang::Sema::Context, clang::VarTemplatePartialSpecializationDecl::Create(), clang::Sema::Diag(), clang::VarTemplateDecl::findPartialSpecialization(), clang::NamedDecl::getDeclName(), clang::DeclaratorDecl::getInnerLocStart(), clang::Decl::getLocation(), clang::VarDecl::getStorageClass(), clang::VarTemplatePartialSpecializationDecl::getTemplateArgsAsWritten(), clang::VarTemplatePartialSpecializationDecl::getTemplateParameters(), clang::ASTContext::getTemplateSpecializationType(), clang::ASTContext::getTemplateSpecializationTypeInfo(), clang::TypeSourceInfo::getType(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::DeclaratorDecl::getTypeSpecStartLoc(), clang::Type::isFunctionType(), clang::VarDecl::isStaticDataMember(), clang::ASTTemplateArgumentListInfo::LAngleLoc, clang::ASTTemplateArgumentListInfo::RAngleLoc, clang::VarTemplatePartialSpecializationDecl::setInstantiatedFromMember(), clang::VarTemplateSpecializationDecl::setTypeAsWritten(), clang::TemplateArgumentListInfo::size(), SubstQualifier(), clang::Sema::SubstTemplateArguments(), SubstTemplateParams(), and clang::Sema::SubstType().
bool TemplateDeclInstantiator::SubstDefaultedFunction | ( | FunctionDecl * | New, |
FunctionDecl * | Tmpl | ||
) |
Definition at line 4718 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::Context, clang::FunctionDecl::DefaultedFunctionInfo::Create(), clang::Sema::FindInstantiatedDecl(), clang::Decl::getAccess(), clang::FunctionDecl::getDefaultedFunctionInfo(), clang::Decl::getLocation(), clang::DeclAccessPair::make(), clang::Sema::SetDeclDefaulted(), and clang::FunctionDecl::setDefaultedFunctionInfo().
Referenced by VisitCXXMethodDecl(), and VisitFunctionDecl().
TypeSourceInfo * TemplateDeclInstantiator::SubstFunctionType | ( | FunctionDecl * | D, |
SmallVectorImpl< ParmVarDecl * > & | Params | ||
) |
Definition at line 4311 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::BuildParmVarDeclForTypedef(), clang::TypeLoc::castAs(), clang::Sema::CurrentInstantiationScope, clang::TypeLoc::getAs(), clang::NamedDecl::getDeclName(), clang::Decl::getLocation(), clang::Sema::getNumArgumentsInExpansion(), clang::FunctionTypeLoc::getParam(), clang::FunctionProtoType::getParamType(), clang::ValueDecl::getType(), clang::TypeSourceInfo::getTypeLoc(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::DeclaratorDecl::getTypeSpecStartLoc(), clang::TypeLoc::IgnoreParens(), clang::VarDecl::isParameterPack(), clang::FunctionDecl::parameters(), clang::Sema::SubstFunctionDeclType(), and clang::Sema::SubstParmTypes().
Referenced by VisitCXXMethodDecl(), and VisitFunctionDecl().
bool TemplateDeclInstantiator::SubstQualifier | ( | const DeclaratorDecl * | OldDecl, |
DeclaratorDecl * | NewDecl | ||
) |
Definition at line 72 of file SemaTemplateInstantiateDecl.cpp.
References SubstQualifier().
Referenced by InstantiateClassTemplatePartialSpecialization(), and InstantiateVarTemplatePartialSpecialization().
Definition at line 77 of file SemaTemplateInstantiateDecl.cpp.
References SubstQualifier().
TemplateParameterList * TemplateDeclInstantiator::SubstTemplateParams | ( | TemplateParameterList * | L | ) |
Instantiates a nested template parameter list in the current instantiation context.
L | The parameter list to instantiate |
Definition at line 4001 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::Context, clang::TemplateParameterList::Create(), clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::Decl::isInvalidDecl(), clang::ActionResult< PtrTy, CompressInvalid >::isUsable(), P, clang::TemplateParameterList::size(), clang::Sema::SubstExpr(), clang::Sema::Unevaluated, and clang::declvisitor::Base< std::add_pointer, TemplateDeclInstantiator, Decl * >::Visit().
Referenced by InstantiateClassTemplatePartialSpecialization(), InstantiateVarTemplatePartialSpecialization(), clang::Sema::SubstTemplateParams(), and VisitCXXMethodDecl().
Decl * TemplateDeclInstantiator::VisitBaseUsingDecls | ( | BaseUsingDecl * | D, |
BaseUsingDecl * | Inst, | ||
LookupResult * | Lookup | ||
) |
Definition at line 3107 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::BuildUsingShadowDecl(), clang::Sema::CheckUsingShadowDecl(), clang::Sema::Context, clang::UnresolvedUsingIfExistsDecl::Create(), clang::Sema::CurrentInstantiationScope, clang::Sema::FindInstantiatedDecl(), getPreviousDeclForInstantiation(), clang::LocalInstantiationScope::InstantiatedLocal(), clang::DeclContext::isFunctionOrMethod(), clang::ASTContext::setInstantiatedFromUsingShadowDecl(), and clang::BaseUsingDecl::shadows().
Decl * TemplateDeclInstantiator::VisitCXXMethodDecl | ( | CXXMethodDecl * | D, |
TemplateParameterList * | TemplateParams, | ||
Optional< const ASTTemplateArgumentListInfo * > | ClassScopeSpecializationArgs = llvm::None , |
||
RewriteKind | RK = RewriteKind::None |
||
) |
Definition at line 2327 of file SemaTemplateInstantiateDecl.cpp.
References clang::DeclContext::addDecl(), adjustForRewrite(), adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::TemplateParameterList::asArray(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckFriendAccess(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckPureMethod(), clang::Sema::CompleteMemberSpecialization(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::TemplateParameterList::Create(), clang::FunctionTemplateDecl::Create(), clang::CXXMethodDecl::Create(), clang::CXXConstructorDecl::Create(), clang::CXXDestructorDecl::Create(), clang::CXXConversionDecl::Create(), clang::TemplateArgumentList::CreateCopy(), clang::ASTContext::DeclarationNames, clang::Sema::FindInstantiatedContext(), clang::Sema::FindInstantiatedDecl(), clang::FunctionTemplateDecl::findSpecialization(), clang::Decl::FOK_None, clang::Sema::ForExternalRedeclaration, clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::Decl::getAccess(), clang::ASTContext::getCanonicalType(), clang::FunctionDecl::getConstexprKind(), clang::DeclarationNameTable::getCXXDestructorName(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::FunctionDecl::getDependentSpecializationInfo(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::Decl::getEndLoc(), clang::Decl::getFriendObjectKind(), clang::ExplicitSpecifier::getFromDecl(), clang::DeclaratorDecl::getInnerLocStart(), clang::MultiLevelTemplateArgumentList::getInnermost(), clang::TemplateParameterList::getLAngleLoc(), clang::Decl::getLexicalDeclContext(), clang::Decl::getLocation(), clang::CXXMethodDecl::getMethodQualifiers(), clang::FunctionDecl::getNameInfo(), clang::DeclaratorDecl::getNumTemplateParameterLists(), clang::CXXMethodDecl::getParent(), clang::Redeclarable< decl_type >::getPreviousDecl(), clang::DeclaratorDecl::getQualifierLoc(), clang::TemplateParameterList::getRAngleLoc(), clang::TemplateParameterList::getRequiresClause(), clang::TemplateParameterList::getTemplateLoc(), clang::DeclaratorDecl::getTemplateParameterList(), clang::FunctionDecl::getTemplateSpecializationArgsAsWritten(), clang::DeclaratorDecl::getTrailingRequiresClause(), clang::ASTContext::getTrivialTypeSourceInfo(), clang::ValueDecl::getType(), clang::ASTContext::getTypeDeclType(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::Decl::hasAttr(), InitMethodInstantiation(), instantiateExplicitSpecifier(), clang::FunctionDecl::isDeletedAsWritten(), clang::FunctionDecl::isExplicitlyDefaulted(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineSpecified(), clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::ExplicitSpecifier::isInvalid(), clang::Decl::isInvalidDecl(), clang::FunctionDecl::isOutOfLine(), clang::FunctionDecl::isPure(), clang::CXXMethodDecl::isStatic(), clang::FunctionDecl::isThisDeclarationADefinition(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::DeclContext::makeDeclVisibleInContext(), clang::Sema::MarkFunctionReferenced(), None, P, Previous, clang::Sema::RequireCompleteDeclContext(), clang::SC_None, clang::SC_Static, clang::Decl::setAccess(), clang::Sema::SetDeclDeleted(), clang::NamedDecl::setDeclName(), clang::FunctionDecl::setDescribedFunctionTemplate(), clang::FunctionDecl::setFunctionTemplateSpecialization(), clang::FunctionDecl::setImplicitlyInline(), clang::FunctionDecl::setIneligibleOrNotSelected(), clang::FunctionDecl::setInstantiationOfMemberFunction(), clang::Decl::setInvalidDecl(), clang::Decl::setLexicalDeclContext(), clang::Decl::setObjectOfFriendDecl(), clang::FunctionDecl::setParams(), clang::DeclaratorDecl::setQualifierInfo(), clang::FunctionDecl::setRangeEnd(), clang::DeclaratorDecl::setTemplateParameterListsInfo(), clang::DeclaratorDecl::setTypeSourceInfo(), clang::TemplateParameterList::size(), clang::Sema::SubstDeclarationNameInfo(), SubstDefaultedFunction(), clang::Sema::SubstExpr(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), clang::Sema::SubstTemplateArguments(), SubstTemplateParams(), clang::TSK_ImplicitInstantiation, clang::Sema::Unevaluated, and clang::FunctionDecl::UsesFPIntrin().
Referenced by clang::Sema::SubstSpaceshipAsEqualEqual().
Definition at line 3908 of file SemaTemplateInstantiateDecl.cpp.
Decl * TemplateDeclInstantiator::VisitFunctionDecl | ( | FunctionDecl * | D, |
TemplateParameterList * | TemplateParams, | ||
RewriteKind | FunctionRewriteKind = RewriteKind::None |
||
) |
Normal class members are of more specific types and therefore don't make it here.
This function serves three purposes: 1) instantiating function templates 2) substituting friend declarations 3) substituting deduction guide declarations for nested class templates
Definition at line 1996 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::adjustContextForLocalExternDecl(), adjustForRewrite(), adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::TemplateParameterList::asArray(), clang::Sema::CheckConstraintExpression(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::CheckTemplateParameterList(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::TemplateParameterList::Create(), clang::FunctionTemplateDecl::Create(), clang::CXXDeductionGuideDecl::Create(), clang::FunctionDecl::Create(), clang::TemplateArgumentList::CreateCopy(), clang::Sema::FilterLookupForScope(), clang::Sema::FindInstantiatedContext(), clang::Sema::FindInstantiatedDecl(), clang::FunctionTemplateDecl::findSpecialization(), clang::Decl::FOK_None, clang::Sema::ForExternalRedeclaration, clang::Sema::forRedeclarationInCurContext(), clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::Decl::getAccess(), clang::FunctionDecl::getCanonicalDecl(), clang::FunctionDecl::getConstexprKind(), clang::Decl::getDeclContext(), clang::FunctionDecl::getDependentSpecializationInfo(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::SourceRange::getEnd(), clang::Decl::getFriendObjectKind(), clang::DeclaratorDecl::getInnerLocStart(), clang::MultiLevelTemplateArgumentList::getInnermost(), clang::TemplateParameterList::getLAngleLoc(), clang::Decl::getLocation(), clang::FunctionDecl::getNameInfo(), clang::FunctionTemplateDecl::getPreviousDecl(), clang::DeclaratorDecl::getQualifierLoc(), clang::TemplateParameterList::getRAngleLoc(), clang::DeclContext::getRedeclContext(), clang::TemplateParameterList::getRequiresClause(), clang::FunctionDecl::getSourceRange(), clang::FunctionDecl::getStorageClass(), clang::TemplateParameterList::getTemplateLoc(), clang::TemplateDecl::getTemplateParameters(), clang::FunctionDecl::getTemplateSpecializationArgsAsWritten(), clang::DeclaratorDecl::getTrailingRequiresClause(), clang::NestedNameSpecifierLoc::hasQualifier(), clang::FunctionDecl::hasWrittenPrototype(), clang::Decl::IDNS_Ordinary, InitFunctionInstantiation(), instantiateExplicitSpecifier(), clang::FunctionDecl::isDeleted(), clang::FunctionDecl::isExplicitlyDefaulted(), clang::DeclContext::isFileContext(), clang::DeclContext::isFunctionOrMethod(), clang::Decl::isInIdentifierNamespace(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineSpecified(), clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::ExplicitSpecifier::isInvalid(), clang::Decl::isLocalExternDecl(), clang::FunctionDecl::isOutOfLine(), clang::DeclContext::isRecord(), clang::FunctionDecl::isThisDeclarationADefinition(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::Sema::LookupRedeclarationWithLinkage, clang::DeclContext::makeDeclVisibleInContext(), None, P, clang::Sema::PendingLocalImplicitInstantiations, Previous, clang::Sema::SetDeclDeleted(), clang::RedeclarableTemplateDecl::setInstantiatedFromMemberTemplate(), clang::Decl::setLexicalDeclContext(), clang::Decl::setNonMemberOperator(), clang::TemplateParameterList::size(), clang::Sema::SubstDeclarationNameInfo(), SubstDefaultedFunction(), clang::Sema::SubstExpr(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), clang::Sema::SubstTemplateArguments(), clang::Sema::TPC_FriendFunctionTemplate, clang::Sema::TPC_FriendFunctionTemplateDefinition, clang::TSK_ImplicitInstantiation, clang::Sema::Unevaluated, and clang::FunctionDecl::UsesFPIntrin().
Referenced by clang::Sema::SubstSpaceshipAsEqualEqual().
Decl * TemplateDeclInstantiator::VisitVarDecl | ( | VarDecl * | D, |
bool | InstantiatingVarTemplate, | ||
ArrayRef< BindingDecl * > * | Bindings = nullptr |
||
) |
Definition at line 1094 of file SemaTemplateInstantiateDecl.cpp.
Decl * TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl | ( | VarTemplateDecl * | VarTemplate, |
VarDecl * | FromVar, | ||
const TemplateArgumentListInfo & | TemplateArgsInfo, | ||
ArrayRef< TemplateArgument > | Converted, | ||
VarTemplateSpecializationDecl * | PrevDecl = nullptr |
||
) |
Definition at line 3790 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::CheckSpecializationInstantiationRedecl(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::FindInstantiatedDecl(), clang::VarTemplateDecl::findSpecialization(), clang::Decl::getLocation(), clang::VarTemplateSpecializationDecl::getPointOfInstantiation(), clang::VarTemplateSpecializationDecl::getSpecializationKind(), clang::VarTemplateSpecializationDecl::getSpecializedTemplate(), clang::VarTemplateSpecializationDecl::getTemplateArgsInfo(), clang::TemplateArgumentListInfo::setLAngleLoc(), clang::TemplateArgumentListInfo::setRAngleLoc(), and clang::Sema::SubstTemplateArguments().
Referenced by clang::Sema::BuildVarTemplateInstantiation(), and clang::Sema::InstantiateVariableDefinition().