clang 19.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
clang::Decl Class Reference

Decl - This represents one declaration (or definition), e.g. More...

#include "clang/AST/DeclBase.h"

Inheritance diagram for clang::Decl:
Inheritance graph
[legend]

Classes

struct  EmptyShell
 A placeholder type used to construct an empty shell of a decl-derived type that will be filled in later (e.g., by some deserialization method). More...
 
class  redecl_iterator
 Iterates through all the redeclarations of the same decl. More...
 

Public Types

enum  Kind
 Lists the kind of concrete classes of Decl. More...
 
enum  IdentifierNamespace {
  IDNS_Label = 0x0001 , IDNS_Tag = 0x0002 , IDNS_Type = 0x0004 , IDNS_Member = 0x0008 ,
  IDNS_Namespace = 0x0010 , IDNS_Ordinary = 0x0020 , IDNS_ObjCProtocol = 0x0040 , IDNS_OrdinaryFriend = 0x0080 ,
  IDNS_TagFriend = 0x0100 , IDNS_Using = 0x0200 , IDNS_NonMemberOperator = 0x0400 , IDNS_LocalExtern = 0x0800 ,
  IDNS_OMPReduction = 0x1000 , IDNS_OMPMapper = 0x2000
}
 IdentifierNamespace - The different namespaces in which declarations may appear. More...
 
enum  ObjCDeclQualifier {
  OBJC_TQ_None = 0x0 , OBJC_TQ_In = 0x1 , OBJC_TQ_Inout = 0x2 , OBJC_TQ_Out = 0x4 ,
  OBJC_TQ_Bycopy = 0x8 , OBJC_TQ_Byref = 0x10 , OBJC_TQ_Oneway = 0x20 , OBJC_TQ_CSNullability = 0x40
}
 ObjCDeclQualifier - 'Qualifiers' written next to the return and parameter types in method declarations. More...
 
enum class  ModuleOwnershipKind : unsigned char {
  Unowned , Visible , VisibleWhenImported , ReachableWhenImported ,
  ModulePrivate
}
 The kind of ownership a declaration has, for visibility purposes. More...
 
enum  FriendObjectKind { FOK_None , FOK_Declared , FOK_Undeclared }
 
using attr_iterator = AttrVec::const_iterator
 
using attr_range = llvm::iterator_range< attr_iterator >
 
using redecl_range = llvm::iterator_range< redecl_iterator >
 

Public Member Functions

 Decl ()=delete
 
 Decl (const Decl &)=delete
 
 Decl (Decl &&)=delete
 
Decloperator= (const Decl &)=delete
 
Decloperator= (Decl &&)=delete
 
virtual SourceRange getSourceRange () const LLVM_READONLY
 Source range that this declaration covers.
 
SourceLocation getBeginLoc () const LLVM_READONLY
 
SourceLocation getEndLoc () const LLVM_READONLY
 
SourceLocation getLocation () const
 
void setLocation (SourceLocation L)
 
Kind getKind () const
 
const char * getDeclKindName () const
 
DeclgetNextDeclInContext ()
 
const DeclgetNextDeclInContext () const
 
DeclContextgetDeclContext ()
 
const DeclContextgetDeclContext () const
 
DeclContextgetNonTransparentDeclContext ()
 Return the non transparent context.
 
const DeclContextgetNonTransparentDeclContext () const
 
DeclgetNonClosureContext ()
 Find the innermost non-closure ancestor of this declaration, walking up through blocks, lambdas, etc.
 
const DeclgetNonClosureContext () const
 
TranslationUnitDeclgetTranslationUnitDecl ()
 
const TranslationUnitDeclgetTranslationUnitDecl () const
 
bool isInAnonymousNamespace () const
 
bool isInStdNamespace () const
 
bool isFileContextDecl () const
 
ASTContextgetASTContext () const LLVM_READONLY
 
const LangOptionsgetLangOpts () const LLVM_READONLY
 Helper to get the language options from the ASTContext.
 
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.
 
bool hasAttrs () const
 
void setAttrs (const AttrVec &Attrs)
 
AttrVecgetAttrs ()
 
const AttrVecgetAttrs () const
 
void dropAttrs ()
 
void addAttr (Attr *A)
 
attr_range attrs () const
 
attr_iterator attr_begin () const
 
attr_iterator attr_end () const
 
template<typename... Ts>
void dropAttrs ()
 
template<typename T >
void dropAttr ()
 
template<typename T >
llvm::iterator_range< specific_attr_iterator< T > > specific_attrs () const
 
template<typename T >
specific_attr_iterator< Tspecific_attr_begin () const
 
template<typename T >
specific_attr_iterator< Tspecific_attr_end () const
 
template<typename T >
TgetAttr () const
 
template<typename T >
bool hasAttr () const
 
unsigned getMaxAlignment () const
 getMaxAlignment - return the maximum alignment specified by attributes on this decl, 0 if there are none.
 
void setInvalidDecl (bool Invalid=true)
 setInvalidDecl - Indicates the Decl had a semantic error.
 
bool isInvalidDecl () const
 
bool isImplicit () const
 isImplicit - Indicates whether the declaration was implicitly generated by the implementation.
 
void setImplicit (bool I=true)
 
bool isUsed (bool CheckUsedAttr=true) const
 Whether any (re-)declaration of the entity was used, meaning that a definition is required.
 
void setIsUsed ()
 Set whether the declaration is used, in the sense of odr-use.
 
void markUsed (ASTContext &C)
 Mark the declaration used, in the sense of odr-use.
 
bool isReferenced () const
 Whether any declaration of this entity was referenced.
 
bool isThisDeclarationReferenced () const
 Whether this declaration was referenced.
 
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.
 
void setTopLevelDeclInObjCContainer (bool V=true)
 
ExternalSourceSymbolAttr * getExternalSourceSymbolAttr () const
 Looks on this and related declarations for an applicable external source symbol attribute.
 
bool isModulePrivate () const
 Whether this declaration was marked as being private to the module in which it was defined.
 
bool isInExportDeclContext () const
 Whether this declaration was exported in a lexical context.
 
bool isInvisibleOutsideTheOwningModule () const
 
bool isInAnotherModuleUnit () const
 Whether this declaration comes from another module unit.
 
bool isFromExplicitGlobalModule () const
 Whether this declaration comes from explicit global module.
 
bool hasDefiningAttr () const
 Return true if this declaration has an attribute which acts as definition of the entity, such as 'alias' or 'ifunc'.
 
const AttrgetDefiningAttr () const
 Return this declaration's defining attribute if it has one.
 
void setFromASTFile ()
 Set the FromASTFile flag.
 
void setOwningModuleID (unsigned ID)
 Set the owning module ID.
 
AvailabilityResult getAvailability (std::string *Message=nullptr, VersionTuple EnclosingVersion=VersionTuple(), StringRef *RealizedPlatform=nullptr) const
 Determine the availability of the given declaration.
 
VersionTuple getVersionIntroduced () const
 Retrieve the version of the target platform in which this declaration was introduced.
 
bool isDeprecated (std::string *Message=nullptr) const
 Determine whether this declaration is marked 'deprecated'.
 
bool isUnavailable (std::string *Message=nullptr) const
 Determine whether this declaration is marked 'unavailable'.
 
bool isWeakImported () const
 Determine whether this is a weak-imported symbol.
 
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.
 
bool isFromASTFile () const
 Determine whether this declaration came from an AST file (such as a precompiled header or module) rather than having been parsed.
 
unsigned getGlobalID () const
 Retrieve the global declaration ID associated with this declaration, which specifies where this Decl was loaded from.
 
unsigned getOwningModuleID () const
 Retrieve the global ID of the module that owns this particular declaration.
 
ModulegetImportedOwningModule () const
 Get the imported owning module, if this decl is from an imported (non-local) module.
 
ModulegetLocalOwningModule () const
 Get the local owning module, if known.
 
void setLocalOwningModule (Module *M)
 
bool hasOwningModule () const
 Is this declaration owned by some module?
 
ModulegetOwningModule () const
 Get the module that owns this declaration (for visibility purposes).
 
ModulegetOwningModuleForLinkage (bool IgnoreLinkage=false) const
 Get the module that owns this declaration for linkage purposes.
 
bool isUnconditionallyVisible () const
 Determine whether this declaration is definitely visible to name lookup, independent of whether the owning module is visible.
 
bool isReachable () const
 
void setVisibleDespiteOwningModule ()
 Set that this declaration is globally visible, even if it came from a module that is not visible.
 
ModuleOwnershipKind getModuleOwnershipKind () const
 Get the kind of module ownership for this declaration.
 
void setModuleOwnershipKind (ModuleOwnershipKind MOK)
 Set whether this declaration is hidden from name lookup.
 
unsigned getIdentifierNamespace () const
 
bool isInIdentifierNamespace (unsigned NS) const
 
bool hasTagIdentifierNamespace () const
 
DeclContextgetLexicalDeclContext ()
 getLexicalDeclContext - The declaration context where this Decl was lexically declared (LexicalDC).
 
const DeclContextgetLexicalDeclContext () const
 
virtual bool isOutOfLine () const
 Determine whether this declaration is declared out of line (outside its semantic context).
 
void setDeclContext (DeclContext *DC)
 setDeclContext - Set both the semantic and lexical DeclContext to DC.
 
void setLexicalDeclContext (DeclContext *DC)
 
bool isTemplated () const
 Determine whether this declaration is a templated entity (whether it is.
 
unsigned getTemplateDepth () const
 Determine the number of levels of template parameter surrounding this declaration.
 
bool isDefinedOutsideFunctionOrMethod () const
 isDefinedOutsideFunctionOrMethod - This predicate returns true if this scoped decl is defined outside the current function or method.
 
bool isInLocalScopeForInstantiation () const
 Determine whether a substitution into this declaration would occur as part of a substitution into a dependent local scope.
 
const DeclContextgetParentFunctionOrMethod (bool LexicalParent=false) const
 If this decl is defined inside a function/method/block it returns the corresponding DeclContext, otherwise it returns null.
 
DeclContextgetParentFunctionOrMethod (bool LexicalParent=false)
 
virtual DeclgetCanonicalDecl ()
 Retrieves the "canonical" declaration of the given declaration.
 
const DeclgetCanonicalDecl () const
 
bool isCanonicalDecl () const
 Whether this particular Decl is a canonical one.
 
redecl_range redecls () const
 Returns an iterator range for all the redeclarations of the same decl.
 
redecl_iterator redecls_begin () const
 
redecl_iterator redecls_end () const
 
DeclgetPreviousDecl ()
 Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration.
 
const DeclgetPreviousDecl () const
 Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration.
 
bool isFirstDecl () const
 True if this is the first declaration in its redeclaration chain.
 
DeclgetMostRecentDecl ()
 Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).
 
const DeclgetMostRecentDecl () const
 Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).
 
virtual StmtgetBody () const
 getBody - If this Decl represents a declaration for a body of code, such as a function or method definition, this method returns the top-level Stmt* of that body.
 
virtual bool hasBody () const
 Returns true if this Decl represents a declaration for a body of code, such as a function or method definition.
 
SourceLocation getBodyRBrace () const
 getBodyRBrace - Gets the right brace of the body, if a body exists.
 
bool isTemplateParameter () const
 isTemplateParameter - Determines whether this declaration is a template parameter.
 
bool isTemplateParameterPack () const
 isTemplateParameter - Determines whether this declaration is a template parameter pack.
 
bool isParameterPack () const
 Whether this declaration is a parameter pack.
 
bool isTemplateDecl () const
 returns true if this declaration is a template
 
bool isFunctionOrFunctionTemplate () const
 Whether this declaration is a function or function template.
 
TemplateDeclgetDescribedTemplate () const
 If this is a declaration that describes some template, this method returns that template declaration.
 
const TemplateParameterListgetDescribedTemplateParams () const
 If this is a declaration that describes some template or partial specialization, this returns the corresponding template parameter list.
 
FunctionDeclgetAsFunction () LLVM_READONLY
 Returns the function itself, or the templated function if this is a function template.
 
const FunctionDeclgetAsFunction () const
 
void setLocalExternDecl ()
 Changes the namespace of this declaration to reflect that it's a function-local extern declaration.
 
bool isLocalExternDecl () const
 Determine whether this is a block-scope declaration with linkage.
 
void setObjectOfFriendDecl (bool PerformFriendInjection=false)
 Changes the namespace of this declaration to reflect that it's the object of a friend declaration.
 
void clearIdentifierNamespace ()
 Clears the namespace of this declaration.
 
FriendObjectKind getFriendObjectKind () const
 Determines whether this declaration is the object of a friend declaration and, if so, what kind.
 
void setNonMemberOperator ()
 Specifies that this declaration is a C++ overloaded non-member.
 
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, bool Deserialize=false, ASTDumpOutputFormat OutputFormat=ADOF_Default) const
 
int64_t getID () const
 
const FunctionTypegetFunctionType (bool BlocksToo=true) const
 Looks through the Decl's underlying type to extract a FunctionType when possible.
 
bool isFunctionPointerType () const
 

Static Public Member Functions

static bool isFlexibleArrayMemberLike (ASTContext &Context, const Decl *D, QualType Ty, LangOptions::StrictFlexArraysLevelKind StrictFlexArraysLevel, bool IgnoreTemplateOrMacroSubstitution)
 Whether it resembles a flexible array member.
 
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 DeclContextcastToDeclContext (const Decl *)
 
static DeclcastFromDeclContext (const DeclContext *)
 
static void printGroup (Decl **Begin, unsigned NumDecls, raw_ostream &Out, const PrintingPolicy &Policy, unsigned Indentation=0)
 

Protected Member Functions

void * operator new (std::size_t Size, const ASTContext &Ctx, unsigned ID, std::size_t Extra=0)
 Allocate memory for a deserialized declaration.
 
void * operator new (std::size_t Size, const ASTContext &Ctx, DeclContext *Parent, std::size_t Extra=0)
 Allocate memory for a non-deserialized declaration.
 
 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.
 
Linkage getCachedLinkage () const
 
void setCachedLinkage (Linkage L) const
 
bool hasCachedLinkage () const
 
void setModulePrivate ()
 Specify that this declaration was marked as being private to the module in which it was defined.
 
bool hasLocalOwningModuleStorage () const
 
virtual DeclgetNextRedeclarationImpl ()
 Returns the next redeclaration or itself if this is the only decl.
 
virtual DeclgetPreviousDeclImpl ()
 Implementation of getPreviousDecl(), to be overridden by any subclass that has a redeclaration chain.
 
virtual DeclgetMostRecentDeclImpl ()
 Implementation of getMostRecentDecl(), to be overridden by any subclass that has a redeclaration chain.
 
ASTMutationListenergetASTMutationListener () const
 

Protected Attributes

llvm::PointerIntPair< Decl *, 3, ModuleOwnershipKindNextInContextAndBits
 The next declaration within the same lexical DeclContext.
 
unsigned Access: 2
 Access - Used by C++ decls for the access specifier.
 
unsigned FromASTFile: 1
 Whether this declaration was loaded from an AST file.
 
unsigned IdentifierNamespace: 14
 IdentifierNamespace - This specifies what IDNS_* namespace this lives in.
 
unsigned CacheValidAndLinkage: 3
 If 0, we have not computed the linkage of this declaration.
 

Friends

class DeclContext
 
class ASTDeclReader
 
class ASTDeclWriter
 
class ASTNodeImporter
 
class ASTReader
 
class CXXClassMemberWrapper
 
class LinkageComputer
 
class RecordDecl
 
template<typename decl_type >
class Redeclarable
 

Detailed Description

Decl - This represents one declaration (or definition), e.g.

a variable, typedef, function, struct, etc.

Note: There are objects tacked on before the beginning of Decl (and its subclasses) in its Decl::operator new(). Proper alignment of all subclasses (not requiring more than the alignment of Decl) is asserted in DeclBase.cpp.

Definition at line 85 of file DeclBase.h.

Member Typedef Documentation

◆ attr_iterator

using clang::Decl::attr_iterator = AttrVec::const_iterator

Definition at line 537 of file DeclBase.h.

◆ attr_range

using clang::Decl::attr_range = llvm::iterator_range<attr_iterator>

Definition at line 538 of file DeclBase.h.

◆ redecl_range

using clang::Decl::redecl_range = llvm::iterator_range<redecl_iterator>

Definition at line 1034 of file DeclBase.h.

Member Enumeration Documentation

◆ FriendObjectKind

Enumerator
FOK_None 

Not a friend object.

FOK_Declared 

A friend of a previously-declared entity.

FOK_Undeclared 

A friend of a previously-undeclared entity.

Definition at line 1205 of file DeclBase.h.

◆ IdentifierNamespace

IdentifierNamespace - The different namespaces in which declarations may appear.

According to C99 6.2.3, there are four namespaces, labels, tags, members and ordinary identifiers. C++ describes lookup completely differently: certain lookups merely "ignore" certain kinds of declarations, usually based on whether the declaration is of a type, etc.

These are meant as bitmasks, so that searches in C++ can look into the "tag" namespace during ordinary lookup.

Decl currently provides 15 bits of IDNS bits.

Enumerator
IDNS_Label 

Labels, declared with 'x:' and referenced with 'goto x'.

IDNS_Tag 

Tags, declared with 'struct foo;' and referenced with 'struct foo'.

All tags are also types. This is what elaborated-type-specifiers look for in C. This also contains names that conflict with tags in the same scope but that are otherwise ordinary names (non-type template parameters and indirect field declarations).

IDNS_Type 

Types, declared with 'struct foo', typedefs, etc.

This is what elaborated-type-specifiers look for in C++, but note that it's ill-formed to find a non-tag.

IDNS_Member 

Members, declared with object declarations within tag definitions.

In C, these can only be found by "qualified" lookup in member expressions. In C++, they're found by normal lookup.

IDNS_Namespace 

Namespaces, declared with 'namespace foo {}'.

Lookup for nested-name-specifiers find these.

IDNS_Ordinary 

Ordinary names.

In C, everything that's not a label, tag, member, or function-local extern ends up here.

IDNS_ObjCProtocol 

Objective C @protocol.

IDNS_OrdinaryFriend 

This declaration is a friend function.

A friend function declaration is always in this namespace but may also be in IDNS_Ordinary if it was previously declared.

IDNS_TagFriend 

This declaration is a friend class.

A friend class declaration is always in this namespace but may also be in IDNS_Tag|IDNS_Type if it was previously declared.

IDNS_Using 

This declaration is a using declaration.

A using declaration introduces a number of other declarations into the current scope, and those declarations use the IDNS of their targets, but the actual using declarations go in this namespace.

IDNS_NonMemberOperator 

This declaration is a C++ operator declared in a non-class context.

All such operators are also in IDNS_Ordinary. C++ lexical operator lookup looks for these.

IDNS_LocalExtern 

This declaration is a function-local extern declaration of a variable or function.

This may also be IDNS_Ordinary if it has been declared outside any function. These act mostly like invisible friend declarations, but are also visible to unqualified lookup within the scope of the declaring function.

IDNS_OMPReduction 

This declaration is an OpenMP user defined reduction construction.

IDNS_OMPMapper 

This declaration is an OpenMP user defined mapper.

Definition at line 114 of file DeclBase.h.

◆ Kind

Lists the kind of concrete classes of Decl.

Definition at line 88 of file DeclBase.h.

◆ ModuleOwnershipKind

enum class clang::Decl::ModuleOwnershipKind : unsigned char
strong

The kind of ownership a declaration has, for visibility purposes.

This enumeration is designed such that higher values represent higher levels of name hiding.

Enumerator
Unowned 

This declaration is not owned by a module.

Visible 

This declaration has an owning module, but is globally visible (typically because its owning module is visible and we know that modules cannot later become hidden in this compilation).

After serialization and deserialization, this will be converted to VisibleWhenImported.

VisibleWhenImported 

This declaration has an owning module, and is visible when that module is imported.

ReachableWhenImported 

This declaration has an owning module, and is visible to lookups that occurs within that module.

And it is reachable in other module when the owning module is transitively imported.

ModulePrivate 

This declaration has an owning module, but is only visible to lookups that occur within that module.

The discarded declarations in global module fragment belongs to this group too.

Definition at line 215 of file DeclBase.h.

◆ ObjCDeclQualifier

ObjCDeclQualifier - 'Qualifiers' written next to the return and parameter types in method declarations.

Other than remembering them and mangling them into the method's signature string, these are ignored by the compiler; they are consumed by certain remote-messaging frameworks.

in, inout, and out are mutually exclusive and apply only to method parameters. bycopy and byref are mutually exclusive and apply only to method parameters (?). oneway applies only to results. All of these expect their corresponding parameter to have a particular type. None of this is currently enforced by clang.

This should be kept in sync with ObjCDeclSpec::ObjCDeclQualifier.

Enumerator
OBJC_TQ_None 
OBJC_TQ_In 
OBJC_TQ_Inout 
OBJC_TQ_Out 
OBJC_TQ_Bycopy 
OBJC_TQ_Byref 
OBJC_TQ_Oneway 
OBJC_TQ_CSNullability 

The nullability qualifier is set when the nullability of the result or parameter was expressed via a context-sensitive keyword.

Definition at line 197 of file DeclBase.h.

Constructor & Destructor Documentation

◆ Decl() [1/5]

clang::Decl::Decl ( )
delete

◆ Decl() [2/5]

clang::Decl::Decl ( const Decl )
delete

◆ Decl() [3/5]

clang::Decl::Decl ( Decl &&  )
delete

◆ Decl() [4/5]

clang::Decl::Decl ( Kind  DK,
DeclContext DC,
SourceLocation  L 
)
inlineprotected

Definition at line 394 of file DeclBase.h.

References add().

◆ Decl() [5/5]

clang::Decl::Decl ( Kind  DK,
EmptyShell  Empty 
)
inlineprotected

Definition at line 404 of file DeclBase.h.

References add().

◆ ~Decl()

Decl::~Decl ( )
protectedvirtualdefault

Member Function Documentation

◆ add()

void Decl::add ( Kind  k)
static

Definition at line 202 of file DeclBase.cpp.

Referenced by Decl().

◆ addAttr()

void Decl::addAttr ( Attr A)

Definition at line 975 of file DeclBase.cpp.

References getAttrs(), hasAttrs(), clang::Attr::isInherited(), and setAttrs().

Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::SemaOpenMP::ActOnFinishedFunctionDefinitionInOpenMPAssumeScope(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnMethodDeclaration(), clang::SemaOpenMP::ActOnOpenMPDeclareSimdDirective(), clang::SemaOpenMP::ActOnOpenMPDeclareTargetName(), clang::SemaOpenMP::ActOnOpenMPDeclareVariantDirective(), clang::SemaOpenMP::ActOnOpenMPRegionStart(), clang::Sema::ActOnPragmaRedefineExtname(), clang::Sema::ActOnPragmaUnused(), clang::Sema::ActOnPragmaWeakID(), clang::Sema::ActOnStartOfLambdaDefinition(), clang::SemaHLSL::ActOnTopLevelFunction(), clang::Sema::ActOnTypedefNameDecl(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddAlignedAttr(), clang::Sema::AddAlignmentAttributesForRecord(), clang::Sema::AddAlignValueAttr(), clang::Sema::AddAllocAlignAttr(), clang::Sema::addAMDGPUFlatWorkGroupSizeAttr(), clang::Sema::addAMDGPUMaxNumWorkGroupsAttr(), clang::Sema::addAMDGPUWavesPerEUAttr(), clang::Sema::AddAnnotationAttr(), clang::Sema::AddAssumeAlignedAttr(), clang::Sema::AddCFAuditedAttribute(), clang::Sema::AddImplicitMSFunctionNoBuiltinAttr(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(), clang::Sema::AddLaunchBoundsAttr(), clang::Sema::AddModeAttr(), clang::Sema::AddMsStructLayoutForRecord(), clang::Sema::AddOptnoneAttributeIfNoConflicts(), clang::Sema::AddParameterABIAttr(), AddPropertyAttrs(), clang::Sema::AddPushedVisibilityAttribute(), clang::Sema::AddSectionMSAllocText(), applyOMPAllocateAttribute(), assignInheritanceModel(), clang::ASTContext::buildImplicitRecord(), buildVarDecl(), clang::Sema::CheckARCMethodDecl(), clang::Sema::checkClassLevelDLLAttribute(), clang::Sema::CheckCompleteVariableDeclaration(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), checkDLLAttributeRedeclaration(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::checkInitMethod(), CheckMultiVersionFunction(), clang::Sema::CheckNontrivialField(), clang::SemaOpenMP::CheckOMPThreadPrivateDecl(), clang::Sema::CheckStaticLocalForDllExport(), copyAttrFromTypedefToDecl(), copyAttrIfPresent(), clang::Sema::CreateBuiltin(), createDefaultTargetVersionFrom(), createPrivatesRecordDecl(), clang::Sema::DeclApplyPragmaWeak(), clang::Sema::DeclareGlobalAllocationFunction(), clang::Sema::FinalizeDeclaration(), handleAbiTagAttr(), handleAcquireCapabilityAttr(), handleAcquiredAfterAttr(), handleAcquiredBeforeAttr(), handleAcquireHandleAttr(), handleAliasAttr(), handleAlignedAttr(), handleAllocSizeAttr(), handleAlwaysInlineAttr(), handleAMDGPUNumSGPRAttr(), handleAMDGPUNumVGPRAttr(), handleAnalyzerNoReturnAttr(), handleAnyX86InterruptAttr(), handleArgumentWithTypeTagAttr(), handleArmBuiltinAliasAttr(), handleARMInterruptAttr(), handleArmNewAttr(), handleAssertCapabilityAttr(), handleAssertExclusiveLockAttr(), handleAssertSharedLockAttr(), handleAttrWithMessage(), handleAvailabilityAttr(), handleBlocksAttr(), handleBTFDeclTagAttr(), handleBuiltinAliasAttr(), handleCallableWhenAttr(), handleCallbackAttr(), handleCallConvAttr(), handleCalledOnceAttr(), handleCapabilityAttr(), handleCFGuardAttr(), handleCleanupAttr(), handleCmseNSEntryAttr(), handleCodeModelAttr(), handleCodeSegAttr(), handleCommonAttr(), handleConstantAttr(), handleConstructorAttr(), handleConsumableAttr(), handleCPUSpecificAttr(), handleDeclspecThreadAttr(), handleDelayedForbiddenType(), handleDependencyAttr(), handleDeprecatedAttr(), handleDestructorAttr(), handleDeviceAttr(), handleDiagnoseAsBuiltinAttr(), handleDiagnoseIfAttr(), handleDLLAttr(), handleEnableIfAttr(), handleEnforceTCBAttr(), handleEnumExtensibilityAttr(), handleErrorAttr(), handleExclusiveTrylockFunctionAttr(), handleExternalSourceSymbolAttr(), handleFormatArgAttr(), handleFormatAttr(), handleFunctionReturnThunksAttr(), handleGlobalAttr(), handleGNUInlineAttr(), handleGuardedByAttr(), handleHandleAttr(), handleHLSLNumThreadsAttr(), handleHLSLParamModifierAttr(), handleHLSLResourceBindingAttr(), handleHLSLShaderAttr(), handleHLSLSV_DispatchThreadIDAttr(), handleIBOutlet(), handleIBOutletCollection(), handleIFuncAttr(), handleInitPriorityAttr(), handleInternalLinkageAttr(), handleLayoutVersion(), handleLockReturnedAttr(), handleLocksExcludedAttr(), handleM68kInterruptAttr(), handleManagedAttr(), handleMinSizeAttr(), handleMinVectorWidthAttr(), handleMipsInterruptAttr(), handleMSConstexprAttr(), handleMSInheritanceAttr(), handleMSP430InterruptAttr(), handleNakedAttr(), handleNoBuiltinAttr(), handleNoDebugAttr(), handleNoEscapeAttr(), handleNoMergeAttr(), handleNonNullAttr(), handleNonNullAttrParameter(), handleNoRandomizeLayoutAttr(), handleNoReturnAttr(), handleNoSanitizeAttr(), handleNoSanitizeSpecificAttr(), handleNoUniqueAddressAttr(), handleNSErrorDomain(), handleObjCBridgeAttr(), handleObjCBridgeMutableAttr(), handleObjCBridgeRelatedAttr(), handleObjCDesignatedInitializer(), handleObjCIndependentClass(), handleObjCMethodFamilyAttr(), handleObjCNSObject(), handleObjCPreciseLifetimeAttr(), handleObjCRequiresSuperAttr(), handleObjCReturnsInnerPointerAttr(), handleObjCRuntimeName(), handleObjCSuppresProtocolAttr(), handleOMPAssumeAttr(), handleOpenCLAccessAttr(), handleOptimizeNoneAttr(), handleOwnershipAttr(), handlePackedAttr(), handleParamTypestateAttr(), handlePassObjectSizeAttr(), handlePatchableFunctionEntryAttr(), handlePreferredName(), handlePreferredTypeAttr(), handlePtGuardedByAttr(), handlePtGuardedVarAttr(), handleRandomizeLayoutAttr(), handleReleaseCapabilityAttr(), handleRequiresCapabilityAttr(), handleRestrictAttr(), handleReturnsNonNullAttr(), handleReturnTypestateAttr(), handleRISCVInterruptAttr(), handleSectionAttr(), handleSentinelAttr(), handleSetTypestateAttr(), handleSharedAttr(), handleSharedTrylockFunctionAttr(), handleSimpleAttribute(), handleStandardNoReturnAttr(), handleSubGroupSize(), handleSuppressAttr(), handleSwiftAsyncAttr(), handleSwiftAsyncError(), handleSwiftAsyncName(), handleSwiftAttrAttr(), handleSwiftBridge(), handleSwiftError(), handleSwiftName(), handleSwiftNewType(), handleTargetAttr(), handleTargetClonesAttr(), handleTargetVersionAttr(), handleTestTypestateAttr(), handleTLSModelAttr(), handleTransparentUnionAttr(), handleTryAcquireCapabilityAttr(), handleTypeTagForDatatypeAttr(), handleUninitializedAttr(), handleUnsafeBufferUsage(), handleUnusedAttr(), handleUuidAttr(), handleVecReturnAttr(), handleVecTypeHint(), handleVisibilityAttr(), handleWarnUnusedResult(), handleWeakImportAttr(), handleWeakRefAttr(), handleWebAssemblyExportNameAttr(), handleWebAssemblyImportModuleAttr(), handleWebAssemblyImportNameAttr(), handleWorkGroupSize(), handleX86ForceAlignArgPointerAttr(), handleXRayLogArgsAttr(), handleZeroCallUsedRegsAttr(), clang::SemaCUDA::inferTargetForImplicitSpecialMember(), InjectAnonymousStructOrUnionMembers(), InsertOCLBuiltinDeclarationsFromTable(), clang::Sema::InstantiateAttrs(), clang::Sema::InstantiateAttrsForDecl(), instantiateDependentDiagnoseIfAttr(), instantiateDependentEnableIfAttr(), instantiateDependentSYCLKernelAttr(), clang::Sema::makeUnavailableInSystemHeader(), clang::SemaCUDA::MaybeAddConstantAttr(), clang::SemaCUDA::maybeAddHostDeviceAttrs(), mergeAlignedAttrs(), mergeDeclAttribute(), clang::Sema::mergeDeclAttributes(), clang::Sema::MergeFunctionDecl(), clang::ASTDeclReader::mergeInheritableAttributes(), mergeInterfaceMethodToImpl(), mergeObjCDirectMembers(), mergeParamDeclAttributes(), patchDefaultTargetVersion(), ProcessAPINotes(), clang::Sema::ProcessPropertyDecl(), clang::Sema::propagateDLLAttrToBaseClassTemplate(), clang::RecordDecl::setCapturedRecord(), clang::SemaCUDA::SetLambdaAttrs(), clang::Sema::updateAttrsForLateParsedTemplate(), clang::ASTDeclReader::UpdateDecl(), and GlobalDeclRefChecker::VisitDeclRefExpr().

◆ attr_begin()

attr_iterator clang::Decl::attr_begin ( ) const
inline

◆ attr_end()

attr_iterator clang::Decl::attr_end ( ) const
inline

◆ attrs()

attr_range clang::Decl::attrs ( ) const
inline

◆ canBeWeakImported()

bool Decl::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.

Parameters
IsDefinitionSet to true to indicate that this declaration cannot be weak-imported because it has a definition.

Definition at line 775 of file DeclBase.cpp.

References getASTContext(), getLangOpts(), and clang::ObjCRuntime::hasWeakClassImport().

Referenced by handleWeakImportAttr(), and isWeakImported().

◆ castFromDeclContext()

Decl * Decl::castFromDeclContext ( const DeclContext D)
static

◆ castToDeclContext()

DeclContext * Decl::castToDeclContext ( const Decl D)
static

Definition at line 1016 of file DeclBase.cpp.

References getKind().

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

◆ classofKind()

static bool clang::Decl::classofKind ( Kind  K)
inlinestatic

Definition at line 1231 of file DeclBase.h.

◆ clearIdentifierNamespace()

void clang::Decl::clearIdentifierNamespace ( )
inline

Clears the namespace of this declaration.

This is useful if we want this declaration to be available for redeclaration lookup but otherwise hidden for ordinary name lookups.

Definition at line 1203 of file DeclBase.h.

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

◆ dropAttr()

template<typename T >
void clang::Decl::dropAttr ( )
inline

◆ dropAttrs() [1/2]

void Decl::dropAttrs ( )

◆ dropAttrs() [2/2]

template<typename... Ts>
void clang::Decl::dropAttrs ( )
inline

Definition at line 551 of file DeclBase.h.

References getAttrs(), and clang::isa().

◆ dump() [1/2]

LLVM_DUMP_METHOD void Decl::dump ( ) const

◆ dump() [2/2]

LLVM_DUMP_METHOD void Decl::dump ( raw_ostream &  Out,
bool  Deserialize = false,
ASTDumpOutputFormat  OutputFormat = ADOF_Default 
) const

◆ dumpColor()

LLVM_DUMP_METHOD void Decl::dumpColor ( ) const

Definition at line 239 of file ASTDumper.cpp.

References getASTContext(), and P.

◆ EnableStatistics()

void Decl::EnableStatistics ( )
static

Definition at line 174 of file DeclBase.cpp.

Referenced by clang::ParseAST().

◆ getAccess()

AccessSpecifier clang::Decl::getAccess ( ) const
inline

Definition at line 512 of file DeclBase.h.

References Access.

Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnEnumConstant(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnTag(), clang::LookupResult::addDecl(), clang::Sema::BuildAnonymousStructUnionMemberReference(), clang::Sema::BuildCXXMemberCallExpr(), clang::Sema::BuildUsingPackDecl(), clang::Sema::BuildUsingShadowDecl(), clang::Sema::BuildVariableInstantiation(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckDestructorAccess(), clang::Sema::CheckFriendAccess(), clang::MemberExpr::Create(), clang::MemberExpr::CreateImplicit(), DiagnoseAccessPath(), diagnoseBadDirectAccess(), EvaluateComparisonBinaryOperator(), clang::Sema::findInheritingConstructor(), clang::CXXRecordDecl::finishedDefaultedOrDeletedMember(), clang::extractapi::DeclarationFragmentsBuilder::getAccessControl(), clang::getConstructorInfo(), hasUnguardedAccess(), clang::TemplateDeclInstantiator::InitMethodInstantiation(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), IsAccessible(), IsMicrosoftUsingDeclarationAccessBug(), clang::SemaOpenMP::isOpenMPCapturedDecl(), IsStructurallyEquivalent(), clang::Sema::MergeVarDecl(), processImplicitMapsWithDefaultMappers(), clang::Sema::ProduceCallSignatureHelp(), clang::Sema::SetMemberAccessSpecifier(), clang::TemplateDeclInstantiator::SubstDefaultedFunction(), clang::transformOMPMappableExprListClause(), clang::ASTNodeImporter::VisitAccessSpecDecl(), clang::JSONNodeDumper::VisitAccessSpecDecl(), clang::TextNodeDumper::VisitAccessSpecDecl(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTDeclWriter::VisitDecl(), clang::ASTNodeImporter::VisitEnumConstantDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTNodeImporter::VisitFieldDecl(), clang::ASTNodeImporter::VisitFriendDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::ASTNodeImporter::VisitFunctionTemplateDecl(), clang::ASTNodeImporter::VisitIndirectFieldDecl(), clang::ASTDeclWriter::VisitParmVarDecl(), clang::ASTNodeImporter::VisitRecordDecl(), clang::ASTNodeImporter::VisitTypeAliasTemplateDecl(), clang::ASTNodeImporter::VisitTypedefNameDecl(), clang::ASTNodeImporter::VisitUnresolvedUsingTypenameDecl(), clang::ASTNodeImporter::VisitUnresolvedUsingValueDecl(), clang::ASTNodeImporter::VisitUsingShadowDecl(), clang::ASTNodeImporter::VisitVarDecl(), clang::ASTNodeImporter::VisitVarTemplateDecl(), and clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl().

◆ getAccessUnsafe()

AccessSpecifier clang::Decl::getAccessUnsafe ( ) const
inline

Retrieve the access specifier for this declaration, even though it may not yet have been properly set.

Definition at line 519 of file DeclBase.h.

References Access.

◆ getAsFunction() [1/2]

const FunctionDecl * clang::Decl::getAsFunction ( ) const
inline

Definition at line 1130 of file DeclBase.h.

References getAsFunction().

◆ getAsFunction() [2/2]

FunctionDecl * Decl::getAsFunction ( )

◆ getASTContext()

ASTContext & Decl::getASTContext ( ) const

Definition at line 501 of file DeclBase.cpp.

References clang::TranslationUnitDecl::getASTContext(), and getTranslationUnitDecl().

Referenced by clang::DeclContext::addHiddenDecl(), clang::StoredDeclsList::addOrReplaceDecl(), clang::CXXMethodDecl::addOverriddenMethod(), clang::CodeGen::CodeGenTypes::addRecordTypeName(), clang::ODRHash::AddStructuralValue(), annotateConsumedSummaryMismatch(), clang::CXXMethodDecl::begin_overridden_methods(), canBeWeakImported(), clang::VarDecl::checkForConstantInitialization(), clang::checkUnsafeBufferUsage(), clang::ObjCInterfaceDecl::ClassImplementsProtocol(), clang::RecordDecl::completeDefinition(), clang::ExternalASTMerger::CompleteType(), clang::LinkageComputer::computeLVForDecl(), clang::PredefinedExpr::ComputeName(), clang::ObjCObjectType::computeSuperClassTypeSlow(), clang::CXXRecordDecl::conversion_begin(), clang::CXXRecordDecl::conversion_end(), clang::LifetimeExtendedTemporaryDecl::Create(), createDefaultTargetVersionFrom(), clang::AvailabilityInfo::createFromDecl(), clang::NamedDecl::declarationReplaces(), clang::Sema::DeclClonePragmaWeak(), clang::FunctionDecl::doesDeclarationForceExternallyVisibleDefinition(), dropAttrs(), dump(), dumpColor(), clang::ento::SymbolConjured::dumpToStream(), clang::CodeGen::CodeGenModule::EmitGlobal(), clang::CodeGen::CodeGenModule::EmitTopLevelDecl(), clang::CXXMethodDecl::end_overridden_methods(), clang::VarDecl::ensureEvaluatedStmt(), evaluateCDTSize(), findGadgets(), clang::ExternalASTMerger::FindOriginalDecl(), clang::ClassTemplateDecl::findPartialSpecialization(), clang::RedeclarableTemplateDecl::findSpecializationImpl(), clang::StructuralEquivalenceContext::findUntaggedStructOrUnionIndex(), fixUPCAddressofArraySubscriptWithSpan(), formatBlockPlaceholder(), FormatFunctionParameter(), generateDiagnosticsForCallLike(), clang::index::generateUSRForDecl(), clang::ASTNameGenerator::Implementation::getAllManglings(), clang::MSGuidDecl::getAsAPValue(), clang::tooling::getAssociatedRange(), clang::StoredDeclsList::getASTContext(), clang::AnalysisDeclContext::getASTContext(), clang::StmtSequence::getASTContext(), getASTMutationListener(), getAttrs(), getAvailability(), clang::ObjCMethodDecl::getBody(), clang::FunctionDecl::getBody(), clang::FunctionDecl::getBuiltinID(), clang::FunctionDecl::getCallResultType(), clang::AnalysisDeclContext::getCFG(), clang::RedeclarableTemplateDecl::getCommonPtr(), clang::LinkageComputer::getDeclLinkageAndVisibility(), clang::VarDecl::getDefinition(), clang::VarDecl::getDescribedVarTemplate(), clang::CXXRecordDecl::getDestructor(), clang::CXXRecordDecl::getDeviceLambdaManglingNumber(), getEnclosingStmtLocation(), DerefSimplePtrArithFixableGadget::getFixits(), UPCPreIncrementGadget::getFixits(), UUCAddAssignGadget::getFixits(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForClassTemplatePartialSpecialization(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForClassTemplateSpecialization(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForCXXMethod(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForEnum(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForObjCMethod(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForOverloadedOperator(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForTypedef(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForVar(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForVarTemplate(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForVarTemplatePartialSpecialization(), clang::extractapi::DeclarationFragmentsBuilder::getFragmentsForVarTemplateSpecialization(), clang::AnalysisDeclContext::getFunctionName(), getID(), clang::ObjCInterfaceDecl::getImplementation(), clang::ObjCCategoryDecl::getImplementation(), clang::FieldDecl::getInClassInitializer(), clang::CXXRecordDecl::getIndirectPrimaryBases(), clang::VarDecl::getInit(), clang::VarDecl::getInitAddress(), clang::ClassTemplateDecl::getInjectedClassNameSpecialization(), clang::RedeclarableTemplateDecl::getInjectedTemplateArgs(), getLambdaCallOperatorHelper(), getLambdaStaticInvokers(), getLangOpts(), clang::LinkageComputer::getLVForDecl(), getMaxAlignment(), clang::VarDecl::getMemberSpecializationInfo(), clang::FunctionDecl::getMinRequiredArguments(), clang::CXXRecordDecl::getMSVtorDispMode(), clang::interp::Record::getName(), getNDSWDS(), clang::tooling::getOccurrencesOfUSRs(), clang::LifetimeExtendedTemporaryDecl::getOrCreateValue(), getPosAsWritten(), clang::OMPDeclareReductionDecl::getPrevDeclInScope(), clang::OMPDeclareMapperDecl::getPrevDeclInScope(), clang::getPrimaryMergedDecl(), clang::NamedDecl::getQualifiedNameAsString(), clang::FunctionDecl::getReturnTypeSourceRange(), getSelfInitExpr(), clang::ObjCMethodDecl::getSendResultType(), clang::ObjCObjectPointerType::getSuperClassType(), clang::CastExpr::getTargetFieldForToUnionCast(), clang::CXXMethodDecl::getThisType(), clang::VarDecl::getTLSKind(), clang::AnalysisDeclContext::getUnoptimizedCFG(), clang::EnumDecl::getValueRange(), getVersionIntroduced(), clang::CXXRecordDecl::getVisibleConversionFunctions(), clang::installapi::getVTableLinkage(), clang::VarDecl::hasConstantInitialization(), clang::VarDecl::hasDefinition(), hasLocalOwningModuleStorage(), clang::installapi::hasRTTI(), hasSameOverloadableAttrs(), clang::Sema::hasStructuralCompatLayout(), clang::ComparisonCategoryInfo::ValueInfo::hasValidIntValue(), clang::installapi::hasVTable(), implicitObjectParamIsLifetimeBound(), clang::CXXConstructorDecl::init_begin(), clang::ObjCImplementationDecl::init_begin(), clang::ento::CheckerContext::isCLibraryFunction(), clang::CXXMethodDecl::isCopyAssignmentOperator(), clang::CXXConstructorDecl::isCopyOrMoveConstructor(), clang::ParmVarDecl::isDestroyedInCallee(), clang::ObjCMethodDecl::isDirectMethod(), clang::ObjCPropertyDecl::isDirectProperty(), IsEquivalentFriend(), isExactClass(), isGRealloc(), isImportedDeclContext(), isInAnotherModuleUnit(), clang::Type::isIncompleteType(), clang::FunctionDecl::isInlineBuiltinDeclaration(), clang::installapi::isInlined(), clang::FunctionDecl::isInlineDefinitionExternallyVisible(), clang::VarDecl::isKnownToBeDefined(), clang::CXXRecordDecl::isLiteral(), clang::CXXMethodDecl::isMoveAssignmentOperator(), clang::FunctionDecl::isMSExternInline(), isNonViableMultiVersionOverload(), clang::Expr::isPotentialConstantExpr(), clang::Expr::isPotentialConstantExprUnevaluated(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::installapi::isRTTIWeakDef(), clang::CXXConstructorDecl::isSpecializationCopyingObject(), isStandardNewDelete(), isStandardRealloc(), IsStructurallyEquivalent(), isSubclass(), clang::VarDecl::isThisDeclarationADefinition(), clang::CXXMethodDecl::isUsualDeallocationFunction(), isWeakImported(), isZeroSized(), clang::CXXRecordDecl::lambdaIsDefaultConstructibleAndAssignable(), clang::RedeclarableTemplateDecl::loadLazySpecializationsImpl(), clang::CXXRecordDecl::lookupInBases(), clang::RecordDecl::mayInsertExtraPadding(), MultiVersionTypesCompatible(), clang::CXXMethodDecl::overridden_methods(), patchDefaultTargetVersion(), clang::StoredDeclsList::prependDeclNoReplace(), print(), clang::TemplateParamObjectDecl::printAsExpr(), clang::TemplateParamObjectDecl::printAsInit(), clang::NamedDecl::printName(), clang::TagDecl::printName(), clang::NamedDecl::printNestedNameSpecifier(), clang::NamedDecl::printQualifiedName(), clang::ClassTemplateSpecializationDecl::Profile(), clang::ClassTemplatePartialSpecializationDecl::Profile(), clang::VarTemplateSpecializationDecl::Profile(), clang::VarTemplatePartialSpecializationDecl::Profile(), clang::CXXRecordDecl::removeConversion(), saveHash(), clang::ObjCMethodDecl::setAsRedeclaration(), setAttrs(), clang::CXXRecordDecl::setBases(), clang::FieldDecl::setBitWidth(), clang::RecordDecl::setCapturedRecord(), clang::ObjCImplDecl::setClassInterface(), clang::DeclRefExpr::setDecl(), clang::FunctionDecl::setDeletedAsWritten(), clang::VarDecl::setDescribedVarTemplate(), clang::ObjCInterfaceDecl::setExternallyCompleted(), clang::ClassTemplateSpecializationDecl::setExternLoc(), clang::VarTemplateSpecializationDecl::setExternLoc(), clang::FunctionDecl::setFunctionTemplateSpecialization(), clang::ObjCCategoryDecl::setImplementation(), clang::ObjCInterfaceDecl::setImplementation(), clang::VarDecl::setInit(), clang::ClassTemplateSpecializationDecl::setInstantiationOf(), clang::VarTemplateSpecializationDecl::setInstantiationOf(), clang::CXXRecordDecl::setInstantiationOfMemberClass(), clang::EnumDecl::setInstantiationOfMemberEnum(), clang::FunctionDecl::setInstantiationOfMemberFunction(), clang::VarDecl::setInstantiationOfStaticDataMember(), clang::CXXRecordDecl::setLambdaNumbering(), setLexicalDeclContext(), clang::TypedefNameDecl::setModedTypeSourceInfo(), clang::LabelDecl::setMSAsmLabel(), clang::FunctionDecl::setParams(), clang::BlockDecl::setParams(), clang::DeclaratorDecl::setQualifierInfo(), clang::TagDecl::setQualifierInfo(), clang::VarTemplateSpecializationDecl::setTemplateArgsInfo(), clang::ClassTemplateSpecializationDecl::setTemplateKeywordLoc(), clang::VarTemplateSpecializationDecl::setTemplateKeywordLoc(), clang::DeclaratorDecl::setTemplateParameterListsInfo(), clang::TagDecl::setTemplateParameterListsInfo(), clang::VarDecl::setTemplateSpecializationKind(), clang::FunctionDecl::setTemplateSpecializationKind(), clang::DeclaratorDecl::setTrailingRequiresClause(), clang::ClassTemplateSpecializationDecl::setTypeAsWritten(), clang::VarTemplateSpecializationDecl::setTypeAsWritten(), shouldOmitDefinition(), shouldRunOnFunctionOrMethod(), clang::shouldSkipCheckingODR(), clang::CXXMethodDecl::size_overridden_methods(), clang::TagDecl::startDefinition(), updateOutOfDate(), useInlineVisibilityHidden(), clang::TextNodeDumper::Visit(), clang::ASTNodeTraverser< Derived, NodeDelegateType >::Visit(), clang::installapi::InstallAPIVisitor::VisitFunctionDecl(), clang::TextNodeDumper::VisitImportDecl(), clang::ASTDeclReader::VisitLifetimeExtendedTemporaryDecl(), clang::installapi::InstallAPIVisitor::VisitObjCCategoryDecl(), clang::installapi::InstallAPIVisitor::VisitObjCInterfaceDecl(), clang::ASTNodeImporter::VisitRecordDecl(), clang::TrivialFunctionAnalysisVisitor::VisitUnaryOperator(), clang::TextNodeDumper::VisitUnresolvedUsingTypenameDecl(), clang::TextNodeDumper::VisitUnresolvedUsingValueDecl(), clang::TextNodeDumper::VisitUsingDecl(), clang::JSONNodeDumper::VisitUsingDecl(), clang::TextNodeDumper::VisitVarDecl(), clang::installapi::InstallAPIVisitor::VisitVarDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarDecl(), and WarnUndefinedMethod().

◆ getASTMutationListener()

ASTMutationListener * Decl::getASTMutationListener ( ) const
protected

◆ getAttr()

template<typename T >
T * clang::Decl::getAttr ( ) const
inline

Definition at line 578 of file DeclBase.h.

References getAttrs(), and hasAttrs().

Referenced by clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnMethodDeclaration(), clang::Sema::ActOnStartNamespaceDef(), clang::Sema::ActOnStartOfFunctionDef(), clang::SemaHLSL::ActOnTopLevelFunction(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddParameterABIAttr(), clang::CodeGen::CGHLSLRuntime::annotateHLSLResource(), checkAttributesAfterMerging(), checkAttrMutualExclusion(), clang::Sema::CheckBaseSpecifier(), clang::consumed::ConsumedStmtVisitor::checkCallability(), clang::Sema::CheckCompleteVariableDeclaration(), checkDLLAttributeRedeclaration(), clang::SemaHLSL::CheckEntryPoint(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckIfOverriddenFunctionIsMarkedFinal(), clang::Sema::checkIllFormedTrivialABIStruct(), CheckMultiVersionAdditionalDecl(), CheckMultiVersionFirstFunction(), CheckMultiVersionFunction(), CheckMultiVersionValue(), clang::Sema::CheckObjCMethodDirectOverrides(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckOverridingFunctionAttributes(), checkPreviousOMPAllocateAttribute(), clang::SemaHLSL::CheckSemanticAnnotation(), clang::Sema::CheckStaticLocalForDllExport(), CheckTargetCausesMultiVersioning(), checkUndefinedButUsed(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), copyAttrFromTypedefToDecl(), copyAttrIfPresent(), GlobalDeclRefChecker::declareTargetInitializer(), clang::Sema::DiagnoseSentinelCalls(), clang::Sema::DiagnoseUnusedExprResult(), DiagnoseUnusedOfDecl(), DoEmitAvailabilityWarning(), EmitGlobalNamedRegister(), emitReadOnlyPlacementAttrWarning(), clang::Sema::FinalizeDeclaration(), clang::index::generateUSRForDecl(), clang::CodeGen::CodeGenModule::GenKernelArgMetadata(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), clang::CodeGen::CodeGenFunction::OMPBuilderCBHelpers::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPRuntimeGPU::getAddressOfLocalVariable(), getCallingConventionForDecl(), clang::getDLLAttr(), GetFullTypeForDeclarator(), clang::CFGCleanupFunction::getFunctionDecl(), clang::ASTContext::getFunctionFeatureMap(), GetMatchingCType(), getNonNullAttr(), clang::CodeGen::CodeGenModule::getOMPAllocateAlignment(), getOpenCLArgAccess(), clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(), clang::index::getSymbolInfo(), clang::CallExpr::getUnusedResultAttr(), getVisibilityOf(), clang::CodeGen::CodeGenModule::GetWeakRefReference(), handleArmNewAttr(), clang::consumed::ConsumedStmtVisitor::handleCall(), handleCodeSegAttr(), handleConstantAttr(), handleCPUSpecificAttr(), handleDeviceAttr(), handleLifetimeCategoryAttr(), handleMinVectorWidthAttr(), handleNoBuiltinAttr(), handleOpenCLAccessAttr(), handleRISCVInterruptAttr(), handleSubGroupSize(), handleSwiftAsyncAttr(), handleSwiftAsyncError(), handleSwiftBridge(), handleTargetClonesAttr(), handleVecReturnAttr(), handleVecTypeHint(), handleWorkGroupSize(), clang::CodeGen::CGOpenMPRuntime::hasAllocateAttributeForGlobalVar(), clang::CodeGen::CGOpenMPRuntimeGPU::hasAllocateAttributeForGlobalVar(), hasArmZAState(), hasArmZT0State(), hasExplicitAttr(), hasIdenticalPassObjectSizeAttrs(), hasImplicitAttr(), clang::SemaCUDA::inferTargetForImplicitSpecialMember(), clang::Sema::InstantiateDefaultCtorDefaultArgs(), isAllocatableDecl(), isBetterMultiversionCandidate(), clang::Sema::isCFError(), isGeneratedDecl(), clang::MangleContext::mangleName(), mapConsumableAttrState(), MaybeAddSentinel(), clang::ASTContext::mayExternalize(), clang::Sema::mergeAlwaysInlineAttr(), clang::Sema::mergeCodeSegAttr(), clang::Sema::mergeDeclAttributes(), clang::Sema::mergeDLLExportAttr(), clang::Sema::mergeErrorAttr(), clang::Sema::MergeFunctionDecl(), clang::Sema::mergeImportModuleAttr(), clang::Sema::mergeImportNameAttr(), clang::Sema::mergeMinSizeAttr(), clang::Sema::mergeMSInheritanceAttr(), clang::SemaHLSL::mergeNumThreadsAttr(), clang::Sema::mergeOptimizeNoneAttr(), mergeParamDeclAttributes(), clang::SemaHLSL::mergeParamModifierAttr(), clang::Sema::mergeSectionAttr(), clang::SemaHLSL::mergeShaderAttr(), clang::Sema::mergeSwiftNameAttr(), clang::Sema::mergeUuidAttr(), clang::Sema::MergeVarDecl(), mergeVisibilityAttr(), clang::Sema::NoteOverloadCandidate(), noteOverloads(), clang::Sema::ProcessDeclAttributeList(), clang::Sema::ProcessPropertyDecl(), recordUsesEBO(), clang::CodeGen::CodeGenModule::setGlobalVisibility(), clang::CodeGen::CGHLSLRuntime::setHLSLEntryAttributes(), clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition(), clang::CodeGen::CodeGenModule::setTLSMode(), testsFor(), clang::CodeGen::CGOpenMPRuntimeGPU::translateParameter(), clang::arcmt::trans::BlockObjCVariableTraverser::traverseBody(), clang::Sema::UnifySection(), and clang::consumed::ConsumedStmtVisitor::VisitParmVarDecl().

◆ getAttrs() [1/2]

AttrVec & clang::Decl::getAttrs ( )
inline

◆ getAttrs() [2/2]

const AttrVec & Decl::getAttrs ( ) const

Definition at line 998 of file DeclBase.cpp.

References getASTContext(), and clang::ASTContext::getDeclAttrs().

◆ getAvailability()

AvailabilityResult Decl::getAvailability ( std::string *  Message = nullptr,
VersionTuple  EnclosingVersion = VersionTuple(),
StringRef *  RealizedPlatform = nullptr 
) const

Determine the availability of the given declaration.

This routine will determine the most restrictive availability of the given declaration (e.g., preferring 'unavailable' to 'deprecated').

Parameters
MessageIf non-NULL and the result is not AR_Available, will be set to a (possibly empty) message describing why the declaration has not been introduced, is deprecated, or is unavailable.
EnclosingVersionThe version to compare with. If empty, assume the deployment target version.
RealizedPlatformIf non-NULL and the availability result is found in an available attribute it will set to the platform which is written in the available attribute.

Definition at line 709 of file DeclBase.cpp.

References clang::AR_Available, clang::AR_Deprecated, clang::AR_Unavailable, attrs(), CheckAvailability(), getASTContext(), and clang::Result.

Referenced by clang::Sema::addMethodToGlobalList(), clang::Sema::CanUseDecl(), clang::Sema::DiagnoseAvailabilityOfDecl(), DiagnoseObjCImplementedDeprecations(), clang::Sema::DiagnoseUnimplementedProperties(), getDeclAvailability(), isDeprecated(), isUnavailable(), ShouldDiagnoseAvailabilityOfDecl(), and shouldWarnUndefinedMethod().

◆ getBeginLoc()

SourceLocation clang::Decl::getBeginLoc ( ) const
inline

Definition at line 436 of file DeclBase.h.

References clang::SourceRange::getBegin(), and getSourceRange().

Referenced by clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnPropertyImplDecl(), clang::CodeGen::CodeGenModule::AddDeferredUnusedCoverageMapping(), clang::Sema::CheckObjCBridgeRelatedConversions(), clang::ento::PathDiagnosticLocation::createBegin(), clang::ODRDiagsEmitter::diagnoseMismatch(), clang::Sema::diagnoseNullResettableSynthesizedSetters(), clang::CodeGen::CGOpenMPRuntimeGPU::emitFunctionProlog(), GenerateFixForUnusedDecl(), getDeclLocsForCommentSearch(), getSourceRangeToTokenEnd(), handleAnyX86InterruptAttr(), handleMIGServerRoutineAttr(), handleNSErrorDomain(), handleObjCBridgeAttr(), handleObjCBridgeMutableAttr(), handleObjCBridgeRelatedAttr(), handleObjCExternallyRetainedAttr(), handleObjCOwnershipAttr(), handleObjCRequiresSuperAttr(), handleObjCReturnsInnerPointerAttr(), handlePassObjectSizeAttr(), handleSimpleAttributeOrDiagnose(), handleXReturnsXRetainedAttr(), clang::syntax::TreeBuilder::isResponsibleForCreatingDeclaration(), clang::sema::AnalysisBasedWarnings::IssueWarnings(), MatchTemplateParameterKind(), clang::InitializationSequence::Perform(), clang::Sema::PrintPragmaAttributeInstantiationPoint(), RedeclarePropertyAccessor(), ShouldDiagnoseAvailabilityInContext(), clang::LexicallyOrderedRecursiveASTVisitor< Derived >::TraverseDeclContextHelper(), clang::ASTNodeImporter::VisitLabelDecl(), clang::ASTDeclWriter::VisitLabelDecl(), clang::ASTDeclWriter::VisitOMPDeclareReductionDecl(), clang::ASTDeclWriter::VisitPragmaCommentDecl(), and clang::ASTDeclWriter::VisitPragmaDetectMismatchDecl().

◆ getBody()

virtual Stmt * clang::Decl::getBody ( ) const
inlinevirtual

getBody - If this Decl represents a declaration for a body of code, such as a function or method definition, this method returns the top-level Stmt* of that body.

Otherwise this method returns null.

Reimplemented in clang::FunctionDecl, clang::BlockDecl, clang::CapturedDecl, and clang::ObjCMethodDecl.

Definition at line 1076 of file DeclBase.h.

Referenced by clang::CloneDetector::analyzeCodeBody(), CheckStringRefAssignedTemporary(), clang::checkUnsafeBufferUsage(), clang::ento::PathDiagnosticLocation::createDeclBegin(), emitDiagnostics(), findGadgets(), getBodyRBrace(), clang::ento::getWidenedLoopState(), hasBody(), clang::sema::AnalysisBasedWarnings::IssueWarnings(), and populateExecutedLinesWithFunctionSignature().

◆ getBodyRBrace()

SourceLocation Decl::getBodyRBrace ( ) const

getBodyRBrace - Gets the right brace of the body, if a body exists.

This works whether the body is a CompoundStmt or a CXXTryStmt.

Definition at line 1029 of file DeclBase.cpp.

References clang::Definition, and getBody().

Referenced by clang::ento::PathDiagnosticLocation::createDeclEnd().

◆ getCachedLinkage()

Linkage clang::Decl::getCachedLinkage ( ) const
inlineprotected

◆ getCanonicalDecl() [1/2]

virtual Decl * clang::Decl::getCanonicalDecl ( )
inlinevirtual

Retrieves the "canonical" declaration of the given declaration.

Reimplemented in clang::NamespaceDecl, clang::VarDecl, clang::FunctionDecl, clang::FieldDecl, clang::EnumConstantDecl, clang::IndirectFieldDecl, clang::TypedefNameDecl, clang::TagDecl, clang::EnumDecl, clang::CXXRecordDecl, clang::CXXMethodDecl, clang::CXXConstructorDecl, clang::CXXDestructorDecl, clang::CXXConversionDecl, clang::NamespaceAliasDecl, clang::UsingShadowDecl, clang::UsingDecl, clang::UsingEnumDecl, clang::UsingPackDecl, clang::UnresolvedUsingValueDecl, clang::UnresolvedUsingTypenameDecl, clang::ObjCMethodDecl, clang::ObjCInterfaceDecl, clang::ObjCIvarDecl, clang::ObjCProtocolDecl, clang::RedeclarableTemplateDecl, clang::FunctionTemplateDecl, clang::ClassTemplateDecl, clang::TypeAliasTemplateDecl, clang::VarTemplateDecl, clang::ConceptDecl, and clang::TemplateParamObjectDecl.

Definition at line 967 of file DeclBase.h.

Referenced by clang::Sema::ActOnPragmaMSAllocText(), clang::ODRHash::AddDecl(), clang::MultiLevelTemplateArgumentList::addOuterTemplateArguments(), AddTemplateParameterChunks(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::ASTContext::cacheRawCommentForDecl(), CheckIdentityFieldAssignment(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentPointerToMember(), compareDeclarations(), clang::NamedDecl::declarationReplaces(), clang::Sema::DeclareImplicitDeductionGuides(), clang::declaresSameEntity(), DeduceNonTypeTemplateArgument(), clang::ASTContext::deduplicateMergedDefinitonsFor(), DiagnoseSelfAssignment(), clang::Sema::DiagnoseSelfMove(), clang::Sema::DiagnoseUseOfDecl(), diagnoseUseOfInternalDeclInInlineFunction(), clang::CodeGen::CGDebugInfo::emitFunctionStart(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), clang::ADLResult::erase(), clang::ASTReader::forEachImportedKeyDecl(), clang::index::generateUSRForDecl(), getCanonicalDecl(), getCanonicalDecl(), getCanonicalParmVarDecl(), clang::ASTContext::getCanonicalTemplateArgument(), clang::ASTContext::getCanonicalTemplateName(), clang::ASTContext::getCommentForDecl(), clang::DeclarationNameTable::getCXXDeductionGuideName(), clang::ObjCInterfaceType::getDecl(), getDeclForLocalLookup(), clang::ASTReader::GetExistingDecl(), clang::ASTWriter::getFirstLocalDecl(), clang::NamedDecl::getFormalLinkage(), clang::ASTReader::getKeyDeclaration(), clang::ASTContext::getModulesWithMergedDefinition(), clang::Sema::getNormalizedAssociatedConstraints(), clang::CallGraph::getOrInsertNode(), clang::ASTContext::getRawCommentForAnyRedecl(), clang::ASTContext::getSubstTemplateTypeParmPackType(), clang::VTableContextBase::getThunkInfo(), clang::ASTContext::getUnresolvedUsingType(), handleLifetimeCategoryAttr(), hasRecursiveCallInPath(), clang::ASTNodeImporter::ImportAPValue(), clang::ADLResult::insert(), isCanonicalDecl(), clang::ento::isCapturedByReference(), IsEquivalentForUsingDecl(), clang::OverloadCandidateSet::isNewCandidate(), clang::SemaOpenMP::isOpenMPCapturedByRef(), clang::SemaOpenMP::isOpenMPDeclareMapperVarDeclAllowed(), clang::SemaOpenMP::isOpenMPPrivateDecl(), clang::ento::isPossiblyEscaped(), isSameDeclaration(), isSameTemplate(), IsStructurallyEquivalent(), isUsed(), clang::Sema::LookupQualifiedName(), clang::Sema::LookupTemplateName(), MatchesFriend(), clang::ASTContext::mergeDefinitionIntoModule(), clang::Sema::PushSatisfactionStackEntry(), clang::ASTDeclWriter::RegisterTemplateSpecialization(), clang::LookupResult::resolveKind(), clang::Sema::SatisfactionStackContains(), setIsUsed(), shouldBeHidden(), clang::Sema::tryCaptureVariable(), clang::ASTDeclReader::UpdateDecl(), clang::ASTDeclReader::Visit(), clang::ASTDeclReader::VisitMSGuidDecl(), clang::ASTDeclReader::VisitUnnamedGlobalConstantDecl(), and wasDifferentDeclUsedForInlining().

◆ getCanonicalDecl() [2/2]

const Decl * clang::Decl::getCanonicalDecl ( ) const
inline

Definition at line 968 of file DeclBase.h.

References getCanonicalDecl().

◆ getDeclContext() [1/2]

DeclContext * clang::Decl::getDeclContext ( )
inline

Definition at line 453 of file DeclBase.h.

Referenced by clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXEnterDeclInitializer(), clang::Sema::ActOnDeclarator(), clang::Sema::ActOnEnumConstant(), clang::Sema::ActOnFinishObjCImplementation(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::SemaOpenMP::ActOnOpenMPIdExpression(), clang::Sema::ActOnReenterTemplateScope(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagFinishDefinition(), clang::Sema::ActOnTypedefNameDecl(), clang::Sema::ActOnVariableDeclarator(), clang::ASTImporterLookupTable::add(), addAssociatedClassesAndNamespaces(), clang::TypoCorrectionConsumer::addCorrection(), clang::Sema::AddFunctionCandidates(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddMethodCandidate(), clang::Sema::addMethodToGlobalList(), clang::CodeGen::CodeGenTypes::addRecordTypeName(), addRedeclaredMethods(), AddTopLevelDeclarationToHash(), adjustCVQualifiersForCXXThisWithinLambda(), adjustDeclContextForDeclaratorDecl(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildClassMessage(), clang::Sema::BuildCXXConstructExpr(), clang::Sema::BuildExpressionFromDeclTemplateArgument(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildVariableInstantiation(), clang::Sema::BuildVarTemplateInstantiation(), canEmitSpuriousReferenceToVariable(), clang::Sema::CheckAddressOfOperand(), clang::SemaCUDA::checkAllowedInitializer(), checkAtomicPropertyMismatch(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckConceptTemplateId(), clang::Sema::CheckCXXDefaultArgExpr(), clang::Sema::CheckDeductionGuideDeclarator(), clang::Sema::CheckDependentFunctionTemplateSpecialization(), CheckExplicitInstantiationScope(), clang::Sema::CheckExplicitlyDefaultedFunction(), clang::Sema::CheckFriendAccess(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::checkInitMethod(), clang::Sema::CheckLiteralOperatorDeclaration(), clang::Sema::CheckMessageArgumentTypes(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), CheckMultiVersionFunction(), clang::Sema::CheckObjCMethodDirectOverrides(), clang::Sema::CheckObjCMethodOverride(), clang::Sema::CheckObjCMethodOverrides(), checkObjCUnusedIvar(), CheckOperatorNewDeleteDeclarationScope(), clang::Sema::CheckShadow(), clang::Sema::CheckShadowingDeclModification(), CheckSimplerImplicitMovesMSVCWorkaround(), clang::Sema::CheckTemplateArgument(), clang::Sema::CheckTemplateArgumentList(), clang::Sema::CheckTemplatePartialSpecializationArgs(), CheckTemplateSpecializationScope(), checkTupleLikeDecomposition(), checkTypeParamListConsistency(), clang::Sema::CheckUsingShadowDecl(), clang::Sema::checkVarDeclRedefinition(), clang::Sema::CheckVarTemplateId(), collectOverriddenMethodsSlow(), collectViableConversionCandidates(), compareOverloads(), clang::ASTReader::CompleteRedeclChain(), computeCachedProperties(), clang::computeDependence(), clang::LinkageComputer::computeLVForDecl(), clang::PredefinedExpr::ComputeName(), ConvertDeducedTemplateArguments(), clang::LifetimeExtendedTemporaryDecl::Create(), clang::CodeCompletionResult::CreateCodeCompletionString(), clang::CodeCompletionResult::createCodeCompletionStringForDecl(), createFriendTagNNSFixIt(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::createHierarchyInformationForDecl(), clang::TypeName::createNestedNameSpecifierForScopeOf(), clang::TypeName::createOuterNNS(), clang::NamedDecl::declarationReplaces(), clang::Sema::DeclareAggregateDeductionGuideFromInitList(), clang::Sema::DeclareImplicitDeductionGuides(), clang::Sema::DeclClonePragmaWeak(), clang::ASTContext::DeclMustBeEmitted(), clang::Sema::DeduceTemplateSpecializationFromInitializer(), clang::Sema::DefaultSynthesizeProperties(), clang::ObjCMethodDecl::definedInNSObject(), clang::Sema::DiagnoseAmbiguousLookup(), diagnoseBadDirectAccess(), clang::Sema::DiagnoseDependentMemberLookup(), clang::Sema::DiagnoseEmptyLookup(), diagnoseInstanceReference(), DiagnoseInvalidRedeclaration(), diagnoseNoescape(), diagnoseOpenCLTypes(), clang::Sema::DiagnoseOwningPropertyGetterSynthesis(), clang::Sema::DiagnosePropertyMismatch(), clang::Sema::DiagnoseShadowingLambdaDecls(), diagnoseUncapturableValueReferenceOrBinding(), clang::Sema::DiagnoseUninstantiableTemplate(), clang::Sema::DiagnoseUseOfDecl(), clang::Sema::DiagRedefinedPlaceholderFieldDecl(), DoMarkPotentialCapture(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), clang::CodeGen::CGDebugInfo::EmitNamespaceAlias(), emitPrivatesInit(), clang::CodeGen::CGDebugInfo::EmitUsingDirective(), clang::CodeGen::CGDebugInfo::EmitUsingShadowDecl(), evaluateVarDeclInit(), FilterMethodsByTypeBound(), clang::Sema::FinalizeDeclaration(), findBackingIvar(), FindConversionForRefInit(), FindDeclaringClass(), findExplicitInstancetypeDeclarer(), clang::Sema::FindInstantiatedDecl(), clang::LocalInstantiationScope::findInstantiationOf(), findMetaClassAlloc(), clang::StructuralEquivalenceContext::findUntaggedStructOrUnionIndex(), clang::Sema::FixOverloadedFunctionReference(), clang::ASTContext::forEachMultiversionedFunctionVersion(), FormatFunctionParameter(), getAsDeclContextOrEnclosing(), getAssignmentAction(), clang::BodyFarm::getBody(), clang::ObjCMethodDecl::getCanonicalDecl(), clang::ObjCMethodDecl::getCategory(), getCategoryContext(), clang::ObjCMethodDecl::getClassInterface(), clang::ConstructorUsingShadowDecl::getConstructedBaseClass(), clang::ObjCIvarDecl::getContainingInterface(), getContextForScopeMatching(), getDeclAvailability(), getDeclContext(), clang::Sema::TemplateCompareNewDeclInfo::getDeclContext(), getDeclContextForTemplateInstationPattern(), getDeclForLocalLookup(), getDeclLocsForCommentSearch(), clang::TemplateArgument::getDependence(), clang::diff::getEnclosingDeclContext(), getExternalSourceSymbolAttr(), clang::ASTImporter::getFieldIndex(), clang::ASTContext::getMemberPointerPathAdjustment(), getMethodReceiverIfKnownImmutable(), getNonTransparentDeclContext(), clang::ASTContext::getObjContainingInterface(), clang::CodeGen::CodeGenModule::getOrCreateStaticVarDecl(), getOutermostFuncOrBlockContext(), clang::ObjCMethodDecl::getOverriddenMethods(), clang::FieldDecl::getParent(), clang::ConstructorUsingShadowDecl::getParent(), getParentFunctionOrMethod(), clang::diff::SyntaxTree::Impl::getRelativeName(), clang::ObjCMethodDecl::getSendResultType(), clang::Sema::getShadowedDeclaration(), clang::ParmVarDecl::getSourceRange(), getStackIndexOfNearestEnclosingCaptureReadyLambda(), getStaticDeclName(), clang::LifetimeExtendedTemporaryDecl::getStorageDuration(), clang::extractapi::DeclarationFragmentsBuilder::getSubHeading(), clang::index::getSymbolInfo(), getTemplateDepth(), getTranslationUnitDecl(), clang::ObjCPropertyDecl::getUsageType(), clang::ObjCIvarDecl::getUsageType(), clang::ento::MemRegionManager::getVarRegion(), handleCmseNSEntryAttr(), clang::index::IndexingContext::handleDecl(), clang::Sema::HandleDelayedAccessCheck(), handleIBOutletCollection(), handleObjCDesignatedInitializer(), handleObjCDirectAttr(), clang::Sema::HandlePropertyInClassExtension(), clang::Sema::handleTagNumbering(), handleWeakRefAttr(), hasAcceptableMemberSpecialization(), hasConflictingOverload(), hasCopyOrMoveCtorParam(), clang::dataflow::hasOptionalClassName(), hasWrittenStorageAttribute(), HelperToDiagnoseMismatchedMethodsInGlobalPool(), clang::Sema::HideUsingShadowDecl(), clang::SemaCUDA::IdentifyTarget(), clang::ASTImporter::Import(), clang::ASTNodeImporter::ImportDeclContext(), clang::ASTNodeImporter::ImportDeclParts(), clang::Sema::inferGslPointerAttribute(), InNamespace(), clang::TemplateDeclInstantiator::InstantiateEnumDefinition(), clang::Sema::InstantiateFunctionDefinition(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::Sema::InstantiateVariableDefinition(), clang::Sema::InstantiateVariableInitializer(), isAncestorDeclContextOf(), clang::LookupResult::isAvailableForLookup(), clang::isBetterOverloadCandidate(), isCapturingReferenceToHostVarInCUDADeviceLambda(), clang::dataflow::isCheckLikeMethod(), clang::ento::CheckerContext::isCLibraryFunction(), clang::NamedDecl::isCXXClassMember(), isDebuggingContext(), clang::IdentifierResolver::isDeclInScope(), isDeclWithinFunction(), clang::ObjCMethodDecl::isDesignatedInitializerForTheInterface(), isFunctionLocalClass(), clang::FunctionDecl::isGlobal(), isInAnonymousNamespace(), clang::RecordDecl::isInjectedClassName(), isInStdNamespace(), clang::AnalysisDeclContext::isInStdNamespace(), isInStlNamespace(), clang::CXXRecordDecl::isInterfaceLike(), clang::CXXRecordDecl::isLocalClass(), clang::FunctionDecl::isMain(), isMethodContextSameForKindofLookup(), isMethodDeclaredInRootProtocol(), clang::FunctionDecl::isMSVCRTEntryPoint(), isObjCMethodWithTypeParams(), clang::Expr::isObjCSelfExpr(), isOutOfLine(), isOutOfScopePreviousDeclaration(), isParameterOf(), clang::NamedDecl::isPlaceholderVar(), IsRecordContextStructurallyEquivalent(), isReferenceToNonConstCapture(), clang::FunctionDecl::isReplaceableGlobalAllocationFunction(), clang::NamedDecl::isReserved(), clang::FunctionDecl::isReservedGlobalPlacementOperator(), clang::ASTContext::isSameEntity(), isSingleLineLanguageLinkage(), clang::VarDecl::isStaticDataMember(), clang::Sema::isStdInitializerList(), clang::ento::smartptr::isStdSmartPtr(), IsStructurallyEquivalent(), clang::ODRHash::isSubDeclToBeProcessed(), isTemplated(), clang::index::IndexingContext::isTemplateImplicitInstantiation(), isTrackedVar(), IsUserDefinedConversion(), isUsingDeclNotAtClassScope(), clang::Sema::isUsualDeallocationFunction(), clang::CXXMethodDecl::isUsualDeallocationFunction(), clang::Sema::LazilyCreateBuiltin(), LookupMemberExpr(), clang::Sema::LookupOrCreateLabel(), clang::DeclContext::makeDeclVisibleInContext(), clang::MangleContext::mangleObjCMethodName(), clang::ASTImporter::MapImported(), MatchesFriend(), clang::Sema::MatchTemplateParametersToScopeSpecifier(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::mergeObjCMethodDecls(), mergeParamDeclAttributes(), MightInstantiateTo(), clang::tooling::stdlib::Recognizer::operator()(), clang::Sema::ParsedFreeStandingDeclSpec(), clang::Sema::PrintInstantiationStack(), clang::NamedDecl::printNestedNameSpecifier(), clang::NamedDecl::printQualifiedName(), clang::Sema::ProcessAPINotes(), clang::Sema::ProcessPropertyDecl(), RecordModifiableNonNullParam(), clang::ASTImporterLookupTable::remove(), clang::DeclContext::removeDecl(), clang::tooling::replaceNestedName(), ResolveConstructorOverload(), clang::FunctionDecl::setIsPureVirtual(), setLexicalDeclContext(), shouldConsiderLinkage(), ShouldDiagnoseAvailabilityInContext(), ShouldDiagnoseUnusedDecl(), clang::Sema::shouldLinkDependentDeclWithPrevious(), ShouldWarnAboutMissingPrototype(), clang::Sema::ShouldWarnIfUnusedFileScopedDecl(), clang::Sema::SubstDefaultArgument(), SubstDefaultTemplateArgument(), clang::TreeTransform< Derived >::TransformFunctionTypeParam(), clang::CodeGen::CGOpenMPRuntimeGPU::translateParameter(), clang::IdentifierResolver::tryAddTopLevelDecl(), clang::SemaOpenMP::tryCaptureOpenMPLambdas(), clang::Sema::tryCaptureVariable(), clang::Sema::tryLookupUnambiguousFieldDecl(), TryRefInitWithConversionFunction(), TryUserDefinedConversion(), clang::ASTImporterLookupTable::update(), ValidDuplicateEnum(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), clang::ASTNodeImporter::VisitAccessSpecDecl(), clang::ASTDeclWriter::VisitClassTemplateDecl(), clang::ASTDeclWriter::VisitCXXMethodDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTDeclWriter::VisitDecl(), clang::ASTDeclWriter::VisitEnumDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitFieldDecl(), clang::ASTDeclWriter::VisitFieldDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::ASTNodeImporter::VisitFunctionTemplateDecl(), clang::JSONNodeDumper::VisitNamedDecl(), clang::ASTDeclReader::VisitObjCIvarDecl(), clang::ASTDeclWriter::VisitObjCIvarDecl(), clang::ASTDeclWriter::VisitParmVarDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTNodeImporter::VisitStaticAssertDecl(), clang::ASTDeclWriter::VisitTemplateTypeParmDecl(), clang::ASTDeclWriter::VisitTypedefDecl(), clang::ASTNodeImporter::VisitTypedefNameDecl(), clang::ASTDeclWriter::VisitUsingShadowDecl(), clang::installapi::InstallAPIVisitor::VisitVarDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarDecl(), clang::ASTDeclWriter::VisitVarDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarTemplateDecl(), clang::ASTNodeImporter::VisitVarTemplateDecl(), and clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl().

◆ getDeclContext() [2/2]

const DeclContext * clang::Decl::getDeclContext ( ) const
inline

Definition at line 458 of file DeclBase.h.

References getDeclContext().

◆ getDeclKindName()

const char * Decl::getDeclKindName ( ) const

◆ getDefiningAttr()

const Attr * Decl::getDefiningAttr ( ) const

Return this declaration's defining attribute if it has one.

Definition at line 593 of file DeclBase.cpp.

◆ getDescribedTemplate()

TemplateDecl * Decl::getDescribedTemplate ( ) const

If this is a declaration that describes some template, this method returns that template declaration.

Note that this returns nullptr for partial specializations, because they are not modeled as TemplateDecls. Use getDescribedTemplateParams to handle those cases.

Definition at line 239 of file DeclBase.cpp.

Referenced by getDescribedTemplate(), and getDescribedTemplateParams().

◆ getDescribedTemplateParams()

const TemplateParameterList * Decl::getDescribedTemplateParams ( ) const

If this is a declaration that describes some template or partial specialization, this returns the corresponding template parameter list.

Definition at line 252 of file DeclBase.cpp.

References getDescribedTemplate().

Referenced by getTemplateDepth(), and isTemplated().

◆ getEndLoc()

SourceLocation clang::Decl::getEndLoc ( ) const
inline

◆ getExternalSourceSymbolAttr()

ExternalSourceSymbolAttr * Decl::getExternalSourceSymbolAttr ( ) const

Looks on this and related declarations for an applicable external source symbol attribute.

Definition at line 567 of file DeclBase.cpp.

References clang::ast_matchers::attr, clang::Definition, and getDeclContext().

Referenced by GetExternalSourceContainer().

◆ getFriendObjectKind()

FriendObjectKind clang::Decl::getFriendObjectKind ( ) const
inline

Determines whether this declaration is the object of a friend declaration and, if so, what kind.

There is currently no direct way to find the associated FriendDecl.

Definition at line 1215 of file DeclBase.h.

References FOK_Declared, FOK_None, FOK_Undeclared, IDNS_Ordinary, IDNS_OrdinaryFriend, IDNS_Tag, and IDNS_TagFriend.

Referenced by clang::Sema::ActOnPureSpecifier(), clang::Sema::ArgumentDependentLookup(), clang::Sema::canFullyTypeCheckRedeclaration(), clang::Sema::checkClassLevelDLLAttribute(), clang::Sema::CheckDependentFunctionTemplateSpecialization(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), CheckMultiVersionAdditionalDecl(), clang::Sema::CheckOverload(), clang::Sema::CheckRedeclarationModuleOwnership(), clang::Sema::ConstraintExpressionDependsOnEnclosingTemplate(), DiagnoseInvalidRedeclaration(), clang::Sema::FindInstantiatedDecl(), clang::Sema::FinishTemplateArgumentDeduction(), clang::Sema::FriendConstraintsDependOnEnclosingTemplate(), clang::TemplateName::getNameToSubstitute(), getTemplateDepth(), GetTemplateParameterList(), clang::FunctionDecl::getTemplateSpecializationKind(), clang::FunctionDecl::getTemplateSpecializationKindForInstantiation(), clang::Sema::InstantiateClass(), clang::FunctionDecl::isMemberLikeConstrainedFriend(), isTemplated(), clang::FunctionDecl::isThisDeclarationInstantiatedFromAFriendDefinition(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), clang::serialization::needsAnonymousDeclarationNumber(), shouldBeHidden(), clang::Sema::shouldLinkDependentDeclWithPrevious(), clang::TextNodeDumper::Visit(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().

◆ getFunctionType()

const FunctionType * Decl::getFunctionType ( bool  BlocksToo = true) const

◆ getGlobalID()

unsigned clang::Decl::getGlobalID ( ) const
inline

Retrieve the global declaration ID associated with this declaration, which specifies where this Decl was loaded from.

Definition at line 779 of file DeclBase.h.

References isFromASTFile().

Referenced by clang::ASTWriter::getDeclID(), clang::ASTWriter::GetDeclRef(), and clang::ASTReader::getOwningModuleFile().

◆ getID()

int64_t Decl::getID ( ) const

◆ getIdentifierNamespace()

unsigned clang::Decl::getIdentifierNamespace ( ) const
inline

◆ getIdentifierNamespaceForKind()

unsigned Decl::getIdentifierNamespaceForKind ( Kind  DK)
static

◆ getImportedOwningModule()

Module * clang::Decl::getImportedOwningModule ( ) const
inline

◆ getKind()

Kind clang::Decl::getKind ( ) const
inline

Definition at line 447 of file DeclBase.h.

Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnFunctionDeclarator(), clang::ODRHash::AddDecl(), clang::CodeGen::CodeGenModule::AddDeferredUnusedCoverageMapping(), clang::ASTDeclReader::attachLatestDecl(), clang::ASTDeclReader::attachPreviousDecl(), clang::Sema::BuildDeclarationNameExpr(), castToDeclContext(), clang::Sema::CheckTemplateArgumentList(), clang::TranslationUnitDecl::classof(), clang::PragmaCommentDecl::classof(), clang::PragmaDetectMismatchDecl::classof(), clang::ExternCContextDecl::classof(), clang::NamedDecl::classof(), clang::LabelDecl::classof(), clang::NamespaceDecl::classof(), clang::ValueDecl::classof(), clang::DeclaratorDecl::classof(), clang::VarDecl::classof(), clang::ImplicitParamDecl::classof(), clang::ParmVarDecl::classof(), clang::FunctionDecl::classof(), clang::FieldDecl::classof(), clang::EnumConstantDecl::classof(), clang::IndirectFieldDecl::classof(), clang::TypeDecl::classof(), clang::TypedefNameDecl::classof(), clang::TypedefDecl::classof(), clang::TypeAliasDecl::classof(), clang::TagDecl::classof(), clang::EnumDecl::classof(), clang::RecordDecl::classof(), clang::FileScopeAsmDecl::classof(), clang::TopLevelStmtDecl::classof(), clang::CapturedDecl::classof(), clang::ExportDecl::classof(), clang::EmptyDecl::classof(), clang::HLSLBufferDecl::classof(), clang::DeclContext::classof(), clang::AccessSpecDecl::classof(), clang::CXXRecordDecl::classof(), clang::CXXDeductionGuideDecl::classof(), clang::RequiresExprBodyDecl::classof(), clang::CXXMethodDecl::classof(), clang::CXXConstructorDecl::classof(), clang::CXXDestructorDecl::classof(), clang::CXXConversionDecl::classof(), clang::LinkageSpecDecl::classof(), clang::UsingDirectiveDecl::classof(), clang::NamespaceAliasDecl::classof(), clang::LifetimeExtendedTemporaryDecl::classof(), clang::UsingShadowDecl::classof(), clang::BaseUsingDecl::classof(), clang::UsingDecl::classof(), clang::ConstructorUsingShadowDecl::classof(), clang::UsingEnumDecl::classof(), clang::UsingPackDecl::classof(), clang::UnresolvedUsingValueDecl::classof(), clang::UnresolvedUsingTypenameDecl::classof(), clang::UnresolvedUsingIfExistsDecl::classof(), clang::StaticAssertDecl::classof(), clang::BindingDecl::classof(), clang::DecompositionDecl::classof(), clang::MSPropertyDecl::classof(), clang::MSGuidDecl::classof(), clang::UnnamedGlobalConstantDecl::classof(), clang::FriendDecl::classof(), clang::ObjCMethodDecl::classof(), clang::ObjCTypeParamDecl::classof(), clang::ObjCPropertyDecl::classof(), clang::ObjCContainerDecl::classof(), clang::ObjCInterfaceDecl::classof(), clang::ObjCIvarDecl::classof(), clang::ObjCAtDefsFieldDecl::classof(), clang::ObjCProtocolDecl::classof(), clang::ObjCCategoryDecl::classof(), clang::ObjCImplDecl::classof(), clang::ObjCCategoryImplDecl::classof(), clang::ObjCImplementationDecl::classof(), clang::ObjCCompatibleAliasDecl::classof(), clang::ObjCPropertyImplDecl::classof(), clang::OMPThreadPrivateDecl::classof(), clang::OMPDeclareReductionDecl::classof(), clang::OMPDeclareMapperDecl::classof(), clang::OMPRequiresDecl::classof(), clang::OMPAllocateDecl::classof(), clang::TemplateDecl::classof(), clang::RedeclarableTemplateDecl::classof(), clang::FunctionTemplateDecl::classof(), clang::NonTypeTemplateParmDecl::classof(), clang::TemplateTemplateParmDecl::classof(), clang::BuiltinTemplateDecl::classof(), clang::ClassTemplateSpecializationDecl::classof(), clang::ClassTemplatePartialSpecializationDecl::classof(), clang::ClassTemplateDecl::classof(), clang::FriendTemplateDecl::classof(), clang::TypeAliasTemplateDecl::classof(), clang::VarTemplateSpecializationDecl::classof(), clang::VarTemplatePartialSpecializationDecl::classof(), clang::VarTemplateDecl::classof(), clang::ConceptDecl::classof(), clang::ImplicitConceptSpecializationDecl::classof(), clang::TemplateParamObjectDecl::classof(), compareDeclarations(), clang::ASTReader::CompleteRedeclChain(), clang::LinkageComputer::computeLVForDecl(), clang::NamedDecl::declarationReplaces(), clang::ODRDiagsEmitter::diagnoseMismatch(), dumpPreviousDecl(), clang::CodeGen::CodeGenModule::EmitDeferredUnusedCoverageMappings(), clang::CodeGen::CodeGenModule::EmitTopLevelDecl(), clang::comments::DeclInfo::fill(), clang::ObjCContainerDecl::FindPropertyDeclaration(), clang::getCursorKindForDecl(), clang::ASTNodeKind::getFromNode(), getKind(), clang::ASTDeclReader::getMostRecentDecl(), clang::Sema::getNamedReturnInfo(), clang::getReplacedTemplateParameterList(), clang::index::getSymbolInfo(), clang::NamedDecl::getUnderlyingDecl(), clang::VarDecl::isFileVarDecl(), clang::VarDecl::isFunctionOrMethodVarDecl(), isInstantiationOf(), clang::VarDecl::isLocalVarDecl(), clang::VarDecl::isLocalVarDeclOrParm(), clang::syntax::TreeBuilder::isResponsibleForCreatingDeclaration(), clang::ASTContext::isSameEntity(), clang::ASTContext::isSameTemplateParameter(), clang::VarDecl::isStaticDataMember(), IsStructurallyEquivalent(), clang::ODRHash::isSubDeclToBeProcessed(), isTemplateParameter(), clang::TemplateDecl::isTypeAlias(), MatchTemplateParameterKind(), clang::ento::CheckerManager::runCheckersOnASTDecl(), setNonMemberOperator(), clang::RecursiveASTVisitor< Derived >::TraverseDecl(), clang::declvisitor::Base< Ptr, ImplClass, RetTy >::Visit(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTDeclWriter::VisitFieldDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTDeclReader::VisitRedeclarableTemplateDecl(), and clang::ASTDeclWriter::VisitVarDecl().

◆ getLangOpts()

const LangOptions & Decl::getLangOpts ( ) const

◆ getLexicalDeclContext() [1/2]

DeclContext * clang::Decl::getLexicalDeclContext ( )
inline

getLexicalDeclContext - The declaration context where this Decl was lexically declared (LexicalDC).

May be different from getDeclContext() (SemanticDC). e.g.:

namespace A { void f(); // SemanticDC == LexicalDC == 'namespace A' } void A::f(); // SemanticDC == namespace 'A' // LexicalDC == global namespace

Definition at line 907 of file DeclBase.h.

Referenced by clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::ASTUnit::addFileLevelDecl(), clang::DeclContext::addHiddenDecl(), clang::Sema::AddInitializerToDecl(), adjustDeclContextForDeclaratorDecl(), clang::Sema::AreConstraintExpressionsEqual(), clang::Sema::ArgumentDependentLookup(), clang::Sema::BuildVariableInstantiation(), CalculateTemplateDepthForConstraints(), clang::Sema::canFullyTypeCheckRedeclaration(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckForFunctionRedefinition(), clang::Sema::CheckFunctionTemplateSpecialization(), clang::Sema::CheckRedeclarationExported(), checkTupleLikeDecomposition(), clang::Sema::CompleteLambdaCallOperator(), clang::ASTReader::CompleteRedeclChain(), clang::DeclContext::containsDecl(), clang::Sema::DiagnoseDeletedDefaultedFunction(), DiagUninitUse(), clang::Sema::FindInstantiatedDecl(), clang::Sema::FinishTemplateArgumentDeduction(), clang::CodeGen::CodeGenModule::GetAddrOfGlobalTemporary(), clang::ASTWriter::getAnonymousDeclarationNumber(), getContextForScopeMatching(), getDefiningModule(), getEnclosingExportDecl(), getFriendCountAndPosition(), getLexicalDeclContext(), clang::Sema::TemplateCompareNewDeclInfo::getLexicalDeclContext(), getParentFunctionOrMethod(), getTemplateDepth(), clang::Sema::HandleDelayedAccessCheck(), hasAcceptableMemberSpecialization(), clang::ASTNodeImporter::ImportDeclContext(), clang::Sema::InstantiateDefaultArgument(), clang::Sema::InstantiateExceptionSpec(), clang::Sema::InstantiateVariableDefinition(), clang::ClassTemplateSpecializationDecl::isClassScopeExplicitSpecialization(), clang::VarTemplateSpecializationDecl::isClassScopeExplicitSpecialization(), clang::VarDecl::isFileVarDecl(), clang::VarDecl::isFunctionOrMethodVarDecl(), isInExportDeclContext(), clang::VarDecl::isInExternCContext(), clang::FunctionDecl::isInExternCContext(), clang::VarDecl::isInExternCXXContext(), clang::FunctionDecl::isInExternCXXContext(), isInLocalScopeForInstantiation(), clang::VarDecl::isLocalVarDecl(), isOutOfLine(), IsOverloadOrOverrideImpl(), clang::ento::BugSuppression::isSuppressed(), isTemplated(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::MergeFunctionDecl(), mergeTypeWithPrevious(), clang::Sema::MergeVarDecl(), clang::serialization::needsAnonymousDeclarationNumber(), RedeclForcesDefC99(), clang::Sema::RegisterLocallyScopedExternCDecl(), clang::DeclContext::removeDecl(), clang::Sema::SetDeclDefaulted(), setLexicalDeclContext(), clang::Sema::shouldLinkDependentDeclWithPrevious(), clang::Sema::ShouldWarnIfUnusedFileScopedDecl(), substituteParameterMappings(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTDeclWriter::VisitCXXMethodDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTDeclWriter::VisitDecl(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTDeclWriter::VisitFieldDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::ASTDeclWriter::VisitObjCIvarDecl(), clang::ASTDeclWriter::VisitParmVarDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTDeclWriter::VisitTemplateTypeParmDecl(), clang::ASTDeclWriter::VisitTypedefDecl(), clang::ASTNodeImporter::VisitTypedefNameDecl(), clang::ASTDeclWriter::VisitUsingShadowDecl(), clang::ASTDeclWriter::VisitVarDecl(), and clang::ASTDeclReader::VisitVarDeclImpl().

◆ getLexicalDeclContext() [2/2]

const DeclContext * clang::Decl::getLexicalDeclContext ( ) const
inline

Definition at line 912 of file DeclBase.h.

References getLexicalDeclContext().

◆ getLocalOwningModule()

Module * clang::Decl::getLocalOwningModule ( ) const
inline

Get the local owning module, if known.

Returns nullptr if owner is not yet known or declaration is not from a module.

Definition at line 811 of file DeclBase.h.

References hasLocalOwningModuleStorage(), hasOwningModule(), and isFromASTFile().

Referenced by getOwningModule().

◆ getLocation()

SourceLocation clang::Decl::getLocation ( ) const
inline

Definition at line 444 of file DeclBase.h.

Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnAtEnd(), clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCompatibilityAlias(), clang::Sema::ActOnCompoundStmt(), clang::Sema::ActOnConceptDefinition(), clang::Sema::ActOnConversionDeclarator(), clang::Sema::ActOnCXXConditionDeclaration(), clang::Sema::ActOnCXXDelete(), clang::Sema::ActOnCXXForRangeDecl(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnEnumBody(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::SemaOpenMP::ActOnFinishedFunctionDefinitionInOpenMPDeclareVariantScope(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnForStmt(), clang::Sema::ActOnForwardClassDeclaration(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnIvar(), clang::Sema::ActOnLabelStmt(), clang::Sema::ActOnLambdaExpressionAfterIntroducer(), clang::Sema::ActOnMethodDeclaration(), clang::Sema::ActOnMSAsmStmt(), clang::Sema::ActOnNamespaceAliasDef(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnObjCForCollectionStmt(), clang::Sema::actOnObjCTypeArgsOrProtocolQualifiers(), clang::SemaOpenMP::ActOnOMPIteratorExpr(), actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPAlignedClause(), clang::SemaOpenMP::ActOnOpenMPAllocateDirective(), clang::SemaOpenMP::ActOnOpenMPCopyprivateClause(), clang::SemaOpenMP::ActOnOpenMPDeclareReductionCombinerStart(), clang::SemaOpenMP::ActOnOpenMPDeclareReductionInitializerStart(), clang::SemaOpenMP::ActOnOpenMPDeclareSimdDirective(), clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::SemaOpenMP::ActOnOpenMPIdExpression(), clang::SemaOpenMP::ActOnOpenMPLastprivateClause(), clang::SemaOpenMP::ActOnOpenMPPrivateClause(), clang::SemaOpenMP::ActOnOpenMPRegionEnd(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnPopScope(), clang::Sema::ActOnPragmaRedefineExtname(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnPureSpecifier(), clang::Sema::ActOnStartCategoryImplementation(), clang::Sema::ActOnStartCategoryInterface(), clang::Sema::ActOnStartClassImplementation(), clang::Sema::ActOnStartClassInterface(), clang::Sema::ActOnStartNamespaceDef(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::ActOnStartProtocolInterface(), clang::Sema::ActOnSuperClassOfClassInterface(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagFinishDefinition(), clang::Sema::ActOnTagTemplateIdType(), clang::Sema::ActOnTemplateTemplateParameter(), clang::Sema::ActOnVariableDeclarator(), clang::ASTUnit::addFileLevelDecl(), addFunctionPointerConversion(), clang::installapi::FrontendRecordsSlice::addGlobal(), clang::CodeGen::CodeGenModule::AddGlobalAnnotations(), clang::Sema::addInitCapture(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(), clang::installapi::FrontendRecordsSlice::addObjCCategory(), clang::installapi::FrontendRecordsSlice::addObjCInterface(), clang::installapi::FrontendRecordsSlice::addObjCIVar(), clang::Sema::AddTemplateParametersToLambdaCallOperator(), applyNullability(), applyObjCTypeArgs(), clang::Sema::areMultiversionVariantFunctionsCompatible(), clang::CodeGen::CodeGenPGO::assignRegionCounters(), clang::Sema::AtomicPropertySetterGetterRules(), clang::Sema::AttachTypeConstraint(), clang::Sema::BuildBlockForLambdaConversion(), clang::Sema::BuildBuiltinOffsetOf(), clang::Sema::BuildCallToMemberFunction(), clang::Sema::BuildClassMessage(), buildCoawaitCalls(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildCXXNestedNameSpecifier(), clang::Sema::BuildCXXNew(), clang::Sema::BuildDeclarationNameExpr(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildIvarRefExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildMemInitializer(), clang::Sema::BuildMicrosoftCAnonymousStruct(), BuildNonArrayForRange(), clang::Sema::BuildQualifiedTemplateIdExpr(), clang::Sema::BuildResolvedCallExpr(), buildStdNoThrowDeclRef(), clang::CodeGen::CGCXXABI::buildThisParam(), clang::Sema::BuildUsingDeclaration(), clang::Sema::BuildUsingEnumDeclaration(), clang::Sema::BuildUsingShadowDecl(), clang::Sema::BuildVariableInstantiation(), clang::Sema::BuiltinEnumUnderlyingType(), clang::ento::ObjCMethodCall::canBeOverridenInSubclass(), clang::canVarDeclThrow(), captureInBlock(), captureInLambda(), checkAddressOfFunctionIsAvailable(), clang::SemaCUDA::checkAllowedInitializer(), CheckAnonMemberRedeclaration(), clang::Sema::CheckARCMethodDecl(), checkARCPropertyImpl(), checkAtomicPropertyMismatch(), checkAttributesAfterMerging(), clang::Sema::CheckBaseSpecifier(), clang::threadSafety::BeforeSet::checkBeforeAfter(), clang::interp::CheckCallable(), clang::Sema::CheckCallReturnType(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompletedCoroutineBody(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckCompleteDecompositionDeclaration(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckConceptRedefinition(), clang::Sema::CheckConceptTemplateId(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckConflictingOverridingMethod(), CheckConstexprCtorInitializer(), CheckConstexprDestructorSubobjects(), CheckConstexprFunction(), CheckConstexprFunctionBody(), clang::Sema::CheckConstexprFunctionDefinition(), CheckConstexprParameterTypes(), CheckConstexprReturnType(), CheckConstPureAttributesUsage(), clang::Sema::CheckCoroutineWrapper(), CheckCountExpr(), checkCUDADeviceBuiltinSurfaceClassTemplate(), checkCUDADeviceBuiltinTextureClassTemplate(), clang::Sema::CheckCXXDefaultArguments(), checkDeclInTargetContext(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), clang::Sema::CheckDeductionGuideTemplate(), clang::Sema::CheckDependentFunctionTemplateSpecialization(), clang::Sema::CheckDestructor(), checkDLLAttributeRedeclaration(), clang::SemaHLSL::CheckEntryPoint(), clang::Sema::CheckEnumRedeclaration(), clang::Sema::CheckEquivalentExceptionSpec(), checkEscapingByref(), CheckEvaluationResult(), CheckExplicitInstantiationScope(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::CheckExplicitlyDefaultedSpecialMember(), clang::Sema::CheckExplicitObjectMemberFunction(), clang::Sema::CheckExplicitObjectOverride(), clang::Sema::CheckExtraCXXDefaultArguments(), clang::Sema::CheckFieldDecl(), clang::interp::CheckFieldsInitialized(), clang::Sema::CheckForFunctionRedefinition(), checkForMultipleExportedDefaultConstructors(), CheckForReference(), clang::Sema::CheckFriendAccess(), clang::Sema::CheckFunctionConstraints(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckFunctionTemplateSpecialization(), checkGlobalOrExternCConflict(), clang::Sema::CheckIfOverriddenFunctionIsMarkedFinal(), clang::Sema::CheckImmediateEscalatingFunctionDefinition(), clang::Sema::CheckImplementationIvars(), clang::Sema::checkInitializerLifetime(), clang::Sema::checkInitMethod(), checkIsValidOpenCLKernelParameter(), clang::Sema::CheckLiteralOperatorDeclaration(), checkLiteralOperatorTemplateParameterList(), CheckLocalVariableDeclaration(), clang::Sema::CheckMain(), checkMemberDecomposition(), clang::Sema::CheckMemberSpecialization(), checkMethodFamilyMismatch(), CheckMethodOverrideParam(), CheckMethodOverrideReturn(), clang::Sema::checkMSInheritanceAttrOnDefinition(), clang::Sema::CheckMSVCRTEntryPoint(), CheckMultiVersionAdditionalDecl(), CheckMultiVersionAdditionalRules(), CheckMultiVersionFunction(), CheckMultiVersionValue(), checkNewAttributesAfterDef(), checkNonMultiVersionCompatAttributes(), clang::Sema::CheckNontrivialField(), clang::Sema::CheckObjCDeclScope(), checkObjCDirectMethodClashes(), clang::Sema::CheckObjCMethodDirectOverrides(), clang::Sema::CheckObjCMethodOverride(), checkObjCUnusedIvar(), clang::SemaOpenMP::CheckOMPThreadPrivateDecl(), clang::SemaOpenMP::checkOpenMPDeclareVariantFunction(), clang::SemaOpenMP::CheckOpenMPLinearDecl(), CheckOperatorDeleteDeclaration(), CheckOperatorNewDeclaration(), CheckOperatorNewDeleteDeclarationScope(), CheckOperatorNewDeleteTypes(), clang::Sema::CheckOverloadedOperatorDeclaration(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckOverridingFunctionAttributes(), clang::Sema::CheckOverridingFunctionExceptionSpec(), clang::Sema::CheckOverridingFunctionReturnType(), clang::Sema::CheckParameter(), CheckPoppedLabel(), checkPropertyDeclWithOwnership(), CheckProtocolMethodDefs(), clang::interp::CheckPure(), clang::Sema::CheckPureMethod(), clang::Sema::CheckRedeclarationExported(), clang::Sema::CheckRedeclarationModuleOwnership(), clang::Sema::checkRetainCycles(), clang::Sema::CheckShadow(), clang::Sema::CheckShadowingDeclModification(), checkSimpleDecomposition(), CheckSimplerImplicitMovesMSVCWorkaround(), clang::Sema::CheckSpecializationInstantiationRedecl(), clang::Sema::CheckSwitchCondition(), CheckTargetCausesMultiVersioning(), clang::SemaCUDA::checkTargetOverload(), clang::Sema::CheckTemplateArgument(), CheckTemplateArgumentAddressOfObjectOrFunction(), CheckTemplateArgumentPointerToMember(), clang::Sema::CheckTemplateParameterList(), CheckTemplateSpecializationScope(), clang::Sema::CheckTemplateTemplateArgument(), clang::Sema::CheckThreadLocalForLargeAlignment(), CheckTrivialDefaultConstructor(), checkTrivialSubobjectCall(), checkTupleLikeDecomposition(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::Sema::CheckTypenameType(), checkTypeParamListConsistency(), clang::Sema::checkTypeSupport(), checkUndefinedButUsed(), clang::Sema::CheckUsingDeclRedeclaration(), clang::Sema::CheckUsingShadowDecl(), checkUsingShadowRedecl(), clang::Sema::checkVarDeclRedefinition(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVirtualDtorCall(), compare(), ComputeDefaultedComparisonExceptionSpec(), ComputeDefaultedSpecialMemberExceptionSpec(), clang::Sema::ConvertArgumentsForCall(), ConvertDeducedTemplateArgument(), ConvertDeducedTemplateArguments(), clang::Sema::ConvertParamDefaultArgument(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::CreatePropertyDecl(), clang::Sema::DeclareGlobalAllocationFunction(), clang::Sema::DeclareImplicitCopyAssignment(), clang::Sema::DeclareImplicitCopyConstructor(), clang::Sema::DeclareImplicitDefaultConstructor(), clang::Sema::DeclareImplicitDestructor(), clang::Sema::DeclareImplicitMoveAssignment(), clang::Sema::DeclareImplicitMoveConstructor(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), DeduceNullPtrTemplateArgument(), clang::Sema::DeduceReturnType(), clang::Sema::deduceVarTypeFromInitializer(), clang::Sema::DefaultSynthesizeProperties(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitLambdaToBlockPointerConversion(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), clang::Sema::DefineImplicitMoveAssignment(), clang::Sema::DefineInheritingConstructor(), clang::InitializationSequence::Diagnose(), clang::Sema::DiagnoseAbsenceOfOverrideControl(), clang::Sema::DiagnoseAmbiguousLookup(), DiagnoseArityMismatch(), clang::Sema::DiagnoseAssignmentResult(), clang::Sema::DiagnoseAutoDeductionFailure(), DiagnoseBadConversion(), DiagnoseBadDeduction(), diagnoseBadDirectAccess(), DiagnoseCalleeStaticArrayParam(), DiagnoseCategoryDirectMembersProtocolConformance(), clang::Sema::DiagnoseClassExtensionDupMethods(), DiagnoseConstAssignment(), DiagnoseCStringFormatDirectiveInCFAPI(), DiagnoseCStringFormatDirectiveInObjCAPI(), diagnoseDeprecatedCopyOperation(), DiagnoseDirectIsaAccess(), clang::Sema::DiagnoseDuplicateIvars(), clang::Sema::diagnoseEquivalentInternalLinkageDeclarations(), clang::Sema::diagnoseExprIntendedAsTemplateName(), DiagnoseForRangeConstVariableCopies(), DiagnoseForRangeReferenceVariableCopies(), clang::Sema::DiagnoseHiddenVirtualMethods(), clang::Sema::DiagnoseImmediateEscalatingReason(), clang::Sema::DiagnoseInvalidExplicitObjectParameterInLambda(), DiagnoseInvalidRedeclaration(), clang::ODRDiagsEmitter::diagnoseMismatch(), diagnoseMissingConstinit(), clang::Sema::DiagnoseMissingDesignatedInitOverrides(), clang::Sema::diagnoseMissingImport(), diagnoseMissingInitializer(), DiagnoseNamespaceInlineMismatch(), diagnoseNoescape(), diagnoseNonConstVariable(), clang::Sema::DiagnoseNontrivial(), DiagnoseObjCImplementedDeprecations(), diagnoseOpenCLTypes(), clang::Sema::DiagnoseOwningPropertyGetterSynthesis(), clang::Sema::DiagnosePropertyAccessorMismatch(), clang::Sema::DiagnosePropertyMismatch(), clang::Sema::DiagnoseSentinelCalls(), clang::Sema::DiagnoseShadowingLambdaDecls(), clang::Sema::DiagnoseSizeOfParametersAndReturnValue(), diagnoseUncapturableValueReferenceOrBinding(), DiagnoseUnimplementedAccessor(), clang::interp::DiagnoseUninitializedSubobject(), DiagnoseUninitializedUse(), clang::Sema::DiagnoseUninstantiableTemplate(), diagnoseUnknownDecl(), clang::Sema::DiagnoseUnusedBackingIvarInAccessor(), clang::Sema::DiagnoseUnusedButSetDecl(), clang::Sema::DiagnoseUnusedDecl(), clang::Sema::DiagnoseUseOfDecl(), diagnoseUseOfInternalDeclInInlineFunction(), diagnoseVarDeclTypeMismatch(), DiagnoseVariableSizedIvars(), clang::Sema::DiagPlaceholderFieldDeclDefinitions(), clang::Sema::DiagRedefinedPlaceholderFieldDecl(), diagReturnOnAllocFailure(), DiagUninitUse(), DoEmitAvailabilityWarning(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), EmitDiagForCXXThrowInNonThrowingFunc(), clang::CodeGen::CGDebugInfo::EmitExternalVariable(), clang::CodeGen::CGDebugInfo::EmitFuncDeclForCallSite(), clang::CodeGen::CGDebugInfo::EmitGlobalAlias(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), emitInitWithReductionInitializer(), clang::CodeGen::CGDebugInfo::EmitLabel(), emitMappingInformation(), clang::CodeGen::CGDebugInfo::EmitNamespaceAlias(), emitOutlinedFunctionPrologue(), emitPreserveStructAccess(), emitReadOnlyPlacementAttrWarning(), clang::Sema::EmitRelatedResultTypeNote(), clang::Sema::EmitRelatedResultTypeNoteForReturn(), clang::CodeGen::CGOpenMPRuntime::emitThreadPrivateVarDefinition(), clang::CodeGen::CGOpenMPRuntime::emitUserDefinedMapper(), clang::CodeGen::CGDebugInfo::EmitUsingDirective(), clang::CodeGen::CGDebugInfo::EmitUsingShadowDecl(), clang::CodeGen::CodeGenModule::ErrorUnsupported(), clang::CodeGen::CGCXXABI::ErrorUnsupportedABI(), clang::Expr::EvaluateAsInitializer(), clang::Sema::FinalizeDeclaration(), clang::Sema::FinalizeDeclaratorGroup(), clang::Sema::FinalizeVarWithDestructor(), clang::Sema::FindAllocationFunctions(), FindBaseInitializer(), findCompleteObject(), clang::Sema::findInheritingConstructor(), clang::Sema::FindInstantiatedDecl(), clang::Sema::FindProtocolDeclaration(), findSubobject(), clang::AccessSpecDecl::getAccessSpecifierLoc(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), clang::NamespaceAliasDecl::getAliasLoc(), clang::FileScopeAsmDecl::getAsmLoc(), clang::ObjCMethodDecl::getBeginLoc(), clang::BlockDecl::getCaretLocation(), getDeclLocsForCommentSearch(), GetDeclSpecTypeForDeclarator(), clang::Sema::getDestructorName(), clang::ExportDecl::getEndLoc(), clang::LinkageSpecDecl::getEndLoc(), GetEndLoc(), clang::ObjCInterfaceDecl::getEndOfDefinitionLoc(), clang::ExportDecl::getExportLoc(), GetFullTypeForDeclarator(), clang::AnalysisDeclContext::getFunctionName(), clang::UsingDirectiveDecl::getIdentLocation(), getInitializationLoc(), clang::Sema::TemplateCompareNewDeclInfo::getLocation(), GetLocationForCandidate(), clang::FunctionDecl::getNameInfo(), clang::UsingDecl::getNameInfo(), clang::UnresolvedUsingValueDecl::getNameInfo(), clang::UnresolvedUsingTypenameDecl::getNameInfo(), clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(), getPosAsWritten(), getQualifiedNameStart(), clang::CXXCtorInitializer::getSourceLocation(), getSourceRange(), clang::LabelDecl::getSourceRange(), clang::DeclaratorDecl::getSourceRange(), clang::VarDecl::getSourceRange(), clang::ParmVarDecl::getSourceRange(), clang::EnumConstantDecl::getSourceRange(), clang::TypeDecl::getSourceRange(), clang::TypedefDecl::getSourceRange(), clang::TagDecl::getSourceRange(), clang::TopLevelStmtDecl::getSourceRange(), clang::BlockDecl::getSourceRange(), clang::ImportDecl::getSourceRange(), clang::ExportDecl::getSourceRange(), clang::UsingDirectiveDecl::getSourceRange(), clang::StaticAssertDecl::getSourceRange(), clang::FriendDecl::getSourceRange(), clang::ObjCMethodDecl::getSourceRange(), clang::ObjCTypeParamDecl::getSourceRange(), clang::ObjCPropertyDecl::getSourceRange(), clang::ObjCInterfaceDecl::getSourceRange(), clang::ObjCProtocolDecl::getSourceRange(), clang::ObjCPropertyImplDecl::getSourceRange(), clang::TemplateTemplateParmDecl::getSourceRange(), clang::Sema::getTopMostPointOfInstantiation(), getTupleLikeElementType(), clang::Sema::getTypeName(), getVarDeclIdentifierLoc(), clang::ento::MemRegionManager::getVarRegion(), handleAVRInterruptAttr(), handleAVRSignalAttr(), handleCleanupAttr(), clang::index::IndexingContext::handleDecl(), handleDestroyAttr(), clang::Sema::HandleExprPropertyRefExpr(), handleFormatAttr(), HandleImmediateInvocations(), handleMipsInterruptAttr(), handleMSP430InterruptAttr(), handleNoBuiltinAttr(), handleNoSanitizeAttr(), handleNoSanitizeSpecificAttr(), handleObjCDesignatedInitializer(), handleObjCIndependentClass(), handleObjCNSObject(), clang::Sema::HandlePropertyInClassExtension(), handleRISCVInterruptAttr(), handleSwiftAsyncAttr(), handleSYCLKernelAttr(), handleTargetClonesAttr(), handleTransparentUnionAttr(), handleWebAssemblyExportNameAttr(), HelperToDiagnoseMismatchedMethodsInGlobalPool(), clang::Sema::ImplicitlyDefineFunction(), clang::ASTNodeImporter::ImportDeclParts(), clang::ASTNodeImporter::ImportDefinition(), clang::index::IndexingContext::importedModule(), clang::index::IndexingContext::indexTopLevelDecl(), clang::SemaCUDA::inferTargetForImplicitSpecialMember(), clang::Sema::InheritedConstructorInfo::InheritedConstructorInfo(), InjectAnonymousStructOrUnionMembers(), clang::Sema::InstantiateClass(), clang::TemplateDeclInstantiator::InstantiateClassTemplatePartialSpecialization(), clang::TemplateDeclInstantiator::InstantiateEnumDefinition(), clang::Sema::InstantiateFunctionDefinition(), instantiateOMPDeclareVariantAttr(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::Sema::InstantiateVariableDefinition(), clang::TemplateDeclInstantiator::InstantiateVarTemplatePartialSpecialization(), clang::Sema::isAcceptableTagRedeclaration(), clang::TagTypeLoc::isDefinition(), isForbiddenTypeAllowed(), isFromSystemHeader(), clang::LabelDecl::isGnuLocal(), clang::Sema::isIncompatibleTypedef(), clang::ento::CallEvent::isInSystemHeader(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::isInSystemHeader(), clang::ObjCPropertyImplDecl::isIvarNameSpecified(), clang::Expr::isPotentialConstantExpr(), isStandardNewDelete(), IsStructurallyEquivalent(), clang::sema::AnalysisBasedWarnings::IssueWarnings(), isVariableCapturable(), lookupCoroutineHandleType(), clang::Sema::lookupCoroutineTraits(), lookupPromiseType(), clang::Sema::LookupSpecialMember(), LookupStdInitializerList(), lookupStdTypeTraitMember(), clang::Sema::LookupTemplateName(), MarkVarDeclODRUsed(), clang::Sema::MarkVirtualBaseDestructorsReferenced(), MatchTemplateParameterKind(), clang::SemaCUDA::maybeAddHostDeviceAttrs(), clang::RecordDecl::mayInsertExtraPadding(), mergeAlignedAttrs(), clang::Sema::MergeCXXFunctionDecl(), clang::Sema::mergeDeclAttributes(), clang::Sema::MergeFunctionDecl(), mergeInterfaceMethodToImpl(), mergeObjCDirectMembers(), mergeParamDeclAttributes(), mergeParamDeclTypes(), clang::Sema::MergeTypedefNameDecl(), clang::Sema::MergeVarDecl(), clang::Sema::MergeVarDeclExceptionSpecs(), clang::Sema::NoteAllFoundTemplates(), clang::Sema::NoteDeletedFunction(), clang::Sema::NoteDeletedInheritingConstructor(), NoteFunctionCandidate(), clang::Sema::NoteHiddenVirtualMethods(), noteLocation(), NoteLValueLocation(), noteNonDeducibleParameters(), clang::Sema::NoteOverloadCandidate(), noteOverloads(), clang::Sema::notePreviousDefinition(), NoteSurrogateCandidate(), clang::Sema::NoteTemplateLocation(), clang::Sema::ParseObjCProtocolExpression(), clang::Sema::ParseObjCSelectorExpression(), clang::Sema::ParseTypedefDecl(), clang::Sema::PerformImplicitObjectArgumentInitialization(), clang::SemaOpenMP::PerformOpenMPImplicitIntegerConversion(), clang::PrettyStackTraceDecl::print(), clang::PrettyDeclStackTraceEntry::print(), clang::CodeGen::CodeGenModule::printPostfixForExternalizedDecl(), clang::Sema::ProcessAPINotes(), ProcessAPINotes(), ProcessDeclAttribute(), clang::Sema::ProcessDeclAttributeList(), clang::Sema::ProcessPropertyDecl(), clang::Sema::propagateDLLAttrToBaseClassTemplate(), clang::TreeTransform< Derived >::RebuildDependentNameType(), clang::TreeTransform< Derived >::RebuildObjCExceptionDecl(), clang::Sema::RebuildTemplateParamsInCurrentInstantiation(), rejectConstNotMutableType(), clang::CodeGen::SanitizerMetadata::reportGlobal(), reportOriginalDsa(), ReportOverrides(), clang::Sema::RequireCompleteEnumDecl(), clang::Sema::RequireLiteralType(), resolveBuiltinNewDeleteOverload(), rewriteBuiltinFunctionDecl(), rewriteToObjCInterfaceDecl(), clang::consumed::ConsumedAnalyzer::run(), selectBestPath(), clang::Sema::SetDeclDeleted(), clang::CodeGen::CodeGenModule::setGlobalVisibility(), clang::Sema::SetIvarInitializers(), clang::Sema::SetMemberAccessSpecifier(), clang::Sema::setTagNameForLinkagePurposes(), clang::Sema::ShouldDeleteSpecialMember(), shouldIgnoreDueToReservedName(), clang::Sema::SpecialMemberIsTrivial(), clang::Sema::SubstDecl(), clang::Sema::SubstDefaultArgument(), clang::TemplateDeclInstantiator::SubstDefaultedFunction(), clang::TemplateDeclInstantiator::SubstFunctionType(), clang::Sema::SubstParmVarDecl(), SuggestInitializationFixit(), clang::TreeTransform< Derived >::TransformCondition(), clang::TreeTransform< Derived >::TransformFunctionTypeParam(), clang::CodeGen::CGOpenMPRuntimeGPU::translateParameter(), clang::Sema::tryCaptureVariable(), TryDiagnoseProtectedAccess(), TryOrBuildParenListInitialization(), clang::Sema::UnifySection(), validateBoxingMethod(), validateDeclsInsideHLSLBuffer(), ValidateObjCLiteralInterfaceDecl(), clang::Sema::VerifyIntegerConstantExpression(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), clang::ASTNodeImporter::VisitAccessSpecDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitClassTemplatePartialSpecializationDecl(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitClassTemplateSpecializationDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitConceptDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXConstructorDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXConversionDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXDestructorDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXMethodDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXRecordDecl(), clang::ASTNodeImporter::VisitDecl(), clang::ASTNodeImporter::VisitEmptyDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitEnumDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitFieldDecl(), clang::ASTNodeImporter::VisitFriendDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitFunctionDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitFunctionTemplateDecl(), clang::ASTNodeImporter::VisitImplicitParamDecl(), clang::ASTNodeImporter::VisitImportDecl(), clang::ASTNodeImporter::VisitLinkageSpecDecl(), clang::tooling::RecursiveSymbolVisitor< T >::VisitNamedDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitNamespaceDecl(), clang::ASTNodeImporter::VisitNonTypeTemplateParmDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitObjCCategoryDecl(), clang::ASTNodeImporter::VisitObjCCategoryImplDecl(), clang::ASTNodeImporter::VisitObjCImplementationDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitObjCInterfaceDecl(), clang::ASTDeclReader::VisitObjCIvarDecl(), clang::ASTNodeImporter::VisitObjCPropertyImplDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitObjCProtocolDecl(), clang::ASTNodeImporter::VisitObjCTypeParamDecl(), clang::ASTNodeImporter::VisitParmVarDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitRecordDecl(), clang::ASTNodeImporter::VisitStaticAssertDecl(), clang::ASTNodeImporter::VisitTemplateTemplateParmDecl(), clang::ASTNodeImporter::VisitTemplateTypeParmDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitTypedefNameDecl(), clang::ASTNodeImporter::VisitUsingEnumDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarTemplateDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarTemplatePartialSpecializationDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarTemplateSpecializationDecl(), clang::TemplateDeclInstantiator::VisitVarTemplateSpecializationDecl(), clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl(), clang::Sema::WarnConflictingTypedMethods(), clang::Sema::WarnExactTypedMethods(), clang::Sema::WarnOnPendingNoDerefs(), clang::Sema::warnOnReservedIdentifier(), and WarnUndefinedMethod().

◆ getMaxAlignment()

unsigned Decl::getMaxAlignment ( ) const

getMaxAlignment - return the maximum alignment specified by attributes on this decl, 0 if there are none.

Definition at line 515 of file DeclBase.cpp.

References getASTContext(), getAttrs(), hasAttrs(), and V.

Referenced by clang::ASTContext::getDeclAlign(), getDeclAlignIfRequired(), isLayoutCompatible(), and clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition().

◆ getModuleOwnershipKind()

ModuleOwnershipKind clang::Decl::getModuleOwnershipKind ( ) const
inline

◆ getMostRecentDecl() [1/2]

Decl * clang::Decl::getMostRecentDecl ( )
inline

Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).

Definition at line 1065 of file DeclBase.h.

References getMostRecentDeclImpl().

Referenced by clang::ASTDeclWriter::AddFirstDeclFromEachModule(), forAllLaterRedecls(), clang::TemplateName::getNameToSubstitute(), clang::ASTContext::getTranslationUnitDecl(), isUsed(), isWeakImported(), clang::Sema::mergeDeclAttributes(), and clang::ASTDeclWriter::VisitRedeclarable().

◆ getMostRecentDecl() [2/2]

const Decl * clang::Decl::getMostRecentDecl ( ) const
inline

Retrieve the most recent declaration that declares the same entity as this declaration (which may be this declaration).

Definition at line 1069 of file DeclBase.h.

References getMostRecentDeclImpl().

◆ getMostRecentDeclImpl()

virtual Decl * clang::Decl::getMostRecentDeclImpl ( )
inlineprotectedvirtual

Implementation of getMostRecentDecl(), to be overridden by any subclass that has a redeclaration chain.

Reimplemented in clang::VarDecl, clang::FunctionDecl, clang::TypedefNameDecl, and clang::TagDecl.

Definition at line 988 of file DeclBase.h.

Referenced by getMostRecentDecl().

◆ getNextDeclInContext() [1/2]

Decl * clang::Decl::getNextDeclInContext ( )
inline

◆ getNextDeclInContext() [2/2]

const Decl * clang::Decl::getNextDeclInContext ( ) const
inline

Definition at line 451 of file DeclBase.h.

References NextInContextAndBits.

◆ getNextRedeclarationImpl()

virtual Decl * clang::Decl::getNextRedeclarationImpl ( )
inlineprotectedvirtual

Returns the next redeclaration or itself if this is the only decl.

Decl subclasses that can be redeclared should override this method so that Decl::redecl_iterator can iterate over them.

Reimplemented in clang::VarDecl, clang::FunctionDecl, clang::TypedefNameDecl, and clang::TagDecl.

Definition at line 980 of file DeclBase.h.

◆ getNonClosureContext() [1/2]

Decl * Decl::getNonClosureContext ( )

Find the innermost non-closure ancestor of this declaration, walking up through blocks, lambdas, etc.

If that ancestor is not a code context (!isFunctionOrMethod()), returns null.

A declaration may be its own non-closure context.

Definition at line 1173 of file DeclBase.cpp.

Referenced by getNonClosureContext(), and clang::CodeGen::CodeGenModule::getOrCreateStaticVarDecl().

◆ getNonClosureContext() [2/2]

const Decl * clang::Decl::getNonClosureContext ( ) const
inline

Definition at line 476 of file DeclBase.h.

References getNonClosureContext().

◆ getNonTransparentDeclContext() [1/2]

DeclContext * Decl::getNonTransparentDeclContext ( )

Return the non transparent context.

See the comment of DeclContext::isTransparentContext() for the definition of transparent context.

Definition at line 1147 of file DeclBase.cpp.

References getDeclContext(), and clang::DeclContext::getNonTransparentContext().

Referenced by clang::Sema::FindInstantiatedDecl(), and getNonTransparentDeclContext().

◆ getNonTransparentDeclContext() [2/2]

const DeclContext * clang::Decl::getNonTransparentDeclContext ( ) const
inline

Definition at line 466 of file DeclBase.h.

References getNonTransparentDeclContext().

◆ getOwningModule()

Module * clang::Decl::getOwningModule ( ) const
inline

◆ getOwningModuleForLinkage()

Module * Decl::getOwningModuleForLinkage ( bool  IgnoreLinkage = false) const

◆ getOwningModuleID()

unsigned clang::Decl::getOwningModuleID ( ) const
inline

Retrieve the global ID of the module that owns this particular declaration.

Definition at line 787 of file DeclBase.h.

References isFromASTFile().

◆ getParentFunctionOrMethod() [1/2]

DeclContext * clang::Decl::getParentFunctionOrMethod ( bool  LexicalParent = false)
inline

Definition at line 960 of file DeclBase.h.

References getParentFunctionOrMethod().

◆ getParentFunctionOrMethod() [2/2]

const DeclContext * Decl::getParentFunctionOrMethod ( bool  LexicalParent = false) const

◆ getPreviousDecl() [1/2]

Decl * clang::Decl::getPreviousDecl ( )
inline

◆ getPreviousDecl() [2/2]

const Decl * clang::Decl::getPreviousDecl ( ) const
inline

Retrieve the previous declaration that declares the same entity as this declaration, or NULL if there is no previous declaration.

Definition at line 1054 of file DeclBase.h.

References getPreviousDeclImpl().

◆ getPreviousDeclImpl()

virtual Decl * clang::Decl::getPreviousDeclImpl ( )
inlineprotectedvirtual

Implementation of getPreviousDecl(), to be overridden by any subclass that has a redeclaration chain.

Reimplemented in clang::VarDecl, clang::FunctionDecl, clang::TypedefNameDecl, and clang::TagDecl.

Definition at line 984 of file DeclBase.h.

Referenced by getPreviousDecl().

◆ getSourceRange()

virtual SourceRange clang::Decl::getSourceRange ( ) const
inlinevirtual

Source range that this declaration covers.

Reimplemented in clang::LabelDecl, clang::NamespaceDecl, clang::DeclaratorDecl, clang::VarDecl, clang::ParmVarDecl, clang::FunctionDecl, clang::FieldDecl, clang::EnumConstantDecl, clang::TypeDecl, clang::TypedefDecl, clang::TypeAliasDecl, clang::TagDecl, clang::EnumDecl, clang::FileScopeAsmDecl, clang::TopLevelStmtDecl, clang::BlockDecl, clang::ImportDecl, clang::ExportDecl, clang::HLSLBufferDecl, clang::AccessSpecDecl, clang::LinkageSpecDecl, clang::UsingDirectiveDecl, clang::NamespaceAliasDecl, clang::UsingDecl, clang::UsingEnumDecl, clang::UsingPackDecl, clang::UnresolvedUsingValueDecl, clang::StaticAssertDecl, clang::FriendDecl, clang::ObjCMethodDecl, clang::ObjCTypeParamDecl, clang::ObjCPropertyDecl, clang::ObjCContainerDecl, clang::ObjCInterfaceDecl, clang::ObjCProtocolDecl, clang::ObjCPropertyImplDecl, clang::OMPCapturedExprDecl, clang::TemplateDecl, clang::TemplateTypeParmDecl, clang::NonTypeTemplateParmDecl, clang::TemplateTemplateParmDecl, clang::BuiltinTemplateDecl, clang::ClassTemplateSpecializationDecl, clang::VarTemplateSpecializationDecl, clang::VarTemplatePartialSpecializationDecl, and clang::ConceptDecl.

Definition at line 432 of file DeclBase.h.

References getLocation().

Referenced by clang::Sema::AddAlignValueAttr(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), ConvertDeducedTemplateArgument(), clang::Sema::DiagnoseMisalignedMembers(), clang::ODRDiagsEmitter::diagnoseMismatch(), diagnoseMissingInitializer(), diagnoseSubMismatchMethodParameters(), diagnoseUnknownDecl(), clang::SemaOpenMP::EndOpenMPDSABlock(), clang::tooling::getAssociatedRange(), getBeginLoc(), clang::syntax::TreeBuilder::getDeclarationRange(), getEndLoc(), clang::TemplateDecl::getSourceRange(), handleOpenCLAccessAttr(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), and warnAboutAmbiguousFunction().

◆ getTemplateDepth()

unsigned Decl::getTemplateDepth ( ) const

Determine the number of levels of template parameter surrounding this declaration.

Definition at line 274 of file DeclBase.cpp.

References getDeclContext(), getDescribedTemplateParams(), getFriendObjectKind(), and getLexicalDeclContext().

Referenced by clang::Sema::AddTemplateOverloadCandidate(), and clang::Sema::SubstSpaceshipAsEqualEqual().

◆ getTranslationUnitDecl() [1/2]

TranslationUnitDecl * Decl::getTranslationUnitDecl ( )

◆ getTranslationUnitDecl() [2/2]

const TranslationUnitDecl * clang::Decl::getTranslationUnitDecl ( ) const
inline

Definition at line 481 of file DeclBase.h.

References getTranslationUnitDecl().

◆ getVersionIntroduced()

VersionTuple Decl::getVersionIntroduced ( ) const

Retrieve the version of the target platform in which this declaration was introduced.

Returns
An empty version tuple if this declaration has no 'introduced' availability attributes, or the version tuple that's specified in the attribute otherwise.

Definition at line 761 of file DeclBase.cpp.

References attrs(), getASTContext(), clang::TargetInfo::getPlatformName(), getRealizedPlatform(), and clang::ASTContext::getTargetInfo().

Referenced by DoEmitAvailabilityWarning().

◆ hasAttr()

template<typename T >
bool clang::Decl::hasAttr ( ) const
inline
Examples
/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/StaticAnalyzer/Core/RegionStore.cpp.

Definition at line 582 of file DeclBase.h.

References getAttrs(), and hasAttrs().

Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFinishNamespaceDef(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnMethodDeclaration(), clang::Sema::ActOnObjCExceptionDecl(), actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPAllocateDirective(), clang::SemaOpenMP::ActOnOpenMPCall(), clang::SemaOpenMP::ActOnOpenMPDeclareTargetName(), clang::SemaOpenMP::ActOnOpenMPLastprivateClause(), clang::SemaOpenMP::ActOnOpenMPLinearClause(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnPragmaWeakAlias(), clang::Sema::ActOnStartCategoryImplementation(), clang::Sema::ActOnStartClassImplementation(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::ActOnTagFinishDefinition(), clang::Sema::ActOnUninitializedDecl(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddCFAuditedAttribute(), clang::ASTRecordWriter::AddFunctionDefinition(), clang::CodeGen::CodeGenModule::AddGlobalAnnotations(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(), clang::Sema::AddOptnoneAttributeIfNoConflicts(), clang::Sema::AddSectionMSAllocText(), addX86InterruptAttrs(), adjustGVALinkageForAttributes(), AllowOverloadingOfFunction(), clang::CodeGen::CodeGenModule::AlwaysHasLTOVisibilityPublic(), annotateConsumedSummaryMismatch(), applyOMPAllocateAttribute(), clang::Sema::AreMultipleMethodsInGlobalPool(), clang::CodeGen::CodeGenTypes::arrangeObjCMessageSendSignature(), assignInheritanceModel(), clang::CodeGen::CodeGenPGO::assignRegionCounters(), clang::Sema::AttachBaseSpecifiers(), basicGVALinkageForFunction(), clang::Sema::BuildInstanceMessage(), clang::Sema::BuildResolvedCallExpr(), clang::Sema::BuildReturnStmt(), clang::Sema::ImplicitExceptionSpecification::CalledDecl(), clang::Sema::canCalleeThrow(), clang::Type::canHaveNullability(), canRedefineFunction(), captureInBlock(), clang::CFGCleanupFunction::CFGCleanupFunction(), clang::SemaCUDA::checkAllowedInitializer(), clang::Sema::CheckARCMethodDecl(), clang::Sema::CheckAssignmentOperands(), clang::Sema::CheckCompletedCoroutineBody(), clang::Sema::CheckCompleteVariableDeclaration(), CheckConstPureAttributesUsage(), clang::Sema::CheckCoroutineWrapper(), clang::SemaHLSL::CheckEntryPoint(), checkForIBOutlets(), CheckForModifiableLvalue(), clang::Sema::CheckFunctionDeclaration(), clang::SemaCUDA::CheckLambdaCapture(), clang::Sema::CheckMain(), clang::Sema::CheckMessageArgumentTypes(), CheckMoveOnConstruction(), CheckMultiVersionAdditionalDecl(), CheckNonNullArguments(), CheckNonNullExpr(), clang::Sema::CheckNontrivialField(), clang::Sema::CheckObjCMethodOverride(), clang::Sema::CheckObjCPropertyAttributes(), clang::SemaOpenMP::CheckOMPThreadPrivateDecl(), clang::SemaOpenMP::checkOpenMPDeclareVariantFunction(), clang::Sema::CheckOverrideControl(), checkPreviousOMPAllocateAttribute(), CheckProtocolMethodDefs(), checkRecordDeclForAttr(), clang::Sema::CheckStaticLocalForDllExport(), clang::Sema::CheckTransparentUnionArgumentConstraints(), checkTypedefTypeForCapability(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVirtualDtorCall(), compareEnableIfAttrs(), clang::interp::ByteCodeEmitter::compileFunc(), computeKeyFunction(), clang::LinkageComputer::computeLVForDecl(), configureBlocksRuntimeObject(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::Sema::CreatePropertyDecl(), clang::CodeGen::CodeGenModule::CreateRuntimeFunction(), CXXRecordAllNonInlineVirtualsHaveAttr(), clang::Sema::DeclareImplicitCopyConstructor(), clang::Sema::DeclareImplicitDestructor(), clang::Sema::DeclareImplicitMoveConstructor(), GlobalDeclRefChecker::declareTargetInitializer(), clang::DeclAttrsMatchCUDAMode(), clang::ASTContext::DeclMustBeEmitted(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DefaultVariadicArgumentPromotion(), clang::CodeGen::CGObjCRuntime::destroyCalleeDestroyedArguments(), clang::Sema::DiagnoseAbsenceOfOverrideControl(), clang::Sema::DiagnoseAssignmentEnum(), diagnoseNoescape(), clang::Sema::DiagnoseOwningPropertyGetterSynthesis(), DiagnoseUninitializedUse(), clang::Sema::DiagnoseUnusedButSetDecl(), DiagnoseUnusedOfDecl(), clang::Sema::DiagnoseUseOfDecl(), diagnoseUseOfInternalDeclInInlineFunction(), EmitAutoVarWithLifetime(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockDeclRefVariable(), EmitDirectCallee(), clang::CodeGen::CGDebugInfo::EmitExternalVariable(), clang::CodeGen::CGDebugInfo::EmitFuncDeclForCallSite(), EmitFunctionDeclPointer(), clang::CodeGen::CGDebugInfo::emitFunctionStart(), clang::CodeGen::CodeGenModule::EmitGlobal(), clang::CodeGen::CGDebugInfo::EmitGlobalAlias(), EmitGlobalVarDeclLValue(), clang::CodeGen::CGDebugInfo::EmitGlobalVariable(), clang::CodeGen::CGHLSLRuntime::emitInputSemantic(), clang::CodeGen::CGDebugInfo::EmitLabel(), EvaluateUnaryTypeTrait(), clang::Sema::FinalizeDeclaration(), clang::Sema::FinalizeVarWithDestructor(), findProtocolsWithExplicitImpls(), clang::Sema::GatherArgumentsForCall(), clang::CodeGen::CGOpenMPRuntime::getAddressOfLocalVariable(), clang::CodeGen::CGOpenMPRuntimeGPU::getAddressOfLocalVariable(), clang::CodeGen::CodeGenModule::GetAddrOfConstantCFString(), getArmStreamingFnType(), clang::ASTContext::getBlockVarCopyInit(), clang::CodeGen::CodeGenModule::getBuiltinLibFunction(), getCallingConventionForDecl(), getDeclAlignIfRequired(), clang::CXXMethodDecl::getDevirtualizedMethod(), clang::getDLLAttr(), clang::Sema::getEmissionStatus(), clang::ento::retaincountchecker::RefLeakReportVisitor::getEndPath(), GetFullTypeForDeclarator(), clang::CodeGen::CodeGenModule::GetGlobalVarAddressSpace(), clang::Sema::getImplicitCodeSegOrSectionAttrForFunction(), clang::CodeGen::CodeGenModule::getLLVMLinkageForDeclarator(), clang::LinkageComputer::getLVForDecl(), clang::Sema::getNamedReturnInfo(), clang::CodeGen::CodeGenModule::GetOrCreateLLVMGlobal(), clang::CodeGen::CodeGenModule::getOrCreateStaticVarDecl(), clang::index::getSymbolInfo(), getTypeInfoLinkage(), clang::Sema::getUndefinedButUsed(), clang::CodeGen::CodeGenModule::getVTableLinkage(), clang::GlobalDecl::GlobalDecl(), handleCallbackAttr(), clang::CodeGen::CodeGenModule::HandleCXXStaticMemberVarInstantiation(), handleDelayedForbiddenType(), handleGslAnnotatedTypes(), handleManagedAttr(), handleNoBuiltinAttr(), handleNoRandomizeLayoutAttr(), handleOpenCLAccessAttr(), handlePassObjectSizeAttr(), handleRandomizeLayoutAttr(), clang::CodeGen::CGOpenMPRuntime::hasAllocateAttributeForGlobalVar(), clang::CodeGen::CGOpenMPRuntimeGPU::hasAllocateAttributeForGlobalVar(), hasArmZAState(), hasArmZT0State(), hasBPFPreserveStaticOffset(), hasDirectVisibilityAttribute(), clang::interp::Function::hasNonNullAttr(), hasObjCExceptionAttribute(), clang::installapi::hasObjCExceptionAttribute(), clang::Expr::HasSideEffects(), clang::SemaCUDA::IdentifyTarget(), clang::Sema::inferNullableClassAttribute(), clang::SemaCUDA::inferTargetForImplicitSpecialMember(), clang::InitializedEntity::InitializeParameter(), clang::Sema::InstantiateAttrs(), clang::Sema::InstantiateClassMembers(), clang::Sema::InstantiateVariableInitializer(), isAllocatableDecl(), IsArgumentMaybeUndef(), isBetterMultiversionCandidate(), isBlockVarRef(), isClassOrMethodDLLImport(), clang::CodeGen::CGCXXABI::isEmittedWithConstantInitializer(), clang::CodeGen::isEmptyField(), isFunctionDefinitionDiscarded(), clang::Type::isIncompleteType(), clang::installapi::isInlined(), isInMIGCall(), isLayoutCompatible(), isNoexcept(), clang::SemaOpenMP::isOpenMPCapturedByRef(), IsPreserveAIArrayBase(), isRecordWithAttr(), clang::installapi::isRTTIWeakDef(), isStreaming(), isTestingFunction(), isTransparentUnion(), IsTransparentUnionStandardConversion(), isVarDeclStrongDefinition(), isVariableCapturable(), isVirtualCall(), clang::Sema::makeUnavailableInSystemHeader(), markEscapingByrefs(), MarkVarDeclODRUsed(), clang::Sema::MatchTwoMethodDeclarations(), clang::SemaCUDA::MaybeAddConstantAttr(), clang::SemaCUDA::maybeAddHostDeviceAttrs(), maybeAttachUnversionedSwiftName(), clang::Sema::MaybeBindToTemporary(), clang::ASTContext::mayExternalize(), clang::Sema::mergeAlwaysInlineAttr(), clang::Sema::mergeDeclAttributes(), clang::Sema::mergeDLLExportAttr(), clang::Sema::mergeDLLImportAttr(), clang::Sema::MergeFunctionDecl(), clang::ASTDeclReader::mergeInheritableAttributes(), mergeInterfaceMethodToImpl(), clang::Sema::mergeMinSizeAttr(), mergeObjCDirectMembers(), clang::Sema::mergeOptimizeNoneAttr(), mergeParamDeclAttributes(), clang::ASTContext::mergeTransparentUnionType(), clang::Sema::MergeVarDecl(), clang::Sema::NoteOverloadCandidate(), noteOverloads(), clang::ASTContext::ObjCMethodsAreEqual(), clang::InitializationSequence::Perform(), clang::Sema::ProcessDeclAttributeDelayed(), clang::Sema::ProcessDeclAttributeList(), clang::Sema::ProcessPropertyDecl(), pushTemporaryCleanup(), RecordModifiableNonNullParam(), recordUsesEBO(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::CodeGen::SanitizerMetadata::reportGlobal(), requiresAMDGPUProtectedVisibility(), clang::ASTContext::setBlockVarCopyInit(), clang::CodeGen::CodeGenModule::SetCommonAttributes(), setCUDAKernelCallingConvention(), clang::CodeGen::CodeGenModule::setDLLImportDLLExport(), clang::CodeGen::CodeGenModule::setGlobalVisibility(), clang::SemaCUDA::SetLambdaAttrs(), setLinkageForGV(), clang::CodeGen::CodeGenModule::SetLLVMFunctionAttributesForDefinition(), clang::OverloadCandidateSet::OperatorRewriteInfo::shouldAddReversed(), shouldBeInCOMDAT(), shouldConsiderTemplateVisibility(), ShouldDiagnoseSwitchCaseNotInEnum(), ShouldDiagnoseUnusedDecl(), shouldEscapeRegion(), shouldExtendReceiverForInnerPointerMessage(), clang::ASTContext::shouldExternalize(), clang::MangleContext::shouldMangleDeclName(), clang::CXXNewExpr::shouldNullCheckAllocation(), shouldOmitDefinition(), ShouldUseExternalRTTIDescriptor(), ShouldWarnAboutMissingPrototype(), clang::Sema::ShouldWarnIfUnusedFileScopedDecl(), SuggestInitializationFixit(), clang::CodeGen::CodeGenModule::TryEmitBaseDestructorAsAlias(), clang::Sema::updateAttrsForLateParsedTemplate(), clang::CodeGen::useFirstFieldIfTransparentUnion(), useInlineVisibilityHidden(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::installapi::InstallAPIVisitor::VisitFunctionDecl(), visitLifetimeBoundArguments(), clang::ento::SValExplainer::VisitNonParamVarRegion(), clang::installapi::InstallAPIVisitor::VisitVarDecl(), clang::ASTDeclWriter::VisitVarDecl(), clang::ASTDeclReader::VisitVarDeclImpl(), and clang::Sema::WarnExactTypedMethods().

◆ hasAttrs()

bool clang::Decl::hasAttrs ( ) const
inline

Definition at line 523 of file DeclBase.h.

Referenced by actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPCopyinClause(), clang::SemaOpenMP::ActOnOpenMPCopyprivateClause(), clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::SemaOpenMP::ActOnOpenMPLastprivateClause(), clang::SemaOpenMP::ActOnOpenMPLinearClause(), clang::SemaOpenMP::ActOnOpenMPPrivateClause(), clang::SemaOpenMP::ActOnOpenMPUseDevicePtrClause(), addAttr(), attr_begin(), attr_end(), AttributesMatch(), clang::Sema::BuildReturnStmt(), clang::Sema::CheckAlignasUnderalignment(), clang::Sema::CheckFieldDecl(), checkNewAttributesAfterDef(), clang::Sema::CheckVariableDeclarationType(), createPrivatesRecordDecl(), clang::CodeGen::CGHLSLRuntime::emitInputSemantic(), clang::SemaOpenMP::EndOpenMPDSABlock(), clang::CodeGen::CGOpenMPRuntimeGPU::getAddressOfLocalVariable(), getAttr(), getMaxAlignment(), hasAttr(), hasAttr(), clang::Sema::mergeAvailabilityAttr(), clang::Sema::mergeDeclAttributes(), mergeParamDeclAttributes(), RedeclarePropertyAccessor(), clang::MangleContext::shouldMangleDeclName(), clang::ASTDeclReader::UpdateDecl(), clang::ASTDeclWriter::VisitCXXMethodDecl(), clang::ASTDeclWriter::VisitDecl(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTDeclWriter::VisitFieldDecl(), clang::ASTDeclWriter::VisitObjCIvarDecl(), clang::ASTDeclWriter::VisitParmVarDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTDeclWriter::VisitTemplateTypeParmDecl(), clang::ASTDeclWriter::VisitTypedefDecl(), clang::ASTDeclWriter::VisitUsingShadowDecl(), and clang::ASTDeclWriter::VisitVarDecl().

◆ hasBody()

virtual bool clang::Decl::hasBody ( ) const
inlinevirtual

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.

Reimplemented in clang::FunctionDecl, and clang::ObjCMethodDecl.

Definition at line 1082 of file DeclBase.h.

References getBody().

Referenced by clang::CloneDetector::analyzeCodeBody(), clang::CodeGen::CodeGenPGO::assignRegionCounters(), emitDiagnostics(), emitOutlinedFunctionPrologue(), hasImplicitBody(), clang::CallGraph::includeInGraph(), and clang::ento::CheckerManager::runCheckersOnASTBody().

◆ hasCachedLinkage()

bool clang::Decl::hasCachedLinkage ( ) const
inlineprotected

◆ hasDefiningAttr()

bool Decl::hasDefiningAttr ( ) const

Return true if this declaration has an attribute which acts as definition of the entity, such as 'alias' or 'ifunc'.

Definition at line 588 of file DeclBase.cpp.

Referenced by clang::FunctionDecl::isThisDeclarationADefinition(), and clang::VarDecl::isThisDeclarationADefinition().

◆ hasLocalOwningModuleStorage()

bool Decl::hasLocalOwningModuleStorage ( ) const
protected

◆ hasOwningModule()

bool clang::Decl::hasOwningModule ( ) const
inline

Is this declaration owned by some module?

Definition at line 827 of file DeclBase.h.

References getModuleOwnershipKind(), and Unowned.

Referenced by clang::Sema::ActOnFunctionDeclarator(), getImportedOwningModule(), getLocalOwningModule(), setLexicalDeclContext(), and setLocalOwningModule().

◆ hasTagIdentifierNamespace()

bool clang::Decl::hasTagIdentifierNamespace ( ) const
inline

Definition at line 888 of file DeclBase.h.

References getIdentifierNamespace(), and isTagIdentifierNamespace().

◆ isCanonicalDecl()

bool clang::Decl::isCanonicalDecl ( ) const
inline

◆ isDefinedOutsideFunctionOrMethod()

bool clang::Decl::isDefinedOutsideFunctionOrMethod ( ) const
inline

isDefinedOutsideFunctionOrMethod - This predicate returns true if this scoped decl is defined outside the current function or method.

This is roughly global variables and functions, but also handles enums (which could be defined inside or outside a function etc).

Definition at line 938 of file DeclBase.h.

References getParentFunctionOrMethod().

Referenced by clang::Sema::InstantiateClass(), clang::Sema::LookupIvarInObjCMethod(), LookupPotentialTypoResult(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitTypedefNameDecl(), clang::installapi::InstallAPIVisitor::VisitVarDecl(), and clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitVarDecl().

◆ isDeprecated()

bool clang::Decl::isDeprecated ( std::string *  Message = nullptr) const
inline

Determine whether this declaration is marked 'deprecated'.

Parameters
MessageIf non-NULL and the declaration is deprecated, this will be set to the message describing why the declaration was deprecated (which may be empty).

Definition at line 744 of file DeclBase.h.

References clang::AR_Deprecated, and getAvailability().

Referenced by clang::TypoCorrectionConsumer::addCorrection(), and clang::Sema::addMethodToGlobalList().

◆ isFileContextDecl()

bool Decl::isFileContextDecl ( ) const

Definition at line 408 of file DeclBase.cpp.

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

◆ isFirstDecl()

bool clang::Decl::isFirstDecl ( ) const
inline

True if this is the first declaration in its redeclaration chain.

Definition at line 1059 of file DeclBase.h.

References getPreviousDecl().

◆ isFlexibleArrayMemberLike()

bool Decl::isFlexibleArrayMemberLike ( ASTContext Context,
const Decl D,
QualType  Ty,
LangOptions::StrictFlexArraysLevelKind  StrictFlexArraysLevel,
bool  IgnoreTemplateOrMacroSubstitution 
)
static

Whether it resembles a flexible array member.

This is a static member because we want to be able to call it with a nullptr. That allows us to perform non-Decl specific checks based on the object's type and strict flex array level.

Definition at line 413 of file DeclBase.cpp.

References clang::TypeLoc::getAs(), clang::TypeLoc::getAsAdjusted(), clang::ASTContext::getAsConstantArrayType(), clang::ASTContext::getAsIncompleteArrayType(), clang::Expr::getExprLoc(), clang::TypeSourceInfo::getTypeLoc(), clang::TypedefNameDecl::getTypeSourceInfo(), and clang::SourceLocation::isMacroID().

Referenced by CheckCountExpr(), and clang::Expr::isFlexibleArrayMemberLike().

◆ isFromASTFile()

bool clang::Decl::isFromASTFile ( ) const
inline

◆ isFromExplicitGlobalModule()

bool Decl::isFromExplicitGlobalModule ( ) const

Whether this declaration comes from explicit global module.

Definition at line 1105 of file DeclBase.cpp.

References getOwningModule(), and clang::Module::isExplicitGlobalModule().

Referenced by clang::Sema::ActOnFunctionDeclarator(), and clang::shouldSkipCheckingODR().

◆ isFunctionOrFunctionTemplate()

bool clang::Decl::isFunctionOrFunctionTemplate ( ) const
inline

Whether this declaration is a function or function template.

Definition at line 1108 of file DeclBase.h.

Referenced by HasNonDeletedDefaultedEqualityComparison().

◆ isFunctionPointerType()

bool Decl::isFunctionPointerType ( ) const

◆ isImplicit()

bool clang::Decl::isImplicit ( ) const
inline

isImplicit - Indicates whether the declaration was implicitly generated by the implementation.

If false, this declaration was written explicitly in the source code.

Definition at line 598 of file DeclBase.h.

Referenced by clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnFinishFunctionBody(), clang::CXXRecordDecl::addedEligibleSpecialMemberFunction(), clang::Sema::AddOverloadCandidate(), clang::CodeGen::CodeGenPGO::assignRegionCounters(), clang::Sema::BuildCXXNew(), clang::Sema::buildOverloadedCallSet(), clang::Sema::BuildResolvedCallExpr(), checkDLLAttributeRedeclaration(), clang::Sema::CheckExplicitlyDefaultedComparison(), clang::Sema::checkInitializerLifetime(), clang::Sema::CheckObjCMethodOverrides(), createOverloadsForFixedParams(), clang::Sema::DeclareImplicitDeductionGuides(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DiagnoseAbsenceOfOverrideControl(), DiagnoseBadTarget(), diagnoseDeprecatedCopyOperation(), DiagnoseFailedExplicitSpec(), clang::CodeGen::CGDebugInfo::EmitFunctionDecl(), clang::CodeGen::CGDebugInfo::emitFunctionStart(), clang::Sema::FindAllocationFunctions(), clang::CXXRecordDecl::finishedDefaultedOrDeletedMember(), clang::BodyFarm::getBody(), clang::ASTContext::getBuiltinVaListDecl(), getDeclLocsForCommentSearch(), clang::interp::InterpFrame::getExpr(), clang::CXXRecordDecl::getLambdaExplicitTemplateParameters(), clang::interp::InterpFrame::getLocation(), getNonCLikeKindForAnonymousStruct(), clang::ObjCMethodDecl::getNumSelectorLocs(), clang::interp::InterpFrame::getRange(), clang::ObjCMethodDecl::getSelectorStartLoc(), clang::interp::InterpFrame::getSource(), clang::Sema::HandleExprPropertyRefExpr(), hasImplicitAttr(), hasImplicitBody(), clang::SemaCUDA::IdentifyTarget(), clang::Sema::ImplicitlyDefineFunction(), clang::index::IndexingContext::importedModule(), clang::index::IndexingContext::indexDecl(), clang::TemplateDeclInstantiator::InitFunctionInstantiation(), clang::FunctionTemplateDecl::isAbbreviated(), clang::FieldDecl::isAnonymousStructOrUnion(), clang::ObjCInterfaceDecl::isImplicitInterfaceDecl(), clang::RecordDecl::isInjectedClassName(), clang::CXXConversionDecl::isLambdaToBlockPointerConversion(), clang::diff::isSpecializedNodeExcluded(), clang::ODRHash::isSubDeclToBeProcessed(), isTrackedVar(), LeastDerivedClassWithSameLayout(), clang::ObjCInterfaceDecl::lookupMethod(), mergeDeclAttribute(), clang::Sema::MergeFunctionDecl(), clang::Sema::MergeTypedefNameDecl(), clang::Sema::NoteDeletedFunction(), NoteFunctionCandidate(), RedeclarePropertyAccessor(), RedeclForcesDefC99(), clang::ObjCMethodDecl::setMethodParams(), clang::Sema::ShouldDeleteSpecialMember(), clang::RecursiveASTVisitor< Derived >::TraverseDecl(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), clang::ASTNodeTraverser< Derived, NodeDelegateType >::Visit(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXConstructorDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXConversionDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXDestructorDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXMethodDecl(), clang::extractapi::impl::ExtractAPIVisitorBase< Derived >::VisitCXXRecordDecl(), clang::ASTDeclWriter::VisitDecl(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTNodeImporter::VisitFieldDecl(), clang::ASTDeclWriter::VisitFieldDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::ASTDeclWriter::VisitObjCIvarDecl(), clang::ASTNodeImporter::VisitObjCMethodDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTDeclWriter::VisitTemplateTypeParmDecl(), clang::ASTDeclWriter::VisitTypedefDecl(), and clang::Sema::warnOnReservedIdentifier().

◆ isInAnonymousNamespace()

bool Decl::isInAnonymousNamespace ( ) const

◆ isInAnotherModuleUnit()

bool Decl::isInAnotherModuleUnit ( ) const

Whether this declaration comes from another module unit.

Definition at line 1083 of file DeclBase.cpp.

References getASTContext(), clang::ASTContext::getCurrentNamedModule(), and getOwningModule().

Referenced by clang::Sema::ArgumentDependentLookup(), and clang::CodeGen::CodeGenVTables::isVTableExternal().

◆ isInExportDeclContext()

bool Decl::isInExportDeclContext ( ) const

Whether this declaration was exported in a lexical context.

e.g.:

export namespace A { void f1(); // isInExportDeclContext() == true } void A::f1(); // isInExportDeclContext() == false

namespace B { void f2(); // isInExportDeclContext() == false } export void B::f2(); // isInExportDeclContext() == true

Definition at line 1074 of file DeclBase.cpp.

References getLexicalDeclContext(), and clang::DeclContext::getLexicalParent().

Referenced by clang::Sema::ArgumentDependentLookup(), and clang::Sema::CheckRedeclarationExported().

◆ isInIdentifierNamespace()

bool clang::Decl::isInIdentifierNamespace ( unsigned  NS) const
inline

◆ isInLocalScopeForInstantiation()

bool Decl::isInLocalScopeForInstantiation ( ) const

Determine whether a substitution into this declaration would occur as part of a substitution into a dependent local scope.

Such a substitution transitively substitutes into all constructs nested within this declaration.

This recognizes non-defining declarations as well as members of local classes and lambdas:

template<typename T> void foo() { void bar(); }
template<typename T> void foo2() { class ABC { void bar(); }; }
template<typename T> inline int x = [](){ return 0; }();

Definition at line 376 of file DeclBase.cpp.

References getLexicalDeclContext(), clang::DeclContext::getLexicalParent(), clang::DeclContext::isDependentContext(), and clang::DeclContext::isFunctionOrMethod().

Referenced by clang::TemplateDeclInstantiator::InitFunctionInstantiation(), and clang::TemplateDeclInstantiator::VisitCXXMethodDecl().

◆ isInStdNamespace()

bool Decl::isInStdNamespace ( ) const

◆ isInvalidDecl()

bool clang::Decl::isInvalidDecl ( ) const
inline

Definition at line 593 of file DeclBase.h.

Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnBlockStmtExpr(), clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCXXEnterDeclInitializer(), clang::Sema::ActOnCXXExitDeclInitializer(), clang::Sema::ActOnCXXForRangeStmt(), clang::Sema::ActOnCXXTryBlock(), clang::Sema::ActOnDefaultCtorInitializers(), clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnExplicitInstantiation(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishDelayedCXXMethodDeclaration(), clang::SemaOpenMP::ActOnFinishedFunctionDefinitionInOpenMPAssumeScope(), clang::Sema::ActOnFinishExportDecl(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnIvar(), clang::Sema::ActOnLambdaExpressionAfterIntroducer(), clang::Sema::ActOnObjCAtCatchStmt(), clang::Sema::ActOnObjCForCollectionStmt(), actOnOMPReductionKindClause(), clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::SemaOpenMP::ActOnOpenMPPrivateClause(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagFinishDefinition(), clang::Sema::ActOnTypedefNameDecl(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddInitializerToDecl(), clang::Sema::AddKnownFunctionAttributes(), clang::Sema::AddKnownFunctionAttributesForReplaceableGlobalAllocationFunction(), adjustDeclContextForDeclaratorDecl(), allLookupResultsAreTheSame(), AnalyzeBitFieldAssignment(), clang::Sema::BuildCallToObjectOfClassType(), clang::Sema::BuildCaptureField(), clang::Sema::BuildCXXForRangeStmt(), clang::Sema::BuildDeclaratorGroup(), buildDeclareReductionRef(), clang::Sema::BuildIvarRefExpr(), clang::Sema::BuildLambdaExpr(), clang::Sema::BuildMemberReferenceExpr(), clang::Sema::BuildReturnStmt(), buildUserDefinedMapperRef(), clang::Sema::BuildUsingShadowDecl(), clang::Sema::BuildVariableInstantiation(), clang::Sema::BuildVarTemplateInstantiation(), canPassInRegisters(), CastToDerivedClass(), clang::SemaCUDA::checkAllowedInitializer(), checkARCPropertyImpl(), CheckArityMismatch(), clang::Sema::CheckBaseSpecifier(), clang::interp::CheckCallable(), clang::Sema::CheckCompletedCoroutineBody(), clang::Sema::CheckCompletedCXXClass(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckConditionVariable(), clang::Sema::CheckCXXDefaultArguments(), CheckDeclInExpr(), clang::SemaOpenMP::checkDeclIsAllowedInOpenMPTarget(), checkDLLAttributeRedeclaration(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckIfFunctionSpecializationIsImmediate(), clang::Sema::checkInitMethod(), clang::Sema::CheckMain(), clang::Sema::CheckMessageArgumentTypes(), checkMethodFamilyMismatch(), clang::Sema::CheckMSVCRTEntryPoint(), CheckMultiVersionAdditionalDecl(), clang::Sema::CheckNontrivialField(), clang::Sema::CheckObjCPropertyAttributes(), clang::Sema::CheckOverrideControl(), checkPropertyDeclWithOwnership(), clang::Sema::CheckPureMethod(), clang::Sema::CheckTemplateIdType(), clang::Sema::CheckTemplateTemplateArgument(), clang::Sema::CheckVariableDeclaration(), clang::Sema::CheckVariableDeclarationType(), clang::RecordDecl::completeDefinition(), ComputeDefaultedComparisonExceptionSpec(), ComputeDefaultedSpecialMemberExceptionSpec(), clang::Sema::CreateOverloadedBinOp(), clang::Sema::DeclareImplicitDeductionGuides(), clang::Sema::DeduceFunctionTypeFromReturnExpr(), clang::Sema::DeduceReturnType(), clang::Sema::DeduceTemplateArguments(), clang::Sema::DeduceTemplateSpecializationFromInitializer(), clang::Sema::DeduceVariableDeclarationType(), clang::Sema::DefaultSynthesizeProperties(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitDefaultConstructor(), clang::Sema::DefineImplicitLambdaToFunctionPointerConversion(), clang::Sema::DefineImplicitMoveAssignment(), DelegatingCycleHelper(), clang::Sema::DiagnoseAbsenceOfOverrideControl(), clang::Sema::DiagnoseHiddenVirtualMethods(), diagnoseOpenCLTypes(), DiagnoseReinterpretUpDownCast(), clang::Sema::DiagnoseUnimplementedProperties(), clang::Sema::DiagnoseUninstantiableTemplate(), DoMarkBindingDeclReferenced(), DoMarkVarDeclReferenced(), clang::SemaOpenMP::EndOpenMPDSABlock(), EvaluateAndDiagnoseImmediateInvocation(), EvaluateVarDecl(), clang::Sema::FinalizeVarWithDestructor(), findCompleteObject(), clang::Sema::findInheritingConstructor(), clang::Sema::FindInstantiatedDecl(), clang::ASTContext::getASTRecordLayout(), clang::ASTContext::getCommentForDecl(), clang::Sema::getConstructorName(), getContainedDynamicClass(), getNonCLikeKindForAnonymousStruct(), clang::ASTContext::getPreferredTypeAlign(), clang::ASTContext::getTypeInfoDataSizeInChars(), clang::Sema::getUndefinedButUsed(), HandleClassZeroInitialization(), HandleConstructorCall(), clang::Sema::HandleField(), HandleLValueBase(), HandleLValueDirectBase(), HandleLValueMember(), clang::Sema::HandleMSProperty(), handleNoEscapeAttr(), handleOpenCLAccessAttr(), handleSwiftError(), clang::index::IndexingContext::importedModule(), clang::Sema::InheritedConstructorInfo::InheritedConstructorInfo(), clang::Sema::InstantiateClass(), clang::Sema::InstantiateClassTemplateSpecialization(), clang::Sema::InstantiateEnum(), clang::Sema::InstantiateMemInitializers(), clang::Sema::InstantiateVariableDefinition(), clang::interp::InterpretOffsetOf(), isBetterMultiversionCandidate(), clang::Sema::IsDerivedFrom(), clang::FunctionDecl::isImplicitlyInstantiable(), clang::FieldDecl::isZeroSize(), clang::Sema::LookupLiteralOperator(), LookupMemberExpr(), clang::Sema::MarkBaseAndMemberDestructorsReferenced(), clang::Sema::MarkVirtualBaseDestructorsReferenced(), MatchesFriend(), clang::CXXRecordDecl::mayBeAbstract(), clang::Sema::MaybeBindToTemporary(), clang::Sema::MergeFunctionDecl(), clang::Sema::MergeTypedefNameDecl(), clang::Sema::MergeVarDecl(), clang::Sema::MergeVarDeclTypes(), clang::Sema::ParsedFreeStandingDeclSpec(), clang::Sema::PerformPendingInstantiations(), clang::Sema::ProcessPropertyDecl(), clang::TreeTransform< Derived >::RebuildUnresolvedUsingType(), clang::Sema::RefersToMemberWithReducedAlignment(), clang::LookupResult::resolveKind(), clang::Sema::SetDeclDefaulted(), clang::Sema::setTagNameForLinkagePurposes(), shouldBeHidden(), clang::Sema::ShouldDeleteSpecialMember(), ShouldDiagnoseUnusedDecl(), ShouldWarnAboutMissingPrototype(), clang::Sema::ShouldWarnIfUnusedFileScopedDecl(), clang::TreeTransform< Derived >::SkipLambdaBody(), clang::Sema::SubstDecl(), clang::TemplateDeclInstantiator::SubstTemplateParams(), clang::TreeTransform< Derived >::TransformNestedNameSpecifierLoc(), TryOrBuildParenListInitialization(), TryRefInitWithConversionFunction(), clang::JSONNodeDumper::Visit(), clang::TextNodeDumper::Visit(), clang::ASTDeclWriter::VisitCXXMethodDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::interp::ByteCodeExprGen< Emitter >::visitDecl(), clang::ASTDeclWriter::VisitDecl(), clang::ASTDeclWriter::VisitEnumDecl(), clang::ASTDeclWriter::VisitFieldDecl(), clang::ASTDeclReader::VisitObjCIvarDecl(), clang::ASTDeclWriter::VisitObjCIvarDecl(), clang::ASTDeclWriter::VisitParmVarDecl(), clang::ASTDeclWriter::VisitRecordDecl(), clang::ASTDeclWriter::VisitTemplateTypeParmDecl(), and clang::ASTDeclWriter::VisitTypedefDecl().

◆ isInvisibleOutsideTheOwningModule()

bool clang::Decl::isInvisibleOutsideTheOwningModule ( ) const
inline

Definition at line 665 of file DeclBase.h.

References getModuleOwnershipKind(), and VisibleWhenImported.

◆ isLocalExternDecl()

bool clang::Decl::isLocalExternDecl ( ) const
inline

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.

Definition at line 1158 of file DeclBase.h.

References IDNS_LocalExtern.

Referenced by clang::Sema::BuildVariableInstantiation(), clang::Sema::canFullyTypeCheckRedeclaration(), checkDLLAttributeRedeclaration(), clang::Sema::FilterUsingLookup(), clang::Sema::HandleDelayedAccessCheck(), isTemplated(), clang::Sema::MergeCXXFunctionDecl(), shouldBeHidden(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().

◆ isModulePrivate()

bool clang::Decl::isModulePrivate ( ) const
inline

Whether this declaration was marked as being private to the module in which it was defined.

Definition at line 647 of file DeclBase.h.

References getModuleOwnershipKind(), and ModulePrivate.

◆ isOutOfLine()

bool Decl::isOutOfLine ( ) const
virtual

◆ isParameterPack()

bool Decl::isParameterPack ( ) const

◆ isReachable()

bool clang::Decl::isReachable ( ) const
inline

Definition at line 852 of file DeclBase.h.

References getModuleOwnershipKind(), int, and ReachableWhenImported.

◆ isReferenced()

bool Decl::isReferenced ( ) const

◆ isTagIdentifierNamespace()

static bool clang::Decl::isTagIdentifierNamespace ( unsigned  NS)
inlinestatic

Definition at line 892 of file DeclBase.h.

References IDNS_Tag, IDNS_TagFriend, and IDNS_Type.

Referenced by hasTagIdentifierNamespace().

◆ isTemplated()

bool Decl::isTemplated ( ) const

◆ isTemplateDecl()

bool Decl::isTemplateDecl ( ) const

returns true if this declaration is a template

Definition at line 235 of file DeclBase.cpp.

Referenced by isTemplated().

◆ isTemplateParameter()

bool clang::Decl::isTemplateParameter ( ) const
inline

◆ isTemplateParameterPack()

bool Decl::isTemplateParameterPack ( ) const

◆ isThisDeclarationReferenced()

bool clang::Decl::isThisDeclarationReferenced ( ) const
inline

Whether this declaration was referenced.

This should not be relied upon for anything other than debugging.

Definition at line 626 of file DeclBase.h.

Referenced by clang::JSONNodeDumper::Visit(), and clang::TextNodeDumper::Visit().

◆ isTopLevelDeclInObjCContainer()

bool clang::Decl::isTopLevelDeclInObjCContainer ( ) const
inline

◆ isUnavailable()

bool clang::Decl::isUnavailable ( std::string *  Message = nullptr) const
inline

Determine whether this declaration is marked 'unavailable'.

Parameters
MessageIf non-NULL and the declaration is unavailable, this will be set to the message describing why the declaration was made unavailable (which may be empty).

Definition at line 753 of file DeclBase.h.

References clang::AR_Unavailable, and getAvailability().

Referenced by clang::Sema::ActOnFinishFunctionBody(), clang::Sema::addMethodToGlobalList(), clang::Sema::DefaultSynthesizeProperties(), and clang::Sema::DiagnoseMissingDesignatedInitOverrides().

◆ isUnconditionallyVisible()

bool clang::Decl::isUnconditionallyVisible ( ) const
inline

Determine whether this declaration is definitely visible to name lookup, independent of whether the owning module is visible.

Note: The declaration may be visible even if this returns false if the owning module is visible within the query context. This is a low-level helper function; most code should be calling Sema::isVisible() instead.

Definition at line 848 of file DeclBase.h.

References getModuleOwnershipKind(), int, and Visible.

Referenced by clang::Sema::isReachable(), clang::LookupResult::isReachable(), clang::Sema::isVisible(), clang::LookupResult::isVisible(), clang::ObjCProtocolDecl::lookupMethod(), clang::Sema::MatchTwoMethodDeclarations(), clang::ASTReader::mergeDefinitionVisibility(), NestedProtocolHasNoDefinition(), and setVisibleDespiteOwningModule().

◆ isUsed()

bool Decl::isUsed ( bool  CheckUsedAttr = true) const

◆ isWeakImported()

bool Decl::isWeakImported ( ) const

Determine whether this is a weak-imported symbol.

Weak-imported symbols are typically marked with the 'weak_import' attribute, but may also be marked with an 'availability' attribute where we're targing a platform prior to the introduction of this feature.

Definition at line 804 of file DeclBase.cpp.

References clang::AR_NotYetIntroduced, attrs(), canBeWeakImported(), CheckAvailability(), getASTContext(), and getMostRecentDecl().

Referenced by clang::ValueDecl::isWeak(), and setLinkageForGV().

◆ markUsed()

void Decl::markUsed ( ASTContext C)

◆ operator new() [1/2]

void * Decl::operator new ( std::size_t  Size,
const ASTContext Ctx,
DeclContext Parent,
std::size_t  Extra = 0 
)
protected

Allocate memory for a non-deserialized declaration.

Definition at line 93 of file DeclBase.cpp.

References Parent.

◆ operator new() [2/2]

void * Decl::operator new ( std::size_t  Size,
const ASTContext Ctx,
unsigned  ID,
std::size_t  Extra = 0 
)
protected

Allocate memory for a deserialized declaration.

This routine must be used to allocate memory for any declaration that is deserialized from a module file.

Parameters
SizeThe size of the allocated object.
CtxThe context in which we will allocate memory.
IDThe global ID of the deserialized declaration.
ExtraThe amount of extra space to allocate after the object.

Definition at line 73 of file DeclBase.cpp.

References clang::ASTContext::Allocate(), and clang::Result.

◆ operator=() [1/2]

Decl & clang::Decl::operator= ( const Decl )
delete

◆ operator=() [2/2]

Decl & clang::Decl::operator= ( Decl &&  )
delete

◆ print() [1/2]

void Decl::print ( raw_ostream &  Out,
const PrintingPolicy Policy,
unsigned  Indentation = 0,
bool  PrintInstantiation = false 
) const

Definition at line 135 of file DeclPrinter.cpp.

References getASTContext().

◆ print() [2/2]

void Decl::print ( raw_ostream &  Out,
unsigned  Indentation = 0,
bool  PrintInstantiation = false 
) const

Definition at line 130 of file DeclPrinter.cpp.

References getASTContext(), and print().

Referenced by formatTemplateParameterPlaceholder(), noteLocation(), print(), and printMemFnName().

◆ printGroup()

void Decl::printGroup ( Decl **  Begin,
unsigned  NumDecls,
raw_ostream &  Out,
const PrintingPolicy Policy,
unsigned  Indentation = 0 
)
static

◆ PrintStats()

void Decl::PrintStats ( )
static

Definition at line 178 of file DeclBase.cpp.

Referenced by clang::ParseAST().

◆ redecls()

redecl_range clang::Decl::redecls ( ) const
inline

◆ redecls_begin()

redecl_iterator clang::Decl::redecls_begin ( ) const
inline

Definition at line 1042 of file DeclBase.h.

Referenced by redecls().

◆ redecls_end()

redecl_iterator clang::Decl::redecls_end ( ) const
inline

Definition at line 1046 of file DeclBase.h.

Referenced by redecls().

◆ setAccess()

void clang::Decl::setAccess ( AccessSpecifier  AS)
inline

Definition at line 507 of file DeclBase.h.

References Access.

Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnClassTemplateSpecialization(), clang::Sema::ActOnCXXMemberDeclarator(), clang::Sema::ActOnEnumConstant(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFriendTypeDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::SemaOpenMP::ActOnOpenMPAllocateDirective(), clang::Sema::ActOnStartCXXMemberDeclarations(), clang::Sema::ActOnTag(), clang::Sema::ActOnTemplatedFriendTag(), clang::Sema::ActOnTemplateTemplateParameter(), clang::Sema::ActOnTypeParameter(), addBlockPointerConversion(), addFunctionPointerConversion(), clang::Sema::AddTemplateParametersToLambdaCallOperator(), clang::Sema::BuildAnonymousStructOrUnion(), clang::Sema::BuildUsingDeclaration(), clang::Sema::BuildUsingEnumDeclaration(), clang::Sema::BuildUsingShadowDecl(), clang::Sema::BuildVariableInstantiation(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckFunctionDeclaration(), clang::SemaOpenMP::CheckOMPThreadPrivateDecl(), clang::Sema::CreateLambdaCallOperator(), clang::Sema::DeclareImplicitDefaultConstructor(), clang::Sema::findInheritingConstructor(), clang::Sema::HandleMSProperty(), clang::TemplateDeclInstantiator::InitMethodInstantiation(), InjectAnonymousStructOrUnionMembers(), clang::TemplateDeclInstantiator::InstantiateEnumDefinition(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::Sema::MergeVarDecl(), clang::UnresolvedSetImpl::setAccess(), setInvalidDecl(), clang::Sema::SetMemberAccessSpecifier(), clang::Sema::SubstSpaceshipAsEqualEqual(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTDeclReader::VisitDecl(), clang::ASTNodeImporter::VisitEnumConstantDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTNodeImporter::VisitFieldDecl(), clang::ASTNodeImporter::VisitFriendDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::ASTNodeImporter::VisitIndirectFieldDecl(), clang::ASTNodeImporter::VisitRecordDecl(), clang::ASTNodeImporter::VisitTypeAliasTemplateDecl(), clang::ASTNodeImporter::VisitTypedefNameDecl(), clang::ASTNodeImporter::VisitUnresolvedUsingTypenameDecl(), clang::ASTNodeImporter::VisitUnresolvedUsingValueDecl(), clang::ASTNodeImporter::VisitUsingShadowDecl(), clang::ASTNodeImporter::VisitVarDecl(), clang::ASTNodeImporter::VisitVarTemplateDecl(), and clang::ASTNodeImporter::VisitVarTemplateSpecializationDecl().

◆ setAttrs()

void clang::Decl::setAttrs ( const AttrVec Attrs)
inline

◆ setCachedLinkage()

void clang::Decl::setCachedLinkage ( Linkage  L) const
inlineprotected

◆ setDeclContext()

void Decl::setDeclContext ( DeclContext DC)

◆ setFromASTFile()

void clang::Decl::setFromASTFile ( )
inline

Set the FromASTFile flag.

This indicates that this declaration was deserialized and not parsed from source code and enables features such as module ownership information.

Definition at line 697 of file DeclBase.h.

References FromASTFile.

◆ setImplicit()

void clang::Decl::setImplicit ( bool  I = true)
inline

◆ setInvalidDecl()

void Decl::setInvalidDecl ( bool  Invalid = true)

setInvalidDecl - Indicates the Decl had a semantic error.

This allows for graceful error recovery.

Definition at line 132 of file DeclBase.cpp.

References clang::AS_public, clang::Invalid, and setAccess().

Referenced by clang::Sema::ActOnAliasDeclaration(), clang::Sema::ActOnAtEnd(), clang::Sema::ActOnBlockArguments(), clang::Sema::ActOnCapScopeReturnStmt(), clang::Sema::ActOnCapturedRegionError(), clang::Sema::ActOnConceptDefinition(), clang::Sema::ActOnCXXForRangeDecl(), clang::Sema::ActOnEndOfTranslationUnit(), clang::Sema::ActOnExceptionDeclarator(), clang::Sema::ActOnFields(), clang::Sema::ActOnFinishCXXInClassMemberInitializer(), clang::Sema::ActOnFinishFunctionBody(), clang::Sema::ActOnFriendFunctionDecl(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnInitializerError(), clang::Sema::ActOnIvar(), clang::Sema::ActOnLambdaExpressionAfterIntroducer(), clang::Sema::ActOnMethodDeclaration(), clang::Sema::ActOnNonTypeTemplateParameter(), clang::Sema::ActOnObjCExceptionDecl(), clang::Sema::ActOnObjCForCollectionStmt(), clang::SemaOpenMP::ActOnOpenMPFirstprivateClause(), clang::Sema::ActOnParamDeclarator(), clang::Sema::ActOnParamDefaultArgumentError(), clang::Sema::ActOnPropertyImplDecl(), clang::Sema::ActOnStartCategoryImplementation(), clang::Sema::ActOnStartCategoryInterface(), clang::Sema::ActOnStartClassImplementation(), clang::Sema::ActOnStartClassInterface(), clang::Sema::ActOnStartExportDecl(), clang::Sema::ActOnStartNamespaceDef(), clang::Sema::ActOnStartOfFunctionDef(), clang::Sema::ActOnStartOfObjCMethodDef(), clang::Sema::ActOnTag(), clang::Sema::ActOnTagDefinitionError(), clang::Sema::ActOnTemplateTemplateParameter(), clang::SemaHLSL::ActOnTopLevelFunction(), clang::Sema::ActOnTypeParameter(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::AddInitializerToDecl(), clang::Sema::BuildAnonymousStructOrUnion(), clang::Sema::BuildCaptureField(), clang::Sema::BuildDeclaratorGroup(), clang::Sema::BuildExceptionDeclaration(), clang::Sema::BuildMicrosoftCAnonymousStruct(), clang::Sema::BuildObjCExceptionDecl(), clang::Sema::BuildReturnStmt(), clang::Sema::BuildUsingDeclaration(), clang::Sema::BuildUsingEnumDeclaration(), clang::Sema::BuildUsingShadowDecl(), clang::SemaCUDA::checkAllowedInitializer(), checkAttributesAfterMerging(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckCompletedCoroutineBody(), clang::Sema::CheckCompleteDecompositionDeclaration(), clang::Sema::CheckCompleteVariableDeclaration(), clang::Sema::CheckCXXDefaultArgExpr(), clang::Sema::CheckCXXThisCapture(), checkDLLAttributeRedeclaration(), clang::SemaHLSL::CheckEntryPoint(), clang::Sema::CheckEquivalentExceptionSpec(), clang::Sema::CheckExplicitlyDefaultedFunction(), clang::Sema::CheckExplicitObjectOverride(), clang::Sema::CheckFieldDecl(), clang::Sema::CheckForFunctionRedefinition(), clang::Sema::CheckFunctionDeclaration(), clang::Sema::CheckInheritingConstructorUsingDecl(), clang::Sema::checkInitMethod(), clang::Sema::CheckMain(), clang::Sema::CheckMSVCRTEntryPoint(), CheckMultiVersionAdditionalDecl(), CheckMultiVersionFirstFunction(), CheckMultiVersionFunction(), checkNewAttributesAfterDef(), clang::Sema::CheckObjCDeclScope(), clang::Sema::CheckObjCPropertyAttributes(), clang::Sema::CheckOverload(), clang::Sema::CheckOverrideControl(), clang::Sema::CheckParameter(), clang::Sema::CheckRedeclarationModuleOwnership(), CheckTargetCausesMultiVersioning(), clang::SemaCUDA::checkTargetOverload(), clang::Sema::CheckTypedefForVariablyModifiedType(), clang::Sema::CheckUsingShadowDecl(), clang::Sema::checkVarDeclRedefinition(), clang::Sema::CheckVariableDeclarationType(), clang::Sema::CheckVarTemplateId(), clang::ConceptDecl::Create(), clang::FunctionTemplateDecl::Create(), clang::ClassTemplateDecl::Create(), clang::TypeAliasTemplateDecl::Create(), clang::VarTemplateDecl::Create(), CreateNewFunctionDecl(), clang::Sema::CreatePropertyDecl(), clang::Sema::DeduceVariableDeclarationType(), clang::Sema::DefineDefaultedComparison(), clang::Sema::DefineImplicitCopyAssignment(), clang::Sema::DefineImplicitLambdaToBlockPointerConversion(), clang::Sema::DefineImplicitMoveAssignment(), DiagnoseInvalidRedeclaration(), diagnoseOpenCLTypes(), clang::Sema::DiagnoseUninstantiableTemplate(), diagnoseVarDeclTypeMismatch(), clang::Sema::FinalizeDeclaration(), clang::Sema::findInheritingConstructor(), FinishForRangeVarDecl(), GetFullTypeForDeclarator(), getPatternForClassTemplateSpecialization(), handleOpenCLAccessAttr(), clang::Sema::InheritedConstructorInfo::InheritedConstructorInfo(), clang::Sema::InstantiateClass(), clang::TemplateDeclInstantiator::InstantiateEnumDefinition(), clang::Sema::InstantiateInClassInitializer(), clang::Sema::InstantiateMemInitializers(), clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(), clang::Sema::InstantiateVariableInitializer(), clang::Sema::isIncompatibleTypedef(), clang::Sema::MergeTypedefNameDecl(), clang::Sema::MergeVarDecl(), clang::Sema::MergeVarDeclExceptionSpecs(), clang::Sema::ParseTypedefDecl(), clang::Sema::ProcessDeclAttributeList(), clang::Sema::SetDeclDefaulted(), clang::Sema::SetDeclDeleted(), clang::Sema::SubstBaseSpecifiers(), clang::Sema::SubstDefaultArgument(), and clang::TemplateDeclInstantiator::VisitCXXMethodDecl().

◆ setIsUsed()

void clang::Decl::setIsUsed ( )
inline

Set whether the declaration is used, in the sense of odr-use.

This should only be used immediately after creating a declaration. It intentionally doesn't notify any listeners.

Definition at line 613 of file DeclBase.h.

References getCanonicalDecl().

Referenced by clang::Sema::BuildVariableInstantiation(), markUsed(), clang::Sema::MergeCompatibleFunctionDecls(), clang::Sema::MergeVarDecl(), and clang::updateFlags().

◆ setLexicalDeclContext()

void Decl::setLexicalDeclContext ( DeclContext DC)

Definition at line 340 of file DeclBase.cpp.

References getASTContext(), getDeclContext(), getLexicalDeclContext(), getModuleOwnershipKind(), getOwningModule(), hasOwningModule(), isFromASTFile(), setLocalOwningModule(), setModuleOwnershipKind(), and VisibleWhenImported.

Referenced by clang::Sema::ActOnFields(), clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnLambdaExpressionAfterIntroducer(), clang::SemaOpenMP::ActOnOpenMPDeclareMapperDirective(), clang::Sema::ActOnProperty(), clang::Sema::ActOnTag(), clang::Sema::ActOnVariableDeclarator(), clang::ObjCImplDecl::addClassMethod(), clang::ObjCImplDecl::addInstanceMethod(), adjustDeclContextForDeclaratorDecl(), clang::Sema::BuildLambdaExpr(), clang::Sema::BuildVariableInstantiation(), clang::Sema::CheckClassTemplate(), clang::Sema::CheckImplementationIvars(), clang::Sema::CheckTemplateIdType(), clang::Sema::CompleteLambdaCallOperator(), clang::Sema::CreatePropertyDecl(), clang::Sema::DeclApplyPragmaWeak(), RedeclarePropertyAccessor(), clang::ASTNodeImporter::VisitAccessSpecDecl(), clang::ASTNodeImporter::VisitClassTemplateDecl(), clang::ASTNodeImporter::VisitClassTemplateSpecializationDecl(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), clang::ASTNodeImporter::VisitEmptyDecl(), clang::ASTNodeImporter::VisitEnumConstantDecl(), clang::ASTNodeImporter::VisitEnumDecl(), clang::ASTNodeImporter::VisitFieldDecl(), clang::ASTNodeImporter::VisitFriendDecl(), clang::ASTNodeImporter::VisitFunctionDecl(), clang::TemplateDeclInstantiator::VisitFunctionDecl(), clang::ASTNodeImporter::VisitIndirectFieldDecl(), clang::ASTNodeImporter::VisitLabelDecl(), clang::ASTNodeImporter::VisitLifetimeExtendedTemporaryDecl(), clang::ASTNodeImporter::VisitLinkageSpecDecl(), clang::ASTNodeImporter::VisitNamespaceAliasDecl(), clang::ASTNodeImporter::VisitNamespaceDecl(), clang::ASTNodeImporter::VisitObjCCategoryDecl(), clang::ASTNodeImporter::VisitObjCCategoryImplDecl(), clang::ASTNodeImporter::VisitObjCImplementationDecl(), clang::ASTNodeImporter::VisitObjCInterfaceDecl(), clang::ASTNodeImporter::VisitObjCIvarDecl(), clang::ASTNodeImporter::VisitObjCMethodDecl(), clang::ASTNodeImporter::VisitObjCPropertyDecl(), clang::ASTNodeImporter::VisitObjCPropertyImplDecl(), clang::ASTNodeImporter::VisitObjCProtocolDecl(), clang::ASTNodeImporter::VisitRecordDecl(), clang::ASTNodeImporter::VisitStaticAssertDecl(), clang::ASTNodeImporter::VisitTypeAliasTemplateDecl(), clang::ASTNodeImporter::VisitTypedefNameDecl(), clang::ASTNodeImporter::VisitUnresolvedUsingTypenameDecl(), clang::ASTNodeImporter::VisitUnresolvedUsingValueDecl(), clang::ASTNodeImporter::VisitUsingDecl(), clang::ASTNodeImporter::VisitUsingDirectiveDecl(), clang::ASTNodeImporter::VisitUsingEnumDecl(), clang::ASTNodeImporter::VisitUsingShadowDecl(), clang::ASTNodeImporter::VisitVarDecl(), and clang::ASTNodeImporter::VisitVarTemplateDecl().

◆ setLocalExternDecl()

void clang::Decl::setLocalExternDecl ( )
inline

Changes the namespace of this declaration to reflect that it's a function-local extern declaration.

These declarations appear in the lexical context of the extern declaration, but in the semantic context of the enclosing namespace scope.

Definition at line 1140 of file DeclBase.h.

References getIdentifierNamespace(), getPreviousDecl(), IDNS_LocalExtern, IDNS_Ordinary, IDNS_OrdinaryFriend, and IDNS_Tag.

Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnVariableDeclarator(), clang::Sema::BuildVariableInstantiation(), and clang::ASTDeclReader::VisitVarDeclImpl().

◆ setLocalOwningModule()

void clang::Decl::setLocalOwningModule ( Module M)
inline

◆ setLocation()

void clang::Decl::setLocation ( SourceLocation  L)
inline

◆ setModuleOwnershipKind()

void clang::Decl::setModuleOwnershipKind ( ModuleOwnershipKind  MOK)
inline

◆ setModulePrivate()

void clang::Decl::setModulePrivate ( )
inlineprotected

Specify that this declaration was marked as being private to the module in which it was defined.

Definition at line 685 of file DeclBase.h.

References getModuleOwnershipKind(), ModulePrivate, setModuleOwnershipKind(), and Unowned.

◆ setNonMemberOperator()

void clang::Decl::setNonMemberOperator ( )
inline

Specifies that this declaration is a C++ overloaded non-member.

Definition at line 1224 of file DeclBase.h.

References clang::Function, getKind(), IDNS_NonMemberOperator, and IDNS_Ordinary.

Referenced by clang::Sema::ActOnFunctionDeclarator(), and clang::TemplateDeclInstantiator::VisitFunctionDecl().

◆ setObjectOfFriendDecl()

void clang::Decl::setObjectOfFriendDecl ( bool  PerformFriendInjection = false)
inline

Changes the namespace of this declaration to reflect that it's the object of a friend declaration.

These declarations appear in the lexical context of the friending class, but in the semantic context of the actual entity. This property applies only to a specific decl object; other redeclarations of the same entity may not (and probably don't) share this property.

Definition at line 1169 of file DeclBase.h.

References getIdentifierNamespace(), getPreviousDecl(), IDNS_LocalExtern, IDNS_NonMemberOperator, IDNS_Ordinary, IDNS_OrdinaryFriend, IDNS_Tag, IDNS_TagFriend, and IDNS_Type.

Referenced by clang::Sema::ActOnFunctionDeclarator(), clang::Sema::ActOnTag(), clang::Sema::CheckClassTemplate(), clang::TemplateDeclInstantiator::VisitCXXMethodDecl(), and clang::ASTNodeImporter::VisitFriendDecl().

◆ setOwningModuleID()

void clang::Decl::setOwningModuleID ( unsigned  ID)
inline

Set the owning module ID.

This may only be called for deserialized Decls.

Definition at line 703 of file DeclBase.h.

References ID, and isFromASTFile().

Referenced by clang::ASTDeclReader::VisitDecl().

◆ setReferenced()

void clang::Decl::setReferenced ( bool  R = true)
inline

◆ setTopLevelDeclInObjCContainer()

void clang::Decl::setTopLevelDeclInObjCContainer ( bool  V = true)
inline

◆ setVisibleDespiteOwningModule()

void clang::Decl::setVisibleDespiteOwningModule ( )
inline

◆ specific_attr_begin()

template<typename T >
specific_attr_iterator< T > clang::Decl::specific_attr_begin ( ) const
inline

Definition at line 569 of file DeclBase.h.

References attr_begin().

Referenced by IsOverloadOrOverrideImpl().

◆ specific_attr_end()

template<typename T >
specific_attr_iterator< T > clang::Decl::specific_attr_end ( ) const
inline

Definition at line 574 of file DeclBase.h.

References attr_end().

Referenced by IsOverloadOrOverrideImpl().

◆ specific_attrs()

template<typename T >
llvm::iterator_range< specific_attr_iterator< T > > clang::Decl::specific_attrs ( ) const
inline

◆ updateOutOfDate()

void Decl::updateOutOfDate ( IdentifierInfo II) const
protected

Update a potentially out-of-date declaration.

Definition at line 63 of file DeclBase.cpp.

References getASTContext(), clang::ASTContext::getExternalSource(), and clang::ExternalASTSource::updateOutOfDateIdentifier().

Referenced by clang::TagDecl::getDefinition().

Friends And Related Function Documentation

◆ ASTDeclReader

friend class ASTDeclReader
friend

Definition at line 326 of file DeclBase.h.

◆ ASTDeclWriter

friend class ASTDeclWriter
friend

Definition at line 327 of file DeclBase.h.

◆ ASTNodeImporter

friend class ASTNodeImporter
friend

Definition at line 328 of file DeclBase.h.

◆ ASTReader

friend class ASTReader
friend

Definition at line 329 of file DeclBase.h.

◆ CXXClassMemberWrapper

friend class CXXClassMemberWrapper
friend

Definition at line 330 of file DeclBase.h.

◆ DeclContext

friend class DeclContext
friend

Definition at line 251 of file DeclBase.h.

◆ LinkageComputer

friend class LinkageComputer
friend

Definition at line 331 of file DeclBase.h.

◆ RecordDecl

friend class RecordDecl
friend

Definition at line 332 of file DeclBase.h.

◆ Redeclarable

template<typename decl_type >
friend class Redeclarable
friend

Definition at line 333 of file DeclBase.h.

Member Data Documentation

◆ Access

unsigned clang::Decl::Access
protected

Access - Used by C++ decls for the access specifier.

Definition at line 338 of file DeclBase.h.

Referenced by getAccess(), getAccessUnsafe(), and setAccess().

◆ CacheValidAndLinkage

unsigned clang::Decl::CacheValidAndLinkage
mutableprotected

If 0, we have not computed the linkage of this declaration.

Definition at line 350 of file DeclBase.h.

Referenced by getCachedLinkage(), hasCachedLinkage(), and setCachedLinkage().

◆ FromASTFile

unsigned clang::Decl::FromASTFile
protected

Whether this declaration was loaded from an AST file.

Definition at line 342 of file DeclBase.h.

Referenced by isFromASTFile(), setFromASTFile(), and clang::ASTDeclReader::VisitDecl().

◆ IdentifierNamespace

IdentifierNamespace - This specifies what IDNS_* namespace this lives in.

Definition at line 346 of file DeclBase.h.

◆ NextInContextAndBits

llvm::PointerIntPair<Decl *, 3, ModuleOwnershipKind> clang::Decl::NextInContextAndBits
protected

The next declaration within the same lexical DeclContext.

These pointers form the linked list that is traversed via DeclContext's decls_begin()/decls_end().

The extra three bits are used for the ModuleOwnershipKind.

Definition at line 248 of file DeclBase.h.

Referenced by clang::DeclContext::addHiddenDecl(), clang::DeclContext::BuildDeclChain(), clang::DeclContext::containsDecl(), getModuleOwnershipKind(), getNextDeclInContext(), clang::DeclContext::isDeclInLexicalTraversal(), clang::DeclContext::removeDecl(), clang::RecordDecl::reorderDecls(), and setModuleOwnershipKind().


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