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:
Method Overview
- protected CXXInheritedConstructorCall(const clang::CXXInheritedCtorInitExpr * CE, const clang::ento::MemRegion * Target, clang::ento::ProgramStateRef St, const clang::LocationContext * LCtx)
- protected CXXInheritedConstructorCall(const clang::ento::CXXInheritedConstructorCall & Other)
- 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 clang::ento::SVal getArgSVal(unsigned int Index) const
- public const clang::CXXConstructorDecl * getDecl() const
- public const clang::CXXConstructExpr * getInheritingConstructor() const
- public const clang::StackFrameContext * getInheritingStackFrame() const
- public clang::ento::CallEvent::Kind getKind() const
- public llvm::StringRef getKindAsString() const
- public unsigned int getNumArgs() const
- public const clang::CXXInheritedCtorInitExpr * getOriginExpr() const
Inherited from AnyCXXConstructorCall:
- public classof
- public getCXXThisVal
- protected getExtraInvalidatedValues
- protected getInitialStackFrameContents
Inherited from AnyFunctionCall:
- public argumentsMayEscape
- public classof
- public getDecl
- public getInitialStackFrameContents
- public getRuntimeDefinition
- public parameters
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
¶CXXInheritedConstructorCall(
const clang::CXXInheritedCtorInitExpr* CE,
const clang::ento::MemRegion* Target,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
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)
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)
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
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
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
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
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
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
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
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
llvm::StringRef getKindAsString() const
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:987
¶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:972
¶const clang::CXXInheritedCtorInitExpr*
getOriginExpr() const
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