class CallEventManager
Declaration
class CallEventManager { /* full declaration omitted */ };
Description
Manages the lifetime of CallEvent objects. CallEventManager provides a way to create arbitrary CallEvents "on the stack" as if they were value objects by keeping a cache of CallEvent-sized memory blocks. The CallEvents created by CallEventManager are only valid for the lifetime of the OwnedCallEvent that holds them; right now these objects cannot be copied and ownership cannot be transferred.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1234
Member Variables
- private llvm::BumpPtrAllocator& Alloc
- private SmallVector<void*, 8> Cache
Method Overview
- public CallEventManager(llvm::BumpPtrAllocator & alloc)
- private void * allocate()
- private template <typename T, typename Arg>T * create(Arg A, clang::ento::ProgramStateRef St, const clang::LocationContext * LCtx)
- private template <typename T, typename Arg1, typename Arg2>T * create(Arg1 A1, Arg2 A2, clang::ento::ProgramStateRef St, const clang::LocationContext * LCtx)
- private template <typename T, typename Arg1, typename Arg2, typename Arg3>T * create(Arg1 A1, Arg2 A2, Arg3 A3, clang::ento::ProgramStateRef St, const clang::LocationContext * LCtx)
- private template <typename T, typename Arg1, typename Arg2, typename Arg3, typename Arg4>T * create(Arg1 A1, Arg2 A2, Arg3 A3, Arg4 A4, clang::ento::ProgramStateRef St, const clang::LocationContext * LCtx)
- public CallEventRef<clang::ento::CXXAllocatorCall> getCXXAllocatorCall(const clang::CXXNewExpr * E, clang::ento::ProgramStateRef State, const clang::LocationContext * LCtx)
- public CallEventRef<clang::ento::CXXConstructorCall> getCXXConstructorCall(const clang::CXXConstructExpr * E, const clang::ento::MemRegion * Target, clang::ento::ProgramStateRef State, const clang::LocationContext * LCtx)
- public CallEventRef<clang::ento::CXXDeallocatorCall> getCXXDeallocatorCall(const clang::CXXDeleteExpr * E, clang::ento::ProgramStateRef State, const clang::LocationContext * LCtx)
- public CallEventRef<clang::ento::CXXDestructorCall> getCXXDestructorCall(const clang::CXXDestructorDecl * DD, const clang::Stmt * Trigger, const clang::ento::MemRegion * Target, bool IsBase, clang::ento::ProgramStateRef State, const clang::LocationContext * LCtx)
- public CallEventRef<clang::ento::CXXInheritedConstructorCall> getCXXInheritedConstructorCall(const clang::CXXInheritedCtorInitExpr * E, const clang::ento::MemRegion * Target, clang::ento::ProgramStateRef State, const clang::LocationContext * LCtx)
- public CallEventRef<> getCall(const clang::Stmt * S, clang::ento::ProgramStateRef State, const clang::LocationContext * LC)
- public CallEventRef<> getCaller(const clang::StackFrameContext * CalleeCtx, clang::ento::ProgramStateRef State)
- public CallEventRef<clang::ento::ObjCMethodCall> getObjCMethodCall(const clang::ObjCMessageExpr * E, clang::ento::ProgramStateRef State, const clang::LocationContext * LCtx)
- public CallEventRef<> getSimpleCall(const clang::CallExpr * E, clang::ento::ProgramStateRef State, const clang::LocationContext * LCtx)
- private void reclaim(const void * Memory)
Methods
¶CallEventManager(llvm::BumpPtrAllocator& alloc)
CallEventManager(llvm::BumpPtrAllocator& alloc)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1286
Parameters
- llvm::BumpPtrAllocator& alloc
¶void* allocate()
void* allocate()
Description
Returns memory that can be initialized as a CallEvent.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1247
¶template <typename T, typename Arg>
T* create(Arg A,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
template <typename T, typename Arg>
T* create(Arg A,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1255
Templates
- T
- Arg
Parameters
- Arg A
- clang::ento::ProgramStateRef St
- const clang::LocationContext* LCtx
¶template <typename T,
typename Arg1,
typename Arg2>
T* create(Arg1 A1,
Arg2 A2,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
template <typename T,
typename Arg1,
typename Arg2>
T* create(Arg1 A1,
Arg2 A2,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1262
Templates
- T
- Arg1
- Arg2
Parameters
- Arg1 A1
- Arg2 A2
- clang::ento::ProgramStateRef St
- const clang::LocationContext* LCtx
¶template <typename T,
typename Arg1,
typename Arg2,
typename Arg3>
T* create(Arg1 A1,
Arg2 A2,
Arg3 A3,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
template <typename T,
typename Arg1,
typename Arg2,
typename Arg3>
T* create(Arg1 A1,
Arg2 A2,
Arg3 A3,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1269
Templates
- T
- Arg1
- Arg2
- Arg3
Parameters
- Arg1 A1
- Arg2 A2
- Arg3 A3
- clang::ento::ProgramStateRef St
- const clang::LocationContext* LCtx
¶template <typename T,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
T* create(Arg1 A1,
Arg2 A2,
Arg3 A3,
Arg4 A4,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
template <typename T,
typename Arg1,
typename Arg2,
typename Arg3,
typename Arg4>
T* create(Arg1 A1,
Arg2 A2,
Arg3 A3,
Arg4 A4,
clang::ento::ProgramStateRef St,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1278
Templates
- T
- Arg1
- Arg2
- Arg3
- Arg4
Parameters
- Arg1 A1
- Arg2 A2
- Arg3 A3
- Arg4 A4
- clang::ento::ProgramStateRef St
- const clang::LocationContext* LCtx
¶CallEventRef<clang::ento::CXXAllocatorCall>
getCXXAllocatorCall(
const clang::CXXNewExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
CallEventRef<clang::ento::CXXAllocatorCall>
getCXXAllocatorCall(
const clang::CXXNewExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1329
Parameters
- const clang::CXXNewExpr* E
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LCtx
¶CallEventRef<clang::ento::CXXConstructorCall>
getCXXConstructorCall(
const clang::CXXConstructExpr* E,
const clang::ento::MemRegion* Target,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
CallEventRef<clang::ento::CXXConstructorCall>
getCXXConstructorCall(
const clang::CXXConstructExpr* E,
const clang::ento::MemRegion* Target,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1309
Parameters
- const clang::CXXConstructExpr* E
- const clang::ento::MemRegion* Target
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LCtx
¶CallEventRef<clang::ento::CXXDeallocatorCall>
getCXXDeallocatorCall(
const clang::CXXDeleteExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
CallEventRef<clang::ento::CXXDeallocatorCall>
getCXXDeallocatorCall(
const clang::CXXDeleteExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1335
Parameters
- const clang::CXXDeleteExpr* E
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LCtx
¶CallEventRef<clang::ento::CXXDestructorCall>
getCXXDestructorCall(
const clang::CXXDestructorDecl* DD,
const clang::Stmt* Trigger,
const clang::ento::MemRegion* Target,
bool IsBase,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
CallEventRef<clang::ento::CXXDestructorCall>
getCXXDestructorCall(
const clang::CXXDestructorDecl* DD,
const clang::Stmt* Trigger,
const clang::ento::MemRegion* Target,
bool IsBase,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1322
Parameters
- const clang::CXXDestructorDecl* DD
- const clang::Stmt* Trigger
- const clang::ento::MemRegion* Target
- bool IsBase
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LCtx
¶CallEventRef<
clang::ento::CXXInheritedConstructorCall>
getCXXInheritedConstructorCall(
const clang::CXXInheritedCtorInitExpr* E,
const clang::ento::MemRegion* Target,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
CallEventRef<
clang::ento::CXXInheritedConstructorCall>
getCXXInheritedConstructorCall(
const clang::CXXInheritedCtorInitExpr* E,
const clang::ento::MemRegion* Target,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1315
Parameters
- const clang::CXXInheritedCtorInitExpr* E
- const clang::ento::MemRegion* Target
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LCtx
¶CallEventRef<> getCall(
const clang::Stmt* S,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LC)
CallEventRef<> getCall(
const clang::Stmt* S,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LC)
Description
Gets a call event for a function call, Objective-C method call, a 'new', or a 'delete' call.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1295
Parameters
- const clang::Stmt* S
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LC
¶CallEventRef<> getCaller(
const clang::StackFrameContext* CalleeCtx,
clang::ento::ProgramStateRef State)
CallEventRef<> getCaller(
const clang::StackFrameContext* CalleeCtx,
clang::ento::ProgramStateRef State)
Description
Gets an outside caller given a callee context.
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1290
Parameters
- const clang::StackFrameContext* CalleeCtx
- clang::ento::ProgramStateRef State
¶CallEventRef<clang::ento::ObjCMethodCall>
getObjCMethodCall(
const clang::ObjCMessageExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
CallEventRef<clang::ento::ObjCMethodCall>
getObjCMethodCall(
const clang::ObjCMessageExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1303
Parameters
- const clang::ObjCMessageExpr* E
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LCtx
¶CallEventRef<> getSimpleCall(
const clang::CallExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
CallEventRef<> getSimpleCall(
const clang::CallExpr* E,
clang::ento::ProgramStateRef State,
const clang::LocationContext* LCtx)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1299
Parameters
- const clang::CallExpr* E
- clang::ento::ProgramStateRef State
- const clang::LocationContext* LCtx
¶void reclaim(const void* Memory)
void reclaim(const void* Memory)
Declared at: clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h:1242
Parameters
- const void* Memory