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:

protected Data
protected Location

Method Overview

Inherited from CallEvent:

Methods

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)

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

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)

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:655

Parameters

const clang::ento::CallEvent* CA

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

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

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

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

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

clang::ento::CallEvent::ValueList& Values
clang::ento::RegionAndSymbolInvalidationTraits* ETraits

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

Description

Returns the kind of call this is.

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:652

llvm::StringRef getKindAsString() const

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:653

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

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

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

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

Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:592

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