class BlockCall
Declaration
class BlockCall : public CallEvent { /* full declaration omitted */ };
Description
Represents a call to a block. Example: ^{ statement-body }()
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:555
Inherits from: CallEvent
Member Variables
Inherited from CallEvent:
Method Overview
- protected BlockCall(const clang::ento::BlockCall & Other)
- protected BlockCall(const clang::CallExpr * CE, clang::ento::ProgramStateRef St, const clang::LocationContext * LCtx)
- public bool argumentsMayEscape() const
- public static bool classof(const clang::ento::CallEvent * CA)
- protected void cloneTo(void * Dest) const
- public const clang::Expr * getArgExpr(unsigned int Index) const
- public const clang::ento::BlockDataRegion * getBlockRegion() const
- public const clang::BlockDecl * getDecl() const
- protected void getExtraInvalidatedValues(clang::ento::CallEvent::ValueList & Values, clang::ento::RegionAndSymbolInvalidationTraits * ETraits) const
- public void getInitialStackFrameContents(const clang::StackFrameContext * CalleeCtx, clang::ento::CallEvent::BindingsTy & Bindings) const
- public clang::ento::CallEvent::Kind getKind() const
- public llvm::StringRef getKindAsString() const
- public unsigned int getNumArgs() const
- public const clang::CallExpr * getOriginExpr() const
- public const clang::ento::VarRegion * getRegionStoringCapturedLambda() const
- public clang::ento::RuntimeDefinition getRuntimeDefinition() const
- public bool isConversionFromLambda() const
- public ArrayRef<clang::ParmVarDecl *> parameters() const
Inherited from CallEvent:
- public argumentsMayEscape
- protected cloneTo
- public cloneWithState
- public cloneWithState
- public dump
- public dump
- public getASTArgumentIndex
- public getAdjustedParameterIndex
- public getArgExpr
- public getArgSVal
- public getArgSourceRange
- public getCalleeAnalysisDeclContext
- public getCalleeIdentifier
- public getCalleeStackFrame
- public getConstructionContext
- public getDecl
- public getDeclaredResultType
- protected getExtraInvalidatedValues
- public getInitialStackFrameContents
- public getKind
- public getKindAsString
- public getLocationContext
- public getNumArgs
- public getOriginExpr
- public getParameterLocation
- public getProgramPoint
- public getResultType
- public getReturnValue
- public getReturnValueUnderConstruction
- public getRuntimeDefinition
- protected getSVal
- public getSourceRange
- public getState
- public hasNonNullArgumentsWithType
- public hasNonZeroCallbackArg
- public hasVoidPointerToNonConstArg
- public invalidateRegions
- public isArgumentConstructedDirectly
- public isCallStmt
- public isForeign
- public isGlobalCFunction
- public isInSystemHeader
- public isVariadic
- public param_type_begin
- public param_type_end
- public parameters
- public setForeign
Methods
¶BlockCall(const clang::ento::BlockCall& Other)
BlockCall(const clang::ento::BlockCall& Other)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:562
Parameters
- const clang::ento::BlockCall& Other
¶BlockCall(const clang::CallExpr* CE,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
BlockCall(const clang::CallExpr* CE,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:559
Parameters
- const clang::CallExpr* CE
- clang::ento::ProgramStateRef St
- const clang::LocationContext* LCtx
¶bool argumentsMayEscape() const
bool argumentsMayEscape() const
Description
Returns true if any of the arguments are known to escape to long- term storage, even if this method will not modify them.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:643
¶static bool classof(
const clang::ento::CallEvent* CA)
static bool classof(
const clang::ento::CallEvent* CA)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:655
Parameters
- const clang::ento::CallEvent* CA
¶void cloneTo(void* Dest) const
void cloneTo(void* Dest) const
Description
Copies this CallEvent, with vtable intact, into a new block of memory.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:564
Parameters
- void* Dest
¶const clang::Expr* getArgExpr(
unsigned int Index) const
const clang::Expr* getArgExpr(
unsigned int Index) const
Description
Returns the expression associated with a given argument. May be null if this expression does not appear in the source.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:576
Parameters
- unsigned int Index
¶const clang::ento::BlockDataRegion*
getBlockRegion() const
const clang::ento::BlockDataRegion*
getBlockRegion() const
Description
Returns the region associated with this instance of the block. This may be NULL if the block's origin is unknown.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:583
¶const clang::BlockDecl* getDecl() const
const clang::BlockDecl* getDecl() const
Description
Returns the declaration of the function or method that will be called. May be null.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:585
¶void getExtraInvalidatedValues(
clang::ento::CallEvent::ValueList& Values,
clang::ento::
RegionAndSymbolInvalidationTraits*
ETraits) const
void getExtraInvalidatedValues(
clang::ento::CallEvent::ValueList& Values,
clang::ento::
RegionAndSymbolInvalidationTraits*
ETraits) const
Description
Used to specify non-argument regions that will be invalidated as a result of this call.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:566
Parameters
¶void getInitialStackFrameContents(
const clang::StackFrameContext* CalleeCtx,
clang::ento::CallEvent::BindingsTy& Bindings)
const
void getInitialStackFrameContents(
const clang::StackFrameContext* CalleeCtx,
clang::ento::CallEvent::BindingsTy& Bindings)
const
Description
Populates the given SmallVector with the bindings in the callee's stack frame at the start of this call.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:647
Parameters
- const clang::StackFrameContext* CalleeCtx
- clang::ento::CallEvent::BindingsTy& Bindings
¶clang::ento::CallEvent::Kind getKind() const
clang::ento::CallEvent::Kind getKind() const
Description
Returns the kind of call this is.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:652
¶llvm::StringRef getKindAsString() const
llvm::StringRef getKindAsString() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:653
¶unsigned int getNumArgs() const
unsigned int getNumArgs() const
Description
Returns the number of arguments (explicit and implicit). Note that this may be greater than the number of parameters in the callee's declaration, and that it may include arguments not written in the source.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:574
¶const clang::CallExpr* getOriginExpr() const
const clang::CallExpr* getOriginExpr() const
Description
Returns the expression whose value will be the result of this call. May be null.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:570
¶const clang::ento::VarRegion*
getRegionStoringCapturedLambda() const
const clang::ento::VarRegion*
getRegionStoringCapturedLambda() const
Description
For a block converted from a C++ lambda, returns the block VarRegion for the variable holding the captured C++ lambda record.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:602
¶clang::ento::RuntimeDefinition
getRuntimeDefinition() const
clang::ento::RuntimeDefinition
getRuntimeDefinition() const
Description
Returns the definition of the function or method that will be called.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:613
¶bool isConversionFromLambda() const
bool isConversionFromLambda() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:592
¶ArrayRef<clang::ParmVarDecl*> parameters() const
ArrayRef<clang::ParmVarDecl*> parameters() const
Description
Return call's formal parameters. Remember that the number of formal parameters may not match the number of arguments for all calls. However, the first parameter will always correspond with the argument value returned by \c getArgSVal(0).
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:650