clang
3.9.0
|
BlockDecl - This represents a block literal declaration, which is like an unnamed FunctionDecl. More...
#include <Decl.h>
Classes | |
class | Capture |
A class which contains all the information about a particular captured value. More... | |
Public Types | |
typedef MutableArrayRef < ParmVarDecl * >::iterator | param_iterator |
typedef ArrayRef< ParmVarDecl * > ::const_iterator | param_const_iterator |
typedef ArrayRef< Capture > ::const_iterator | capture_const_iterator |
![]() | |
typedef llvm::iterator_range < decl_iterator > | decl_range |
typedef DeclContextLookupResult | lookup_result |
typedef lookup_result::iterator | lookup_iterator |
typedef llvm::iterator_range < all_lookups_iterator > | lookups_range |
typedef llvm::iterator_adaptor_base < udir_iterator, lookup_iterator, std::random_access_iterator_tag, UsingDirectiveDecl * > | udir_iterator_base |
typedef llvm::iterator_range < udir_iterator > | udir_range |
typedef llvm::iterator_range < DeclContext::ddiag_iterator > | ddiag_range |
Public Member Functions | |
SourceLocation | getCaretLocation () const |
bool | isVariadic () const |
void | setIsVariadic (bool value) |
CompoundStmt * | getCompoundBody () const |
Stmt * | getBody () const override |
void | setBody (CompoundStmt *B) |
void | setSignatureAsWritten (TypeSourceInfo *Sig) |
TypeSourceInfo * | getSignatureAsWritten () const |
ArrayRef< ParmVarDecl * > | parameters () const |
MutableArrayRef< ParmVarDecl * > | parameters () |
bool | param_empty () const |
param_iterator | param_begin () |
param_iterator | param_end () |
param_const_iterator | param_begin () const |
param_const_iterator | param_end () const |
size_t | param_size () const |
unsigned | getNumParams () const |
const ParmVarDecl * | getParamDecl (unsigned i) const |
ParmVarDecl * | getParamDecl (unsigned i) |
void | setParams (ArrayRef< ParmVarDecl * > NewParamInfo) |
bool | hasCaptures () const |
hasCaptures - True if this block (or its nested blocks) captures anything of local storage from its enclosing scopes. More... | |
unsigned | getNumCaptures () const |
getNumCaptures - Returns the number of captured variables. More... | |
ArrayRef< Capture > | captures () const |
capture_const_iterator | capture_begin () const |
capture_const_iterator | capture_end () const |
bool | capturesCXXThis () const |
bool | blockMissingReturnType () const |
void | setBlockMissingReturnType (bool val) |
bool | isConversionFromLambda () const |
void | setIsConversionFromLambda (bool val) |
bool | capturesVariable (const VarDecl *var) const |
void | setCaptures (ASTContext &Context, ArrayRef< Capture > Captures, bool CapturesCXXThis) |
unsigned | getBlockManglingNumber () const |
Decl * | getBlockManglingContextDecl () const |
void | setBlockMangling (unsigned Number, Decl *Ctx) |
SourceRange | getSourceRange () const override LLVM_READONLY |
![]() | |
~DeclContext () | |
Decl::Kind | getDeclKind () const |
const char * | getDeclKindName () const |
DeclContext * | getParent () |
getParent - Returns the containing DeclContext. More... | |
const DeclContext * | getParent () const |
DeclContext * | getLexicalParent () |
getLexicalParent - Returns the containing lexical DeclContext. More... | |
const DeclContext * | getLexicalParent () const |
DeclContext * | getLookupParent () |
Find the parent context of this context that will be used for unqualified name lookup. More... | |
const DeclContext * | getLookupParent () const |
ASTContext & | getParentASTContext () const |
bool | isClosure () const |
bool | isObjCContainer () const |
bool | isFunctionOrMethod () const |
bool | isLookupContext () const |
Test whether the context supports looking up names. More... | |
bool | isFileContext () const |
bool | isTranslationUnit () const |
bool | isRecord () const |
bool | isNamespace () const |
bool | isStdNamespace () const |
bool | isInlineNamespace () const |
bool | isDependentContext () const |
Determines whether this context is dependent on a template parameter. More... | |
bool | isTransparentContext () const |
isTransparentContext - Determines whether this context is a "transparent" context, meaning that the members declared in this context are semantically declared in the nearest enclosing non-transparent (opaque) context but are lexically declared in this context. More... | |
bool | isExternCContext () const |
Determines whether this context or some of its ancestors is a linkage specification context that specifies C linkage. More... | |
bool | isExternCXXContext () const |
Determines whether this context or some of its ancestors is a linkage specification context that specifies C++ linkage. More... | |
bool | Equals (const DeclContext *DC) const |
Determine whether this declaration context is equivalent to the declaration context DC. More... | |
bool | Encloses (const DeclContext *DC) const |
Determine whether this declaration context encloses the declaration context DC. More... | |
Decl * | getNonClosureAncestor () |
Find the nearest non-closure ancestor of this context, i.e. More... | |
const Decl * | getNonClosureAncestor () const |
DeclContext * | getPrimaryContext () |
getPrimaryContext - There may be many different declarations of the same entity (including forward declarations of classes, multiple definitions of namespaces, etc.), each with a different set of declarations. More... | |
const DeclContext * | getPrimaryContext () const |
DeclContext * | getRedeclContext () |
getRedeclContext - Retrieve the context in which an entity conflicts with other entities of the same name, or where it is a redeclaration if the two entities are compatible. More... | |
const DeclContext * | getRedeclContext () const |
DeclContext * | getEnclosingNamespaceContext () |
Retrieve the nearest enclosing namespace context. More... | |
const DeclContext * | getEnclosingNamespaceContext () const |
RecordDecl * | getOuterLexicalRecordContext () |
Retrieve the outermost lexically enclosing record context. More... | |
const RecordDecl * | getOuterLexicalRecordContext () const |
bool | InEnclosingNamespaceSetOf (const DeclContext *NS) const |
Test if this context is part of the enclosing namespace set of the context NS, as defined in C++0x [namespace.def]p9. More... | |
void | collectAllContexts (SmallVectorImpl< DeclContext * > &Contexts) |
Collects all of the declaration contexts that are semantically connected to this declaration context. More... | |
decl_range | decls () const |
decls_begin/decls_end - Iterate over the declarations stored in this context. More... | |
decl_iterator | decls_begin () const |
decl_iterator | decls_end () const |
bool | decls_empty () const |
decl_range | noload_decls () const |
noload_decls_begin/end - Iterate over the declarations stored in this context that are currently loaded; don't attempt to retrieve anything from an external source. More... | |
decl_iterator | noload_decls_begin () const |
decl_iterator | noload_decls_end () const |
void | addDecl (Decl *D) |
Add the declaration D into this context. More... | |
void | addDeclInternal (Decl *D) |
Add the declaration D into this context, but suppress searches for external declarations with the same name. More... | |
void | addHiddenDecl (Decl *D) |
Add the declaration D to this context without modifying any lookup tables. More... | |
void | removeDecl (Decl *D) |
Removes a declaration from this context. More... | |
bool | containsDecl (Decl *D) const |
Checks whether a declaration is in this context. More... | |
lookup_result | lookup (DeclarationName Name) const |
lookup - Find the declarations (if any) with the given Name in this context. More... | |
lookup_result | noload_lookup (DeclarationName Name) |
Find the declarations with the given name that are visible within this context; don't attempt to retrieve anything from an external source. More... | |
void | localUncachedLookup (DeclarationName Name, SmallVectorImpl< NamedDecl * > &Results) |
A simplistic name lookup mechanism that performs name lookup into this declaration context without consulting the external source. More... | |
void | makeDeclVisibleInContext (NamedDecl *D) |
Makes a declaration visible within this context. More... | |
lookups_range | lookups () const |
lookups_range | noload_lookups () const |
all_lookups_iterator | lookups_begin () const |
Iterators over all possible lookups within this context. More... | |
all_lookups_iterator | lookups_end () const |
all_lookups_iterator | noload_lookups_begin () const |
Iterators over all possible lookups within this context that are currently loaded; don't attempt to retrieve anything from an external source. More... | |
all_lookups_iterator | noload_lookups_end () const |
udir_range | using_directives () const |
Returns iterator range [First, Last) of UsingDirectiveDecls stored within this context. More... | |
ddiag_range | ddiags () const |
void | setMustBuildLookupTable () |
Mark that there are external lexical declarations that we need to include in our lookup table (and that are not available as external visible lookups). More... | |
StoredDeclsMap * | getLookupPtr () const |
Retrieve the internal representation of the lookup structure. More... | |
StoredDeclsMap * | buildLookup () |
Ensure the lookup structure is fully-built and return it. More... | |
bool | hasExternalLexicalStorage () const |
Whether this DeclContext has external storage containing additional declarations that are lexically in this context. More... | |
void | setHasExternalLexicalStorage (bool ES=true) |
State whether this DeclContext has external storage for declarations lexically in this context. More... | |
bool | hasExternalVisibleStorage () const |
Whether this DeclContext has external storage containing additional declarations that are visible in this context. More... | |
void | setHasExternalVisibleStorage (bool ES=true) |
State whether this DeclContext has external storage for declarations visible in this context. More... | |
bool | isDeclInLexicalTraversal (const Decl *D) const |
Determine whether the given declaration is stored in the list of declarations lexically within this context. More... | |
bool | setUseQualifiedLookup (bool use=true) |
bool | shouldUseQualifiedLookup () const |
void | dumpDeclContext () const |
void | dumpLookups () const |
void | dumpLookups (llvm::raw_ostream &OS, bool DumpDecls=false) const |
Static Public Member Functions | |
static BlockDecl * | Create (ASTContext &C, DeclContext *DC, SourceLocation L) |
static BlockDecl * | CreateDeserialized (ASTContext &C, unsigned ID) |
static bool | classof (const Decl *D) |
static bool | classofKind (Kind K) |
static DeclContext * | castToDeclContext (const BlockDecl *D) |
static BlockDecl * | castFromDeclContext (const DeclContext *DC) |
![]() | |
static bool | classof (const Decl *D) |
static bool | classof (const DeclContext *D) |
Protected Member Functions | |
BlockDecl (DeclContext *DC, SourceLocation CaretLoc) | |
![]() | |
DeclContext (Decl::Kind K) | |
Additional Inherited Members | |
![]() | |
static std::pair< Decl *, Decl * > | BuildDeclChain (ArrayRef< Decl * > Decls, bool FieldsAlreadyLoaded) |
Build up a chain of declarations. More... | |
![]() | |
Decl * | FirstDecl |
FirstDecl - The first declaration stored within this declaration context. More... | |
Decl * | LastDecl |
LastDecl - The last declaration stored within this declaration context. More... | |
BlockDecl - This represents a block literal declaration, which is like an unnamed FunctionDecl.
For example: ^{ statement-body } or ^(int arg1, float arg2){ statement-body }
typedef ArrayRef<Capture>::const_iterator clang::BlockDecl::capture_const_iterator |
typedef ArrayRef<ParmVarDecl *>::const_iterator clang::BlockDecl::param_const_iterator |
|
inlineprotected |
Definition at line 3518 of file Decl.h.
Referenced by Create(), and CreateDeserialized().
|
inline |
Definition at line 3587 of file Decl.h.
Referenced by clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3583 of file Decl.h.
Referenced by computeBlockInfo(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), and clang::ento::ExprEngine::VisitBlockExpr().
|
inline |
Definition at line 3584 of file Decl.h.
Referenced by computeBlockInfo(), and clang::ento::ExprEngine::VisitBlockExpr().
Definition at line 3581 of file Decl.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), capturesVariable(), computeBlockInfo(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), enterBlockScope(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::CodeGen::CodeGenFunction::GenerateCopyHelperFunction(), clang::CodeGen::CodeGenFunction::GenerateDestroyHelperFunction(), isAccessedBy(), isCapturedBy(), LazyInitializeReferencedDecls(), and clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3901 of file Decl.cpp.
References captures(), and I.
Referenced by findCapturingExpr().
|
inlinestatic |
|
inlinestatic |
Definition at line 3613 of file Decl.h.
References clang::ParmVarDecl::classofKind().
|
static |
Definition at line 4050 of file Decl.cpp.
References BlockDecl(), and AttributeLangSupport::C.
Referenced by clang::Sema::ActOnBlockStart(), and clang::Sema::BuildBlockForLambdaConversion().
|
static |
Definition at line 4054 of file Decl.cpp.
References BlockDecl(), AttributeLangSupport::C, and ID.
|
inline |
|
inline |
|
inlineoverride |
Definition at line 3536 of file Decl.h.
Referenced by findCapturingExpr(), clang::CodeGen::CodeGenFunction::GenerateBlockFunction(), clang::BlockExpr::getBody(), LazyInitializeReferencedDecls(), and clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3530 of file Decl.h.
Referenced by clang::CodeGen::CGDebugInfo::EmitDeclareOfBlockLiteralArgVariable(), and clang::BlockExpr::getCaretLocation().
|
inline |
|
inline |
getNumCaptures - Returns the number of captured variables.
Does not include an entry for 'this'.
Definition at line 3577 of file Decl.h.
Referenced by clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3561 of file Decl.h.
Referenced by checkOpenCLBlockArgs().
|
inline |
|
inline |
Definition at line 3540 of file Decl.h.
Referenced by clang::ASTDeclWriter::VisitBlockDecl().
|
override |
|
inline |
hasCaptures - True if this block (or its nested blocks) captures anything of local storage from its enclosing scopes.
Definition at line 3573 of file Decl.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), computeBlockInfo(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), and clang::ento::MemRegionManager::getBlockDataRegion().
|
inline |
Definition at line 3590 of file Decl.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::BlockCall::isConversionFromLambda(), and clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3532 of file Decl.h.
Referenced by clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3554 of file Decl.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateBlockFunction().
|
inline |
|
inline |
Definition at line 3555 of file Decl.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateBlockFunction().
|
inline |
|
inline |
Definition at line 3558 of file Decl.h.
Referenced by clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3543 of file Decl.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::ASTContext::getObjCEncodingForBlock(), clang::BlockCall::parameters(), and clang::ASTDeclWriter::VisitBlockDecl().
|
inline |
Definition at line 3605 of file Decl.h.
Referenced by clang::Sema::ActOnBlockStart().
|
inline |
Definition at line 3588 of file Decl.h.
Referenced by clang::Sema::BuildBlockForLambdaConversion(), and clang::ASTDeclReader::VisitBlockDecl().
|
inline |
Definition at line 3537 of file Decl.h.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::BuildBlockForLambdaConversion(), and clang::ASTDeclReader::VisitBlockDecl().
void BlockDecl::setCaptures | ( | ASTContext & | Context, |
ArrayRef< Capture > | Captures, | ||
bool | CapturesCXXThis | ||
) |
Definition at line 3888 of file Decl.cpp.
Referenced by clang::Sema::ActOnBlockStmtExpr(), clang::Sema::BuildBlockForLambdaConversion(), and clang::ASTDeclReader::VisitBlockDecl().
|
inline |
Definition at line 3591 of file Decl.h.
Referenced by clang::Sema::BuildBlockForLambdaConversion(), and clang::ASTDeclReader::VisitBlockDecl().
|
inline |
Definition at line 3533 of file Decl.h.
Referenced by clang::Sema::BuildBlockForLambdaConversion(), and clang::ASTDeclReader::VisitBlockDecl().
void BlockDecl::setParams | ( | ArrayRef< ParmVarDecl * > | NewParamInfo | ) |
Definition at line 3877 of file Decl.cpp.
Referenced by clang::Sema::BuildBlockForLambdaConversion(), and clang::ASTDeclReader::VisitBlockDecl().
|
inline |
Definition at line 3539 of file Decl.h.
Referenced by clang::Sema::BuildBlockForLambdaConversion(), and clang::ASTDeclReader::VisitBlockDecl().