clang
3.7.0
|
Declaration of a variable template. More...
#include <DeclTemplate.h>
Classes | |
struct | Common |
Data that is common to all of the declarations of a given variable template. More... | |
Public Member Functions | |
void | LoadLazySpecializations () const |
Load any lazily-loaded specializations from the external source. More... | |
VarDecl * | getTemplatedDecl () const |
Get the underlying variable declarations of the template. More... | |
bool | isThisDeclarationADefinition () const |
Returns whether this template declaration defines the primary variable pattern. More... | |
VarTemplateDecl * | getDefinition () |
VarTemplateSpecializationDecl * | findSpecialization (ArrayRef< TemplateArgument > Args, void *&InsertPos) |
Return the specialization with the provided arguments if it exists, otherwise return the insertion point. More... | |
void | AddSpecialization (VarTemplateSpecializationDecl *D, void *InsertPos) |
Insert the specified specialization knowing that it is not already in. InsertPos must be obtained from findSpecialization. More... | |
VarTemplateDecl * | getCanonicalDecl () override |
Retrieves the canonical declaration of this template. More... | |
const VarTemplateDecl * | getCanonicalDecl () const |
VarTemplateDecl * | getPreviousDecl () |
Retrieve the previous declaration of this variable template, or NULL if no such declaration exists. More... | |
const VarTemplateDecl * | getPreviousDecl () const |
Retrieve the previous declaration of this variable template, or NULL if no such declaration exists. More... | |
VarTemplateDecl * | getMostRecentDecl () |
const VarTemplateDecl * | getMostRecentDecl () const |
VarTemplateDecl * | getInstantiatedFromMemberTemplate () |
VarTemplatePartialSpecializationDecl * | findPartialSpecialization (ArrayRef< TemplateArgument > Args, void *&InsertPos) |
Return the partial specialization with the provided arguments if it exists, otherwise return the insertion point. More... | |
void | AddPartialSpecialization (VarTemplatePartialSpecializationDecl *D, void *InsertPos) |
Insert the specified partial specialization knowing that it is not already in. InsertPos must be obtained from findPartialSpecialization. More... | |
void | getPartialSpecializations (SmallVectorImpl< VarTemplatePartialSpecializationDecl * > &PS) |
Retrieve the partial specializations as an ordered list. More... | |
VarTemplatePartialSpecializationDecl * | findPartialSpecInstantiatedFromMember (VarTemplatePartialSpecializationDecl *D) |
Find a variable template partial specialization which was instantiated from the given member partial specialization. More... | |
spec_range | specializations () const |
spec_iterator | spec_begin () const |
spec_iterator | spec_end () const |
![]() | |
const RedeclarableTemplateDecl * | getCanonicalDecl () const |
bool | isMemberSpecialization () const |
Determines whether this template was a specialization of a member template. More... | |
void | setMemberSpecialization () |
Note that this member template is a specialization. More... | |
RedeclarableTemplateDecl * | getInstantiatedFromMemberTemplate () const |
Retrieve the member template from which this template was instantiated, or NULL if this template was not instantiated from a member template. More... | |
void | setInstantiatedFromMemberTemplate (RedeclarableTemplateDecl *TD) |
![]() | |
TemplateParameterList * | getTemplateParameters () const |
Get the list of template parameters. More... | |
NamedDecl * | getTemplatedDecl () const |
Get the underlying, templated declaration. More... | |
SourceRange | getSourceRange () const override LLVM_READONLY |
Source range that this declaration covers. More... | |
void | init (NamedDecl *templatedDecl, TemplateParameterList *templateParams) |
Initialize the underlying templated declaration and template parameters. More... | |
![]() | |
IdentifierInfo * | getIdentifier () const |
StringRef | getName () const |
std::string | getNameAsString () const |
void | printName (raw_ostream &os) const |
DeclarationName | getDeclName () const |
void | setDeclName (DeclarationName N) |
Set the name of this declaration. More... | |
void | printQualifiedName (raw_ostream &OS) const |
void | printQualifiedName (raw_ostream &OS, const PrintingPolicy &Policy) const |
std::string | getQualifiedNameAsString () const |
virtual void | getNameForDiagnostic (raw_ostream &OS, const PrintingPolicy &Policy, bool Qualified) const |
bool | declarationReplaces (NamedDecl *OldD, bool IsKnownNewer=true) const |
Determine whether this declaration, if known to be well-formed within its context, will replace the declaration OldD if introduced into scope. A declaration will replace another declaration if, for example, it is a redeclaration of the same variable or function, but not if it is a declaration of a different kind (function vs. class) or an overloaded function. More... | |
bool | hasLinkage () const |
Determine whether this declaration has linkage. More... | |
bool | isHidden () const |
Determine whether this declaration is hidden from name lookup. More... | |
void | setHidden (bool Hide) |
Set whether this declaration is hidden from name lookup. More... | |
bool | isCXXClassMember () const |
Determine whether this declaration is a C++ class member. More... | |
bool | isCXXInstanceMember () const |
Determine whether the given declaration is an instance member of a C++ class. More... | |
Linkage | getLinkageInternal () const |
Determine what kind of linkage this entity has. This is not the linkage as defined by the standard or the codegen notion of linkage. It is just an implementation detail that is used to compute those. More... | |
Linkage | getFormalLinkage () const |
Get the linkage from a semantic point of view. Entities in anonymous namespaces are external (in c++98). More... | |
bool | hasExternalFormalLinkage () const |
True if this decl has external linkage. More... | |
bool | isExternallyVisible () const |
Visibility | getVisibility () const |
Determines the visibility of this entity. More... | |
LinkageInfo | getLinkageAndVisibility () const |
Determines the linkage and visibility of this entity. More... | |
Optional< Visibility > | getExplicitVisibility (ExplicitVisibilityKind kind) const |
If visibility was explicitly specified for this declaration, return that visibility. More... | |
bool | isLinkageValid () const |
True if the computed linkage is valid. Used for consistency checking. Should always return true. More... | |
bool | hasLinkageBeenComputed () const |
True if something has required us to compute the linkage of this declaration. More... | |
NamedDecl * | getUnderlyingDecl () |
Looks through UsingDecls and ObjCCompatibleAliasDecls for the underlying named decl. More... | |
const NamedDecl * | getUnderlyingDecl () const |
NamedDecl * | getMostRecentDecl () |
const NamedDecl * | getMostRecentDecl () const |
ObjCStringFormatFamily | getObjCFStringFormattingFamily () const |
![]() | |
SourceLocation | getLocStart () const LLVM_READONLY |
SourceLocation | getLocEnd () const LLVM_READONLY |
SourceLocation | getLocation () const |
void | setLocation (SourceLocation L) |
Kind | getKind () const |
const char * | getDeclKindName () const |
Decl * | getNextDeclInContext () |
const Decl * | getNextDeclInContext () const |
DeclContext * | getDeclContext () |
const DeclContext * | getDeclContext () const |
Decl * | getNonClosureContext () |
const Decl * | getNonClosureContext () const |
TranslationUnitDecl * | getTranslationUnitDecl () |
const TranslationUnitDecl * | getTranslationUnitDecl () const |
bool | isInAnonymousNamespace () const |
bool | isInStdNamespace () const |
ASTContext & | getASTContext () const LLVM_READONLY |
void | setAccess (AccessSpecifier AS) |
AccessSpecifier | getAccess () const |
AccessSpecifier | getAccessUnsafe () const |
Retrieve the access specifier for this declaration, even though it may not yet have been properly set. More... | |
bool | hasAttrs () const |
void | setAttrs (const AttrVec &Attrs) |
AttrVec & | getAttrs () |
const AttrVec & | getAttrs () const |
void | dropAttrs () |
void | addAttr (Attr *A) |
attr_range | attrs () const |
attr_iterator | attr_begin () const |
attr_iterator | attr_end () const |
template<typename T > | |
void | dropAttr () |
template<typename T > | |
llvm::iterator_range < specific_attr_iterator< T > > | specific_attrs () const |
template<typename T > | |
specific_attr_iterator< T > | specific_attr_begin () const |
template<typename T > | |
specific_attr_iterator< T > | specific_attr_end () const |
template<typename T > | |
T * | getAttr () const |
template<typename T > | |
bool | hasAttr () const |
unsigned | getMaxAlignment () const |
void | setInvalidDecl (bool Invalid=true) |
bool | isInvalidDecl () const |
bool | isImplicit () const |
void | setImplicit (bool I=true) |
bool | isUsed (bool CheckUsedAttr=true) const |
Whether this declaration was used, meaning that a definition is required. More... | |
void | setIsUsed () |
Set whether the declaration is used, in the sense of odr-use. More... | |
void | markUsed (ASTContext &C) |
Mark the declaration used, in the sense of odr-use. More... | |
bool | isReferenced () const |
Whether any declaration of this entity was referenced. More... | |
bool | isThisDeclarationReferenced () const |
Whether this declaration was referenced. This should not be relied upon for anything other than debugging. More... | |
void | setReferenced (bool R=true) |
bool | isTopLevelDeclInObjCContainer () const |
Whether this declaration is a top-level declaration (function, global variable, etc.) that is lexically inside an objc container definition. More... | |
void | setTopLevelDeclInObjCContainer (bool V=true) |
bool | isModulePrivate () const |
Whether this declaration was marked as being private to the module in which it was defined. More... | |
AvailabilityResult | getAvailability (std::string *Message=nullptr) const |
Determine the availability of the given declaration. More... | |
bool | isDeprecated (std::string *Message=nullptr) const |
Determine whether this declaration is marked 'deprecated'. More... | |
bool | isUnavailable (std::string *Message=nullptr) const |
Determine whether this declaration is marked 'unavailable'. More... | |
bool | isWeakImported () const |
Determine whether this is a weak-imported symbol. More... | |
bool | canBeWeakImported (bool &IsDefinition) const |
Determines whether this symbol can be weak-imported, e.g., whether it would be well-formed to add the weak_import attribute. More... | |
bool | isFromASTFile () const |
Determine whether this declaration came from an AST file (such as a precompiled header or module) rather than having been parsed. More... | |
unsigned | getGlobalID () const |
Retrieve the global declaration ID associated with this declaration, which specifies where in the. More... | |
unsigned | getOwningModuleID () const |
Retrieve the global ID of the module that owns this particular declaration. More... | |
Module * | getImportedOwningModule () const |
Get the imported owning module, if this decl is from an imported (non-local) module. More... | |
Module * | getLocalOwningModule () const |
Get the local owning module, if known. Returns nullptr if owner is not yet known or declaration is not from a module. More... | |
void | setLocalOwningModule (Module *M) |
unsigned | getIdentifierNamespace () const |
bool | isInIdentifierNamespace (unsigned NS) const |
bool | hasTagIdentifierNamespace () const |
DeclContext * | getLexicalDeclContext () |
const DeclContext * | getLexicalDeclContext () const |
virtual bool | isOutOfLine () const |
void | setDeclContext (DeclContext *DC) |
void | setLexicalDeclContext (DeclContext *DC) |
bool | isDefinedOutsideFunctionOrMethod () const |
const DeclContext * | getParentFunctionOrMethod () const |
If this decl is defined inside a function/method/block it returns the corresponding DeclContext, otherwise it returns null. More... | |
DeclContext * | getParentFunctionOrMethod () |
const Decl * | getCanonicalDecl () const |
bool | isCanonicalDecl () const |
Whether this particular Decl is a canonical one. More... | |
redecl_range | redecls () const |
Returns an iterator range for all the redeclarations of the same decl. It will iterate at least once (when this decl is the only one). More... | |
redecl_iterator | redecls_begin () const |
redecl_iterator | redecls_end () const |
Decl * | getPreviousDecl () |
Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration. More... | |
const Decl * | getPreviousDecl () const |
Retrieve the most recent declaration that declares the same entity as this declaration, or NULL if there is no previous declaration. More... | |
bool | isFirstDecl () const |
True if this is the first declaration in its redeclaration chain. More... | |
Decl * | getMostRecentDecl () |
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). More... | |
const Decl * | getMostRecentDecl () const |
Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration). More... | |
virtual Stmt * | getBody () const |
virtual bool | hasBody () const |
Returns true if this Decl represents a declaration for a body of code, such as a function or method definition. Note that hasBody can also return true if any redeclaration of this Decl represents a declaration for a body of code. More... | |
SourceLocation | getBodyRBrace () const |
bool | isTemplateParameter () const |
bool | isTemplateParameterPack () const |
bool | isParameterPack () const |
Whether this declaration is a parameter pack. More... | |
bool | isTemplateDecl () const |
returns true if this declaration is a template More... | |
bool | isFunctionOrFunctionTemplate () const |
Whether this declaration is a function or function template. More... | |
FunctionDecl * | getAsFunction () LLVM_READONLY |
Returns the function itself, or the templated function if this is a function template. More... | |
const FunctionDecl * | getAsFunction () const |
void | setLocalExternDecl () |
Changes the namespace of this declaration to reflect that it's a function-local extern declaration. More... | |
bool | isLocalExternDecl () |
Determine whether this is a block-scope declaration with linkage. This will either be a local variable declaration declared 'extern', or a local function declaration. More... | |
void | setObjectOfFriendDecl (bool PerformFriendInjection=false) |
Changes the namespace of this declaration to reflect that it's the object of a friend declaration. More... | |
FriendObjectKind | getFriendObjectKind () const |
Determines whether this declaration is the object of a friend declaration and, if so, what kind. More... | |
void | setNonMemberOperator () |
Specifies that this declaration is a C++ overloaded non-member. More... | |
void | print (raw_ostream &Out, unsigned Indentation=0, bool PrintInstantiation=false) const |
void | print (raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0, bool PrintInstantiation=false) const |
void | dump () const |
void | dumpColor () const |
void | dump (raw_ostream &Out) const |
const FunctionType * | getFunctionType (bool BlocksToo=true) const |
Looks through the Decl's underlying type to extract a FunctionType when possible. Will return null if the type underlying the Decl does not have a FunctionType. More... | |
![]() | |
Redeclarable (const ASTContext &Ctx) | |
RedeclarableTemplateDecl * | getPreviousDecl () |
Return the previous declaration of this declaration or NULL if this is the first declaration. More... | |
const RedeclarableTemplateDecl * | getPreviousDecl () const |
RedeclarableTemplateDecl * | getFirstDecl () |
Return the first declaration of this declaration or itself if this is the only declaration. More... | |
const RedeclarableTemplateDecl * | getFirstDecl () const |
Return the first declaration of this declaration or itself if this is the only declaration. More... | |
bool | isFirstDecl () const |
True if this is the first declaration in its redeclaration chain. More... | |
RedeclarableTemplateDecl * | getMostRecentDecl () |
Returns the most recent (re)declaration of this declaration. More... | |
const RedeclarableTemplateDecl * | getMostRecentDecl () const |
Returns the most recent (re)declaration of this declaration. More... | |
void | setPreviousDecl (RedeclarableTemplateDecl *PrevDecl) |
Set the previous declaration. If PrevDecl is NULL, set this as the first and only declaration. More... | |
redecl_range | redecls () const |
Returns an iterator range for all the redeclarations of the same decl. It will iterate at least once (when this decl is the only one). More... | |
redecl_iterator | redecls_begin () const |
redecl_iterator | redecls_end () const |
Static Public Member Functions | |
static VarTemplateDecl * | Create (ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, VarDecl *Decl) |
Create a variable template node. More... | |
static VarTemplateDecl * | CreateDeserialized (ASTContext &C, unsigned ID) |
Create an empty variable template node. More... | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
![]() | |
static unsigned | getIdentifierNamespaceForKind (Kind DK) |
static bool | isTagIdentifierNamespace (unsigned NS) |
static void | add (Kind k) |
static void | EnableStatistics () |
static void | PrintStats () |
static bool | classofKind (Kind K) |
static DeclContext * | castToDeclContext (const Decl *) |
static Decl * | castFromDeclContext (const DeclContext *) |
static void | printGroup (Decl **Begin, unsigned NumDecls, raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0) |
Protected Member Functions | |
llvm::FoldingSetVector < VarTemplateSpecializationDecl > & | getSpecializations () const |
Retrieve the set of specializations of this variable template. More... | |
llvm::FoldingSetVector < VarTemplatePartialSpecializationDecl > & | getPartialSpecializations () |
Retrieve the set of partial specializations of this class template. More... | |
VarTemplateDecl (ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl) | |
CommonBase * | newCommon (ASTContext &C) const override |
Common * | getCommonPtr () const |
![]() | |
template<class EntryType > | |
SpecEntryTraits< EntryType > ::DeclType * | findSpecializationImpl (llvm::FoldingSetVector< EntryType > &Specs, ArrayRef< TemplateArgument > Args, void *&InsertPos) |
template<class Derived , class EntryType > | |
void | addSpecializationImpl (llvm::FoldingSetVector< EntryType > &Specs, EntryType *Entry, void *InsertPos) |
CommonBase * | getCommonPtr () const |
Retrieves the "common" pointer shared by all (re-)declarations of the same template. Calling this routine may implicitly allocate memory for the common pointer. More... | |
RedeclarableTemplateDecl (Kind DK, ASTContext &C, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl) | |
![]() | |
TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name) | |
TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params) | |
TemplateDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName Name, TemplateParameterList *Params, NamedDecl *Decl) | |
![]() | |
NamedDecl (Kind DK, DeclContext *DC, SourceLocation L, DeclarationName N) | |
![]() | |
void * | operator new (std::size_t Size, const ASTContext &Ctx, unsigned ID, std::size_t Extra=0) |
Allocate memory for a deserialized declaration. More... | |
void * | operator new (std::size_t Size, const ASTContext &Ctx, DeclContext *Parent, std::size_t Extra=0) |
Allocate memory for a non-deserialized declaration. More... | |
Decl (Kind DK, DeclContext *DC, SourceLocation L) | |
Decl (Kind DK, EmptyShell Empty) | |
virtual | ~Decl () |
void | updateOutOfDate (IdentifierInfo &II) const |
Update a potentially out-of-date declaration. More... | |
Linkage | getCachedLinkage () const |
void | setCachedLinkage (Linkage L) const |
bool | hasCachedLinkage () const |
void | setModulePrivate (bool MP=true) |
Specify whether this declaration was marked as being private to the module in which it was defined. More... | |
void | setOwningModuleID (unsigned ID) |
Set the owning module ID. More... | |
bool | hasLocalOwningModuleStorage () const |
ASTMutationListener * | getASTMutationListener () const |
![]() | |
RedeclarableTemplateDecl * | getNextRedeclaration () const |
Friends | |
class | ASTDeclReader |
class | ASTDeclWriter |
Additional Inherited Members | |
![]() | |
enum | { TopLevelDeclInObjCContainerFlag = 0x01, ModulePrivateFlag = 0x02 } |
![]() | |
template<typename EntryType > | |
static SpecIterator< EntryType > | makeSpecIterator (llvm::FoldingSetVector< EntryType > &Specs, bool isEnd) |
![]() | |
static DeclLink | PreviousDeclLink (RedeclarableTemplateDecl *D) |
static DeclLink | LatestDeclLink (const ASTContext &Ctx) |
![]() | |
CommonBase * | Common |
Pointer to the common data shared by all declarations of this template. More... | |
![]() | |
NamedDecl * | TemplatedDecl |
TemplateParameterList * | TemplateParams |
![]() | |
llvm::PointerIntPair< Decl *, 2, unsigned > | NextInContextAndBits |
The next declaration within the same lexical DeclContext. These pointers form the linked list that is traversed via DeclContext's decls_begin()/decls_end(). More... | |
unsigned | Access: 2 |
Access - Used by C++ decls for the access specifier. More... | |
unsigned | FromASTFile: 1 |
Whether this declaration was loaded from an AST file. More... | |
unsigned | Hidden: 1 |
Whether this declaration is hidden from normal name lookup, e.g., because it is was loaded from an AST file is either module-private or because its submodule has not been made visible. More... | |
unsigned | IdentifierNamespace: 12 |
IdentifierNamespace - This specifies what IDNS_* namespace this lives in. More... | |
unsigned | CacheValidAndLinkage: 3 |
If 0, we have not computed the linkage of this declaration. Otherwise, it is the linkage + 1. More... | |
![]() | |
DeclLink | RedeclLink |
Points to the next redeclaration in the chain. More... | |
RedeclarableTemplateDecl * | First |
Declaration of a variable template.
Definition at line 2725 of file DeclTemplate.h.
Definition at line 2868 of file DeclTemplate.h.
typedef llvm::iterator_range<spec_iterator> clang::VarTemplateDecl::spec_range |
Definition at line 2869 of file DeclTemplate.h.
|
inlineprotected |
Definition at line 2760 of file DeclTemplate.h.
Referenced by Create(), and CreateDeserialized().
void VarTemplateDecl::AddPartialSpecialization | ( | VarTemplatePartialSpecializationDecl * | D, |
void * | InsertPos | ||
) |
Insert the specified partial specialization knowing that it is not already in. InsertPos must be obtained from findPartialSpecialization.
Definition at line 1043 of file DeclTemplate.cpp.
References clang::Decl::getASTMutationListener(), getPartialSpecializations(), and clang::Decl::isCanonicalDecl().
void VarTemplateDecl::AddSpecialization | ( | VarTemplateSpecializationDecl * | D, |
void * | InsertPos | ||
) |
Insert the specified specialization knowing that it is not already in. InsertPos must be obtained from findSpecialization.
Definition at line 1032 of file DeclTemplate.cpp.
References getSpecializations().
Definition at line 2884 of file DeclTemplate.h.
References classofKind(), and clang::Decl::getKind().
Definition at line 2885 of file DeclTemplate.h.
Referenced by classof().
|
static |
Create a variable template node.
Definition at line 977 of file DeclTemplate.cpp.
References AttributeLangSupport::C, and VarTemplateDecl().
Referenced by clang::Sema::ActOnVariableDeclarator(), and clang::ASTNodeImporter::VisitVarTemplateDecl().
|
static |
Create an empty variable template node.
Definition at line 984 of file DeclTemplate.cpp.
References AttributeLangSupport::C, and VarTemplateDecl().
VarTemplatePartialSpecializationDecl * VarTemplateDecl::findPartialSpecialization | ( | ArrayRef< TemplateArgument > | Args, |
void *& | InsertPos | ||
) |
Return the partial specialization with the provided arguments if it exists, otherwise return the insertion point.
Definition at line 1038 of file DeclTemplate.cpp.
References clang::RedeclarableTemplateDecl::findSpecializationImpl(), and getPartialSpecializations().
Referenced by clang::Sema::ActOnVarTemplateSpecialization(), and clang::TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization().
VarTemplatePartialSpecializationDecl * VarTemplateDecl::findPartialSpecInstantiatedFromMember | ( | VarTemplatePartialSpecializationDecl * | D | ) |
Find a variable template partial specialization which was instantiated from the given member partial specialization.
D | a member variable template partial specialization. |
Definition at line 1072 of file DeclTemplate.cpp.
References clang::VarDecl::getCanonicalDecl(), getPartialSpecializations(), and P.
VarTemplateSpecializationDecl * VarTemplateDecl::findSpecialization | ( | ArrayRef< TemplateArgument > | Args, |
void *& | InsertPos | ||
) |
Return the specialization with the provided arguments if it exists, otherwise return the insertion point.
Definition at line 1027 of file DeclTemplate.cpp.
References clang::RedeclarableTemplateDecl::findSpecializationImpl(), and getSpecializations().
Referenced by clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::CheckVarTemplateId(), clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl(), and clang::TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl().
|
inlineoverridevirtual |
Retrieves the canonical declaration of this template.
Reimplemented from clang::RedeclarableTemplateDecl.
Definition at line 2806 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getCanonicalDecl().
Referenced by clang::ASTWriter::AddedCXXTemplateSpecialization(), and clang::ASTDeclWriter::VisitVarTemplateSpecializationDecl().
|
inline |
Definition at line 2809 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getCanonicalDecl().
|
inlineprotected |
Definition at line 2767 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getCommonPtr().
Referenced by getPartialSpecializations(), getSpecializations(), LoadLazySpecializations(), clang::ASTDeclReader::VisitVarTemplateDecl(), and clang::ASTDeclReader::VisitVarTemplateSpecializationDeclImpl().
VarTemplateDecl * VarTemplateDecl::getDefinition | ( | ) |
Definition at line 967 of file DeclTemplate.cpp.
References getPreviousDecl(), and isThisDeclarationADefinition().
|
inline |
Definition at line 2836 of file DeclTemplate.h.
References clang::RedeclarableTemplateDecl::getInstantiatedFromMemberTemplate().
Referenced by clang::Sema::ActOnVariableDeclarator(), and clang::Sema::InstantiateVariableDefinition().
|
inline |
Definition at line 2828 of file DeclTemplate.h.
Referenced by getMostRecentDecl(), and LoadLazySpecializations().
|
inline |
Definition at line 2832 of file DeclTemplate.h.
References getMostRecentDecl().
|
protected |
Retrieve the set of partial specializations of this class template.
Definition at line 1014 of file DeclTemplate.cpp.
References getCommonPtr(), LoadLazySpecializations(), and clang::VarTemplateDecl::Common::PartialSpecializations.
Referenced by AddPartialSpecialization(), clang::Sema::CheckVarTemplateId(), findPartialSpecialization(), findPartialSpecInstantiatedFromMember(), and getPartialSpecializations().
void VarTemplateDecl::getPartialSpecializations | ( | SmallVectorImpl< VarTemplatePartialSpecializationDecl * > & | PS | ) |
Retrieve the partial specializations as an ordered list.
Definition at line 1058 of file DeclTemplate.cpp.
References getPartialSpecializations(), and P.
|
inline |
Retrieve the previous declaration of this variable template, or NULL if no such declaration exists.
Definition at line 2815 of file DeclTemplate.h.
Referenced by getDefinition(), and getPreviousDecl().
|
inline |
Retrieve the previous declaration of this variable template, or NULL if no such declaration exists.
Definition at line 2822 of file DeclTemplate.h.
References getPreviousDecl().
|
protected |
Retrieve the set of specializations of this variable template.
Definition at line 1008 of file DeclTemplate.cpp.
References getCommonPtr(), LoadLazySpecializations(), and clang::VarTemplateDecl::Common::Specializations.
Referenced by AddSpecialization(), findSpecialization(), spec_begin(), and spec_end().
|
inline |
Get the underlying variable declarations of the template.
Definition at line 2776 of file DeclTemplate.h.
References clang::TemplateDecl::TemplatedDecl.
Referenced by clang::Sema::ActOnVarTemplateSpecialization(), clang::Sema::CheckVarTemplateId(), clang::Sema::InstantiateVariableDefinition(), isThisDeclarationADefinition(), clang::Sema::MergeVarDecl(), and clang::ASTNodeImporter::VisitVarTemplateDecl().
|
inline |
Returns whether this template declaration defines the primary variable pattern.
Definition at line 2782 of file DeclTemplate.h.
References getTemplatedDecl(), and clang::VarDecl::isThisDeclarationADefinition().
Referenced by getDefinition().
void VarTemplateDecl::LoadLazySpecializations | ( | ) | const |
Load any lazily-loaded specializations from the external source.
Definition at line 992 of file DeclTemplate.cpp.
References Context, clang::Decl::getASTContext(), getCommonPtr(), clang::ExternalASTSource::GetExternalDecl(), clang::ASTContext::getExternalSource(), getMostRecentDecl(), and clang::VarTemplateDecl::Common::LazySpecializations.
Referenced by getPartialSpecializations(), and getSpecializations().
|
overrideprotectedvirtual |
Implements clang::RedeclarableTemplateDecl.
Definition at line 1020 of file DeclTemplate.cpp.
References clang::ASTContext::AddDeallocation(), and AttributeLangSupport::C.
|
inline |
Definition at line 2875 of file DeclTemplate.h.
References getSpecializations(), and clang::RedeclarableTemplateDecl::makeSpecIterator().
Referenced by specializations().
|
inline |
Definition at line 2879 of file DeclTemplate.h.
References getSpecializations(), and clang::RedeclarableTemplateDecl::makeSpecIterator().
Referenced by specializations().
|
inline |
Definition at line 2871 of file DeclTemplate.h.
References spec_begin(), and spec_end().
|
friend |
Definition at line 2887 of file DeclTemplate.h.
|
friend |
Definition at line 2888 of file DeclTemplate.h.