clang 17.0.0git
|
#include "clang/Sema/Template.h"
Public Types | |
enum class | RewriteKind { None , 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 527 of file Template.h.
using clang::TemplateDeclInstantiator::delayed_partial_spec_iterator = SmallVectorImpl<std::pair< ClassTemplateDecl *, ClassTemplatePartialSpecializationDecl *> >::iterator |
Definition at line 631 of file Template.h.
using clang::TemplateDeclInstantiator::delayed_var_partial_spec_iterator = SmallVectorImpl<std::pair< VarTemplateDecl *, VarTemplatePartialSpecializationDecl *> >::iterator |
Definition at line 634 of file Template.h.
|
strong |
Enumerator | |
---|---|
None | |
RewriteSpaceshipAsEqualEqual |
Definition at line 595 of file Template.h.
|
inline |
Definition at line 554 of file Template.h.
void TemplateDeclInstantiator::adjustForRewrite | ( | RewriteKind | RK, |
FunctionDecl * | Orig, | ||
QualType & | T, | ||
TypeSourceInfo *& | TInfo, | ||
DeclarationNameInfo & | NameInfo | ||
) |
Definition at line 4018 of file SemaTemplateInstantiateDecl.cpp.
References clang::ASTContext::BoolTy, clang::Type::castAs(), clang::TypeLoc::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 641 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
|
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 653 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
|
inline |
Definition at line 645 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
|
inline |
Definition at line 657 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
|
inline |
Definition at line 624 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
|
inline |
Definition at line 618 of file Template.h.
References clang::Sema::CurrentInstantiationScope.
Referenced by clang::Sema::InstantiateClass().
|
inline |
Definition at line 563 of file Template.h.
|
inline |
Definition at line 629 of file Template.h.
Referenced by clang::Sema::InstantiateClass().
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 4641 of file SemaTemplateInstantiateDecl.cpp.
References clang::atTemplateBegin(), clang::atTemplateEnd(), clang::Sema::CodeSynthesisContexts, clang::Sema::Context, clang::Definition, 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 4731 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 4142 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().
Referenced by clang::Sema::InstantiateClass().
Definition at line 1515 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::ActOnEnumBody(), clang::Sema::CheckEnumConstant(), clang::Sema::ConstantEvaluated, clang::Sema::CurrentInstantiationScope, Enum, 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 956 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::Invalid, 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 4267 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().
Referenced by clang::Sema::InstantiateClass().
|
inline |
Definition at line 560 of file Template.h.
Referenced by clang::Sema::InstantiateClass(), and clang::Sema::SubstTemplateParams().
bool TemplateDeclInstantiator::SubstDefaultedFunction | ( | FunctionDecl * | New, |
FunctionDecl * | Tmpl | ||
) |
Definition at line 4747 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 4396 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 73 of file SemaTemplateInstantiateDecl.cpp.
Referenced by InstantiateClassTemplatePartialSpecialization(), and InstantiateVarTemplatePartialSpecialization().
Definition at line 78 of file SemaTemplateInstantiateDecl.cpp.
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 4094 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::Context, clang::TemplateParameterList::Create(), clang::TemplateParameterList::getLAngleLoc(), clang::TemplateParameterList::getRAngleLoc(), clang::TemplateParameterList::getRequiresClause(), clang::TemplateParameterList::getTemplateLoc(), clang::Invalid, clang::Decl::isInvalidDecl(), P, clang::TemplateParameterList::size(), and clang::declvisitor::Base< Ptr, ImplClass, RetTy >::Visit().
Referenced by InstantiateClassTemplatePartialSpecialization(), InstantiateVarTemplatePartialSpecialization(), clang::Sema::SubstTemplateParams(), and VisitCXXMethodDecl().
Decl * TemplateDeclInstantiator::VisitBaseUsingDecls | ( | BaseUsingDecl * | D, |
BaseUsingDecl * | Inst, | ||
LookupResult * | Lookup | ||
) |
Definition at line 3193 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, | ||
std::optional< const ASTTemplateArgumentListInfo * > | ClassScopeSpecializationArgs = std::nullopt , |
||
RewriteKind | RK = RewriteKind::None |
||
) |
Definition at line 2390 of file SemaTemplateInstantiateDecl.cpp.
References clang::DeclContext::addDecl(), adjustForRewrite(), adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::TemplateParameterList::asArray(), 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::CXXDestructorDecl::Create(), clang::CXXConversionDecl::Create(), clang::CXXConstructorDecl::Create(), clang::CXXMethodDecl::Create(), clang::FunctionTemplateDecl::Create(), clang::TemplateParameterList::Create(), clang::TemplateArgumentList::CreateCopy(), clang::Sema::CreateRecoveryExpr(), 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::Stmt::getBeginLoc(), 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::Stmt::getEndLoc(), clang::Decl::getFriendObjectKind(), clang::ExplicitSpecifier::getFromDecl(), clang::DeclaratorDecl::getInnerLocStart(), clang::MultiLevelTemplateArgumentList::getInnermost(), clang::TemplateParameterList::getLAngleLoc(), clang::Decl::getLexicalDeclContext(), clang::Decl::getLocation(), 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::Expr::getType(), clang::ASTContext::getTypeDeclType(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::Decl::hasAttr(), InitMethodInstantiation(), instantiateExplicitSpecifier(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::FunctionDecl::isDeletedAsWritten(), clang::FunctionDecl::isExplicitlyDefaulted(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineSpecified(), clang::Decl::isInLocalScopeForInstantiation(), clang::ExplicitSpecifier::isInvalid(), clang::Decl::isInvalidDecl(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::FunctionDecl::isOutOfLine(), clang::FunctionDecl::isPure(), clang::CXXMethodDecl::isStatic(), clang::FunctionDecl::isThisDeclarationADefinition(), clang::ActionResult< PtrTy, CompressInvalid >::isUsable(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), 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(), clang::Sema::SubstDefaultArgument(), SubstDefaultedFunction(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), clang::Sema::SubstTemplateArguments(), SubstTemplateParams(), clang::TSK_ImplicitInstantiation, and clang::FunctionDecl::UsesFPIntrin().
Referenced by clang::Sema::SubstSpaceshipAsEqualEqual().
Definition at line 4001 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 and local function declarations 3) substituting deduction guide declarations for nested class templates
Definition at line 2028 of file SemaTemplateInstantiateDecl.cpp.
References clang::Sema::adjustContextForLocalExternDecl(), adjustForRewrite(), adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::TemplateParameterList::asArray(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::CheckTemplateParameterList(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::FunctionTemplateDecl::Create(), clang::CXXDeductionGuideDecl::Create(), clang::FunctionDecl::Create(), clang::TemplateParameterList::Create(), clang::TemplateArgumentList::CreateCopy(), clang::Sema::CreateRecoveryExpr(), clang::Sema::CurContext, clang::Sema::FilterLookupForScope(), clang::Sema::FindInstantiatedContext(), clang::Sema::FindInstantiatedDecl(), clang::FunctionTemplateDecl::findSpecialization(), clang::Decl::FOK_None, clang::Sema::ForExternalRedeclaration, clang::Sema::forRedeclarationInCurContext(), clang::FunctionDecl::FriendConstraintRefersToEnclosingTemplate(), clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::Decl::getAccess(), clang::Stmt::getBeginLoc(), clang::FunctionDecl::getCanonicalDecl(), clang::FunctionDecl::getConstexprKind(), clang::Decl::getDeclContext(), clang::FunctionDecl::getDependentSpecializationInfo(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::SourceRange::getEnd(), clang::Stmt::getEndLoc(), 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::Expr::getType(), 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::ExplicitSpecifier::isInvalid(), clang::Decl::isLocalExternDecl(), clang::FunctionDecl::isOutOfLine(), clang::DeclContext::isRecord(), clang::FunctionDecl::isThisDeclarationADefinition(), clang::ActionResult< PtrTy, CompressInvalid >::isUsable(), 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(), clang::Sema::SubstDefaultArgument(), SubstDefaultedFunction(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), clang::Sema::SubstTemplateArguments(), clang::Sema::TPC_FriendFunctionTemplate, clang::Sema::TPC_FriendFunctionTemplateDefinition, clang::TSK_ImplicitInstantiation, and clang::FunctionDecl::UsesFPIntrin().
Referenced by clang::Sema::SubstSpaceshipAsEqualEqual().
Decl * TemplateDeclInstantiator::VisitVarDecl | ( | VarDecl * | D, |
bool | InstantiatingVarTemplate, | ||
ArrayRef< BindingDecl * > * | Bindings = nullptr |
||
) |
Definition at line 1118 of file SemaTemplateInstantiateDecl.cpp.
References VisitVarDecl().
Referenced by VisitVarDecl().
Decl * TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl | ( | VarTemplateDecl * | VarTemplate, |
VarDecl * | FromVar, | ||
const TemplateArgumentListInfo & | TemplateArgsInfo, | ||
ArrayRef< TemplateArgument > | Converted, | ||
VarTemplateSpecializationDecl * | PrevDecl = nullptr |
||
) |
Definition at line 3877 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(), clang::Sema::SubstTemplateArguments(), and VisitVarTemplateSpecializationDecl().
Referenced by clang::Sema::BuildVarTemplateInstantiation(), clang::Sema::InstantiateVariableDefinition(), and VisitVarTemplateSpecializationDecl().