clang API Documentation

Public Types | Public Member Functions
clang::TemplateDeclInstantiator Class Reference

#include <Template.h>

Inheritance diagram for clang::TemplateDeclInstantiator:
Inheritance graph
[legend]
Collaboration diagram for clang::TemplateDeclInstantiator:
Collaboration graph
[legend]

List of all members.

Public Types

typedef SmallVectorImpl
< std::pair< ClassTemplateDecl
*, ClassTemplatePartialSpecializationDecl * >
>::iterator 
delayed_partial_spec_iterator

Public Member Functions

 TemplateDeclInstantiator (Sema &SemaRef, DeclContext *Owner, const MultiLevelTemplateArgumentList &TemplateArgs)
DeclVisitTranslationUnitDecl (TranslationUnitDecl *D)
DeclVisitLabelDecl (LabelDecl *D)
DeclVisitNamespaceDecl (NamespaceDecl *D)
DeclVisitNamespaceAliasDecl (NamespaceAliasDecl *D)
DeclVisitTypedefDecl (TypedefDecl *D)
DeclVisitTypeAliasDecl (TypeAliasDecl *D)
DeclVisitTypeAliasTemplateDecl (TypeAliasTemplateDecl *D)
DeclVisitVarDecl (VarDecl *D)
DeclVisitAccessSpecDecl (AccessSpecDecl *D)
DeclVisitFieldDecl (FieldDecl *D)
DeclVisitMSPropertyDecl (MSPropertyDecl *D)
DeclVisitIndirectFieldDecl (IndirectFieldDecl *D)
DeclVisitStaticAssertDecl (StaticAssertDecl *D)
DeclVisitEnumDecl (EnumDecl *D)
DeclVisitEnumConstantDecl (EnumConstantDecl *D)
DeclVisitFriendDecl (FriendDecl *D)
DeclVisitFunctionDecl (FunctionDecl *D, TemplateParameterList *TemplateParams=0)
DeclVisitCXXRecordDecl (CXXRecordDecl *D)
DeclVisitCXXMethodDecl (CXXMethodDecl *D, TemplateParameterList *TemplateParams=0, bool IsClassScopeSpecialization=false)
DeclVisitCXXConstructorDecl (CXXConstructorDecl *D)
DeclVisitCXXDestructorDecl (CXXDestructorDecl *D)
DeclVisitCXXConversionDecl (CXXConversionDecl *D)
ParmVarDeclVisitParmVarDecl (ParmVarDecl *D)
DeclVisitClassTemplateDecl (ClassTemplateDecl *D)
DeclVisitClassTemplatePartialSpecializationDecl (ClassTemplatePartialSpecializationDecl *D)
DeclVisitFunctionTemplateDecl (FunctionTemplateDecl *D)
DeclVisitTemplateTypeParmDecl (TemplateTypeParmDecl *D)
DeclVisitNonTypeTemplateParmDecl (NonTypeTemplateParmDecl *D)
DeclVisitTemplateTemplateParmDecl (TemplateTemplateParmDecl *D)
DeclVisitUsingDirectiveDecl (UsingDirectiveDecl *D)
DeclVisitUsingDecl (UsingDecl *D)
DeclVisitUsingShadowDecl (UsingShadowDecl *D)
DeclVisitUnresolvedUsingValueDecl (UnresolvedUsingValueDecl *D)
DeclVisitUnresolvedUsingTypenameDecl (UnresolvedUsingTypenameDecl *D)
DeclVisitClassScopeFunctionSpecializationDecl (ClassScopeFunctionSpecializationDecl *D)
DeclVisitOMPThreadPrivateDecl (OMPThreadPrivateDecl *D)
DeclVisitDecl (Decl *D)
void enableLateAttributeInstantiation (Sema::LateInstantiatedAttrVec *LA)
void disableLateAttributeInstantiation ()
LocalInstantiationScopegetStartingScope () const
delayed_partial_spec_iterator delayed_partial_spec_begin ()
 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.
delayed_partial_spec_iterator delayed_partial_spec_end ()
 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.
TypeSourceInfoSubstFunctionType (FunctionDecl *D, SmallVectorImpl< ParmVarDecl * > &Params)
bool InitFunctionInstantiation (FunctionDecl *New, FunctionDecl *Tmpl)
 Initializes the common fields of an instantiation function declaration (New) from the corresponding fields of its template (Tmpl).
bool InitMethodInstantiation (CXXMethodDecl *New, CXXMethodDecl *Tmpl)
 Initializes common fields of an instantiated method declaration (New) from the corresponding fields of its template (Tmpl).
TemplateParameterListSubstTemplateParams (TemplateParameterList *List)
 Instantiates a nested template parameter list in the current instantiation context.
bool SubstQualifier (const DeclaratorDecl *OldDecl, DeclaratorDecl *NewDecl)
bool SubstQualifier (const TagDecl *OldDecl, TagDecl *NewDecl)
DeclInstantiateTypedefNameDecl (TypedefNameDecl *D, bool IsTypeAlias)
ClassTemplatePartialSpecializationDeclInstantiateClassTemplatePartialSpecialization (ClassTemplateDecl *ClassTemplate, ClassTemplatePartialSpecializationDecl *PartialSpec)
 Instantiate the declaration of a class template partial specialization.
void InstantiateEnumDefinition (EnumDecl *Enum, EnumDecl *Pattern)

Detailed Description

Definition at line 364 of file Template.h.


Member Typedef Documentation

Definition at line 464 of file Template.h.


Constructor & Destructor Documentation

clang::TemplateDeclInstantiator::TemplateDeclInstantiator ( Sema SemaRef,
DeclContext Owner,
const MultiLevelTemplateArgumentList TemplateArgs 
) [inline]

Definition at line 382 of file Template.h.


Member Function Documentation

delayed_partial_spec_iterator clang::TemplateDeclInstantiator::delayed_partial_spec_begin ( ) [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 470 of file Template.h.

Referenced by clang::Sema::InstantiateClass().

delayed_partial_spec_iterator clang::TemplateDeclInstantiator::delayed_partial_spec_end ( ) [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 478 of file Template.h.

Referenced by clang::Sema::InstantiateClass().

void clang::TemplateDeclInstantiator::disableLateAttributeInstantiation ( ) [inline]

Definition at line 453 of file Template.h.

Referenced by clang::Sema::InstantiateClass().

void clang::TemplateDeclInstantiator::enableLateAttributeInstantiation ( Sema::LateInstantiatedAttrVec LA) [inline]

Definition at line 447 of file Template.h.

References clang::Sema::CurrentInstantiationScope.

Referenced by clang::Sema::InstantiateClass().

LocalInstantiationScope* clang::TemplateDeclInstantiator::getStartingScope ( ) const [inline]

Definition at line 458 of file Template.h.

Referenced by clang::Sema::InstantiateClass().

bool TemplateDeclInstantiator::InitFunctionInstantiation ( FunctionDecl New,
FunctionDecl Tmpl 
)
bool TemplateDeclInstantiator::InitMethodInstantiation ( CXXMethodDecl New,
CXXMethodDecl Tmpl 
)

Initializes common fields of an instantiated method declaration (New) from the corresponding fields of its template (Tmpl).

Returns:
true if there was an error

Definition at line 2802 of file SemaTemplateInstantiateDecl.cpp.

References clang::Decl::getAccess(), InitFunctionInstantiation(), clang::FunctionDecl::isVirtualAsWritten(), clang::Decl::setAccess(), and clang::FunctionDecl::setVirtualAsWritten().

Referenced by VisitCXXMethodDecl().

ClassTemplatePartialSpecializationDecl * TemplateDeclInstantiator::InstantiateClassTemplatePartialSpecialization ( ClassTemplateDecl ClassTemplate,
ClassTemplatePartialSpecializationDecl PartialSpec 
)
void TemplateDeclInstantiator::InstantiateEnumDefinition ( EnumDecl Enum,
EnumDecl Pattern 
)
Decl * TemplateDeclInstantiator::InstantiateTypedefNameDecl ( TypedefNameDecl D,
bool  IsTypeAlias 
)
TypeSourceInfo * TemplateDeclInstantiator::SubstFunctionType ( FunctionDecl D,
SmallVectorImpl< ParmVarDecl * > &  Params 
)
bool TemplateDeclInstantiator::SubstQualifier ( const DeclaratorDecl OldDecl,
DeclaratorDecl NewDecl 
)
bool TemplateDeclInstantiator::SubstQualifier ( const TagDecl OldDecl,
TagDecl NewDecl 
)
TemplateParameterList * TemplateDeclInstantiator::SubstTemplateParams ( TemplateParameterList L)
Decl * TemplateDeclInstantiator::VisitAccessSpecDecl ( AccessSpecDecl D)
Decl * TemplateDeclInstantiator::VisitClassScopeFunctionSpecializationDecl ( ClassScopeFunctionSpecializationDecl D)
Decl * TemplateDeclInstantiator::VisitClassTemplateDecl ( ClassTemplateDecl D)

Definition at line 812 of file SemaTemplateInstantiateDecl.cpp.

References clang::DeclContext::addDecl(), clang::CXXScopeSpec::Adopt(), clang::Sema::CheckTemplateParameterList(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::CXXRecordDecl::Create(), clang::ClassTemplateDecl::Create(), clang::Sema::Diag(), clang::Sema::FindInstantiatedContext(), clang::Decl::FOK_None, clang::Sema::ForRedeclaration, clang::Decl::getAccess(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::Decl::getFriendObjectKind(), clang::NamedDecl::getIdentifier(), clang::ClassTemplateDecl::getInjectedClassNameSpecialization(), clang::ASTContext::getInjectedClassNameType(), clang::Decl::getLexicalDeclContext(), clang::Decl::getLocation(), clang::TypeDecl::getLocStart(), clang::DeclContext::getParent(), clang::ClassTemplateDecl::getPartialSpecializations(), clang::CXXRecordDecl::getPreviousDecl(), clang::TagDecl::getQualifierLoc(), clang::NestedNameSpecifierLoc::getSourceRange(), clang::TagDecl::getTagKind(), clang::ClassTemplateDecl::getTemplatedDecl(), clang::TemplateDecl::getTemplateParameters(), clang::DeclContext::isNamespace(), clang::Decl::isOutOfLine(), clang::IdentifierInfo::isStr(), clang::DeclContext::isTranslationUnit(), clang::DeclContext::lookup(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::DeclContext::makeDeclVisibleInContext(), NULL, clang::Decl::setAccess(), clang::RedeclarableTemplateDecl::setInstantiatedFromMemberTemplate(), clang::Decl::setLexicalDeclContext(), clang::Decl::setObjectOfFriendDecl(), clang::TagDecl::setQualifierInfo(), clang::Sema::SubstNestedNameSpecifierLoc(), SubstTemplateParams(), clang::Sema::TemplateParameterListsAreEqual(), clang::Sema::TPC_ClassTemplate, and clang::Sema::TPL_TemplateMatch.

Decl * TemplateDeclInstantiator::VisitClassTemplatePartialSpecializationDecl ( ClassTemplatePartialSpecializationDecl D)
Decl * TemplateDeclInstantiator::VisitCXXConstructorDecl ( CXXConstructorDecl D)

Definition at line 1741 of file SemaTemplateInstantiateDecl.cpp.

References VisitCXXMethodDecl().

Decl * TemplateDeclInstantiator::VisitCXXConversionDecl ( CXXConversionDecl D)

Definition at line 1749 of file SemaTemplateInstantiateDecl.cpp.

References VisitCXXMethodDecl().

Decl * TemplateDeclInstantiator::VisitCXXDestructorDecl ( CXXDestructorDecl D)

Definition at line 1745 of file SemaTemplateInstantiateDecl.cpp.

References VisitCXXMethodDecl().

Decl * TemplateDeclInstantiator::VisitCXXMethodDecl ( CXXMethodDecl D,
TemplateParameterList TemplateParams = 0,
bool  IsClassScopeSpecialization = false 
)

Definition at line 1453 of file SemaTemplateInstantiateDecl.cpp.

References clang::DeclContext::addDecl(), clang::MultiLevelTemplateArgumentList::addOuterTemplateArguments(), adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::Sema::CheckFriendAccess(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckPureMethod(), clang::LookupResult::clear(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::FunctionTemplateDecl::Create(), clang::CXXMethodDecl::Create(), clang::CXXConstructorDecl::Create(), clang::CXXDestructorDecl::Create(), clang::CXXConversionDecl::Create(), clang::TemplateArgumentList::CreateCopy(), clang::LookupResult::empty(), clang::Sema::FindInstantiatedContext(), clang::FunctionTemplateDecl::findSpecialization(), clang::Decl::FOK_None, clang::Sema::ForRedeclaration, clang::Decl::getAccess(), clang::Decl::getDeclContext(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::Decl::getFriendObjectKind(), clang::DeclaratorDecl::getInnerLocStart(), clang::MultiLevelTemplateArgumentList::getInnermost(), clang::Decl::getLexicalDeclContext(), clang::Decl::getLocation(), clang::Decl::getLocEnd(), clang::FunctionDecl::getNameInfo(), clang::FunctionDecl::getNumParams(), clang::DeclaratorDecl::getNumTemplateParameterLists(), clang::Redeclarable< decl_type >::getPreviousDecl(), clang::DeclaratorDecl::getQualifierLoc(), clang::DeclaratorDecl::getTemplateParameterList(), clang::QualType::IgnoreParens(), InitMethodInstantiation(), clang::FunctionDecl::isConstexpr(), clang::FunctionDecl::isDeletedAsWritten(), clang::FunctionDecl::isExplicitlyDefaulted(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineSpecified(), clang::FunctionDecl::isOutOfLine(), clang::FunctionDecl::isPure(), clang::LookupResult::isSingleTagDecl(), clang::CXXMethodDecl::isStatic(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::DeclContext::makeDeclVisibleInContext(), NULL, P, clang::FunctionDecl::param_begin(), clang::Sema::RequireCompleteDeclContext(), clang::SC_None, clang::SC_Static, clang::Decl::setAccess(), clang::Sema::SetDeclDefaulted(), clang::Sema::SetDeclDeleted(), clang::FunctionDecl::setImplicitlyInline(), clang::Decl::setLexicalDeclContext(), clang::Decl::setObjectOfFriendDecl(), clang::Sema::SubstDecl(), clang::Sema::SubstDeclarationNameInfo(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), clang::Sema::SubstParmTypes(), SubstTemplateParams(), and clang::TSK_ImplicitInstantiation.

Referenced by VisitClassScopeFunctionSpecializationDecl(), VisitCXXConstructorDecl(), VisitCXXConversionDecl(), VisitCXXDestructorDecl(), and VisitFunctionTemplateDecl().

Decl * TemplateDeclInstantiator::VisitCXXRecordDecl ( CXXRecordDecl D)
Decl* clang::TemplateDeclInstantiator::VisitDecl ( Decl D) [inline]
Decl * TemplateDeclInstantiator::VisitEnumConstantDecl ( EnumConstantDecl D)

Definition at line 808 of file SemaTemplateInstantiateDecl.cpp.

Decl * TemplateDeclInstantiator::VisitEnumDecl ( EnumDecl D)
Decl * TemplateDeclInstantiator::VisitFieldDecl ( FieldDecl D)
Decl * TemplateDeclInstantiator::VisitFriendDecl ( FriendDecl D)
Decl * TemplateDeclInstantiator::VisitFunctionDecl ( FunctionDecl D,
TemplateParameterList TemplateParams = 0 
)

Normal class members are of more specific types and therefore don't make it here. This function serves two purposes: 1) instantiating function templates 2) substituting friend declarations FIXME: preserve function definitions in case #2

Definition at line 1149 of file SemaTemplateInstantiateDecl.cpp.

References adjustFunctionTypeForInstantiation(), clang::CXXScopeSpec::Adopt(), clang::FunctionProtoType::arg_type_begin(), clang::FunctionProtoType::arg_type_end(), clang::Sema::BuildParmVarDeclForTypedef(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::computeDeclContext(), clang::Sema::Context, clang::FunctionTemplateDecl::Create(), clang::FunctionDecl::Create(), clang::TemplateArgumentList::CreateCopy(), clang::Sema::Diag(), clang::Sema::Diags, clang::Sema::FindInstantiatedContext(), clang::Sema::FindInstantiatedDecl(), clang::FunctionTemplateDecl::findSpecialization(), clang::Decl::FOK_None, clang::Sema::ForRedeclaration, clang::FunctionDecl::getCanonicalDecl(), clang::Decl::getDeclContext(), clang::NamedDecl::getDeclName(), clang::FunctionDecl::getDependentSpecializationInfo(), clang::FunctionDecl::getDescribedFunctionTemplate(), clang::DiagnosticsEngine::getDiagnosticLevel(), clang::Decl::getFriendObjectKind(), clang::DeclaratorDecl::getInnerLocStart(), clang::MultiLevelTemplateArgumentList::getInnermost(), clang::Sema::getLangOpts(), clang::Decl::getLocation(), clang::FunctionDecl::getMemberSpecializationInfo(), clang::FunctionDecl::getNameInfo(), clang::Redeclarable< decl_type >::getPreviousDecl(), clang::FunctionTemplateDecl::getPreviousDecl(), clang::DeclaratorDecl::getQualifierLoc(), clang::FunctionDecl::getStorageClass(), clang::FunctionDecl::getTemplateInstantiationPattern(), clang::FunctionDecl::getTemplateSpecializationKind(), clang::ValueDecl::getType(), clang::FunctionDecl::hasWrittenPrototype(), clang::Decl::IDNS_Ordinary, clang::DiagnosticsEngine::Ignored, clang::QualType::IgnoreParens(), InitFunctionInstantiation(), clang::FunctionDecl::isConstexpr(), clang::FunctionDecl::isDefaulted(), clang::FunctionDecl::isDefined(), clang::DeclContext::isFileContext(), clang::DeclContext::isFunctionOrMethod(), clang::Decl::isInIdentifierNamespace(), clang::FunctionDecl::isInlined(), clang::FunctionDecl::isInlineSpecified(), clang::FunctionDecl::isOutOfLine(), clang::FunctionDecl::isOverloadedOperator(), clang::DeclContext::isRecord(), clang::FunctionDecl::isThisDeclarationADefinition(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::DeclContext::makeDeclVisibleInContext(), P, Param, clang::Sema::PendingLocalImplicitInstantiations, clang::Redeclarable< decl_type >::redecls_begin(), clang::Redeclarable< decl_type >::redecls_end(), clang::FunctionDecl::setDescribedFunctionTemplate(), clang::FunctionDecl::setImplicitlyInline(), clang::RedeclarableTemplateDecl::setInstantiatedFromMemberTemplate(), clang::Decl::setInvalidDecl(), clang::Decl::setLexicalDeclContext(), clang::Decl::setNonMemberOperator(), clang::Decl::setObjectOfFriendDecl(), clang::DeclaratorDecl::setQualifierInfo(), clang::ParmVarDecl::setScopeInfo(), clang::Sema::Subst(), SubstFunctionType(), clang::Sema::SubstNestedNameSpecifierLoc(), clang::TSK_ImplicitInstantiation, and clang::TSK_Undeclared.

Referenced by VisitFunctionTemplateDecl().

Decl * TemplateDeclInstantiator::VisitFunctionTemplateDecl ( FunctionTemplateDecl D)
Decl * TemplateDeclInstantiator::VisitIndirectFieldDecl ( IndirectFieldDecl D)
Decl * TemplateDeclInstantiator::VisitLabelDecl ( LabelDecl D)
Decl * TemplateDeclInstantiator::VisitMSPropertyDecl ( MSPropertyDecl D)
Decl * TemplateDeclInstantiator::VisitNamespaceAliasDecl ( NamespaceAliasDecl D)
Decl * TemplateDeclInstantiator::VisitNamespaceDecl ( NamespaceDecl D)

Definition at line 167 of file SemaTemplateInstantiateDecl.cpp.

Decl * TemplateDeclInstantiator::VisitNonTypeTemplateParmDecl ( NonTypeTemplateParmDecl D)

Definition at line 1782 of file SemaTemplateInstantiateDecl.cpp.

References clang::AS_public, clang::TypeLoc::castAs(), clang::Sema::CheckNonTypeTemplateParameterType(), clang::Sema::CheckPackExpansion(), clang::Sema::CheckParameterPacksForExpansion(), clang::Sema::collectUnexpandedParameterPacks(), clang::Sema::Context, clang::NonTypeTemplateParmDecl::Create(), clang::Sema::CurrentInstantiationScope, clang::NamedDecl::getDeclName(), clang::NonTypeTemplateParmDecl::getDefaultArgument(), clang::TemplateParmPosition::getDepth(), clang::PackExpansionTypeLoc::getEllipsisLoc(), clang::NonTypeTemplateParmDecl::getExpansionTypeSourceInfo(), clang::NamedDecl::getIdentifier(), clang::DeclaratorDecl::getInnerLocStart(), clang::Decl::getLocation(), clang::PackExpansionType::getNumExpansions(), clang::NonTypeTemplateParmDecl::getNumExpansionTypes(), clang::MultiLevelTemplateArgumentList::getNumLevels(), clang::PackExpansionTypeLoc::getPatternLoc(), clang::TemplateParmPosition::getPosition(), clang::TypeSourceInfo::getType(), clang::TypeSourceInfo::getTypeLoc(), clang::ConcreteTypeLoc< Base, Derived, TypeClass, LocalData >::getTypePtr(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::LocalInstantiationScope::InstantiatedLocal(), clang::ASTContext::IntTy, clang::NonTypeTemplateParmDecl::isExpandedParameterPack(), clang::QualType::isNull(), clang::NonTypeTemplateParmDecl::isPackExpansion(), clang::NonTypeTemplateParmDecl::isParameterPack(), Param, clang::Decl::setAccess(), and clang::Sema::SubstType().

Decl * TemplateDeclInstantiator::VisitOMPThreadPrivateDecl ( OMPThreadPrivateDecl D)
ParmVarDecl * TemplateDeclInstantiator::VisitParmVarDecl ( ParmVarDecl D)

Definition at line 1753 of file SemaTemplateInstantiateDecl.cpp.

References clang::Sema::SubstParmVarDecl().

Referenced by SubstFunctionType().

Decl * TemplateDeclInstantiator::VisitStaticAssertDecl ( StaticAssertDecl D)
Decl * TemplateDeclInstantiator::VisitTemplateTemplateParmDecl ( TemplateTemplateParmDecl D)
Decl * TemplateDeclInstantiator::VisitTemplateTypeParmDecl ( TemplateTypeParmDecl D)
Decl * TemplateDeclInstantiator::VisitTranslationUnitDecl ( TranslationUnitDecl D)

Definition at line 154 of file SemaTemplateInstantiateDecl.cpp.

Decl * TemplateDeclInstantiator::VisitTypeAliasDecl ( TypeAliasDecl D)
Decl * TemplateDeclInstantiator::VisitTypeAliasTemplateDecl ( TypeAliasTemplateDecl D)
Decl * TemplateDeclInstantiator::VisitTypedefDecl ( TypedefDecl D)
Decl * TemplateDeclInstantiator::VisitUnresolvedUsingTypenameDecl ( UnresolvedUsingTypenameDecl D)
Decl * TemplateDeclInstantiator::VisitUnresolvedUsingValueDecl ( UnresolvedUsingValueDecl D)
Decl * TemplateDeclInstantiator::VisitUsingDecl ( UsingDecl D)
Decl * TemplateDeclInstantiator::VisitUsingDirectiveDecl ( UsingDirectiveDecl D)
Decl * TemplateDeclInstantiator::VisitUsingShadowDecl ( UsingShadowDecl D)

Definition at line 2172 of file SemaTemplateInstantiateDecl.cpp.

Decl * TemplateDeclInstantiator::VisitVarDecl ( VarDecl D)

Definition at line 314 of file SemaTemplateInstantiateDecl.cpp.

References clang::Sema::ActOnUninitializedDecl(), clang::DeclContext::addDecl(), clang::Sema::AddInitializerToDecl(), clang::VarDecl::CallInit, clang::Sema::CheckAlignasUnderalignment(), clang::Sema::CheckVariableDeclaration(), clang::Sema::ConstantEvaluated, clang::Sema::Context, clang::VarDecl::Create(), clang::Sema::CurrentInstantiationScope, clang::Sema::Diag(), clang::Sema::DiagnoseUnusedDecl(), clang::Sema::ForRedeclaration, clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::Decl::getAccess(), clang::VarDecl::getAnyInitializer(), clang::NamedDecl::getDeclName(), clang::NamedDecl::getIdentifier(), clang::VarDecl::getInit(), clang::VarDecl::getInitStyle(), clang::DeclaratorDecl::getInnerLocStart(), clang::Sema::getLangOpts(), clang::Decl::getLexicalDeclContext(), clang::Decl::getLocation(), clang::VarDecl::getStorageClass(), clang::VarDecl::getTSCSpec(), clang::TypeSourceInfo::getType(), clang::ValueDecl::getType(), clang::DeclaratorDecl::getTypeSourceInfo(), clang::DeclaratorDecl::getTypeSpecStartLoc(), clang::Decl::hasAttrs(), clang::Sema::inferObjCARCLifetime(), clang::Sema::InstantiateAttrs(), clang::LocalInstantiationScope::InstantiatedLocal(), clang::VarDecl::isConstexpr(), clang::VarDecl::isCXXForRangeDecl(), clang::VarDecl::isDirectInit(), clang::DeclContext::isFunctionOrMethod(), clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::Decl::isInvalidDecl(), clang::VarDecl::isOutOfLine(), clang::Decl::isReferenced(), clang::VarDecl::isStaticDataMember(), clang::Decl::isUsed(), clang::Sema::LookupOrdinaryName, clang::Sema::LookupQualifiedName(), clang::DeclContext::makeDeclVisibleInContext(), clang::Sema::PopExpressionEvaluationContext(), clang::Sema::PotentiallyEvaluated, clang::Sema::PushExpressionEvaluationContext(), clang::Decl::setAccess(), clang::VarDecl::setConstexpr(), clang::VarDecl::setCXXForRangeDecl(), clang::VarDecl::setInitStyle(), clang::ASTContext::setInstantiatedFromStaticDataMember(), clang::Decl::setInvalidDecl(), clang::Decl::setLexicalDeclContext(), clang::Decl::setReferenced(), clang::VarDecl::setTSCSpec(), clang::Decl::setUsed(), clang::Sema::SubstInitializer(), SubstQualifier(), clang::Sema::SubstType(), clang::ActionResult< PtrTy, CompressInvalid >::take(), clang::TSK_ImplicitInstantiation, and VisitCXXRecordDecl().


The documentation for this class was generated from the following files: