class CXXInheritedConstructorCall

Declaration

class CXXInheritedConstructorCall : public AnyCXXConstructorCall { /* full declaration omitted */ };

Description

E.g., in: struct X { X *p = this; ~X() {} }; struct A { A(X x) : b(x.p == &x ) {} bool b; }; struct B : A { using A::A; }; B b = X{}; ... b.b is initialized to true.

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

Inherits from: AnyCXXConstructorCall

Member Variables

Inherited from CallEvent:

protected Data
protected Location

Method Overview

Inherited from AnyCXXConstructorCall:

Inherited from AnyFunctionCall:

Inherited from CallEvent:

Methods

CXXInheritedConstructorCall(
    const clang::CXXInheritedCtorInitExpr* CE,
    const clang::ento::MemRegion* Target,
    clang::ento::ProgramStateRef St,
    const clang::LocationContext* LCtx)

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

Parameters

const clang::CXXInheritedCtorInitExpr* CE
const clang::ento::MemRegion* Target
clang::ento::ProgramStateRef St
const clang::LocationContext* LCtx

CXXInheritedConstructorCall(
    const clang::ento::
        CXXInheritedConstructorCall& Other)

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

Parameters

const clang::ento::CXXInheritedConstructorCall& Other

static bool classof(
    const clang::ento::CallEvent* CA)

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

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:948

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:976

Parameters

unsigned int Index

clang::ento::SVal getArgSVal(
    unsigned int Index) const

Description

Returns the value of a given argument at the time of the call.

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

Parameters

unsigned int Index

const clang::CXXConstructorDecl* 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:957

const clang::CXXConstructExpr*
getInheritingConstructor() const

Description

Obtain the CXXConstructExpr for the sub-class that inherited the current constructor (possibly indirectly). It's the statement that contains argument expressions.

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

const clang::StackFrameContext*
getInheritingStackFrame() const

Description

Obtain the stack frame of the inheriting constructor. Argument expressions can be found on the call site of that stack frame.

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

clang::ento::CallEvent::Kind getKind() const

Description

Returns the kind of call this is.

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

llvm::StringRef getKindAsString() const

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

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:972

const clang::CXXInheritedCtorInitExpr*
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:953