clang API Documentation
Manages the lifetime of CallEvent objects. More...
#include <CallEvent.h>
Public Member Functions | |
CallEventManager (llvm::BumpPtrAllocator &alloc) | |
CallEventRef | getCaller (const StackFrameContext *CalleeCtx, ProgramStateRef State) |
CallEventRef | getSimpleCall (const CallExpr *E, ProgramStateRef State, const LocationContext *LCtx) |
CallEventRef< ObjCMethodCall > | getObjCMethodCall (const ObjCMessageExpr *E, ProgramStateRef State, const LocationContext *LCtx) |
CallEventRef< CXXConstructorCall > | getCXXConstructorCall (const CXXConstructExpr *E, const MemRegion *Target, ProgramStateRef State, const LocationContext *LCtx) |
CallEventRef< CXXDestructorCall > | getCXXDestructorCall (const CXXDestructorDecl *DD, const Stmt *Trigger, const MemRegion *Target, bool IsBase, ProgramStateRef State, const LocationContext *LCtx) |
CallEventRef< CXXAllocatorCall > | getCXXAllocatorCall (const CXXNewExpr *E, ProgramStateRef State, const LocationContext *LCtx) |
Friends | |
class | CallEvent |
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.
Definition at line 897 of file CallEvent.h.
clang::CallEventManager::CallEventManager | ( | llvm::BumpPtrAllocator & | alloc | ) | [inline] |
Definition at line 948 of file CallEvent.h.
CallEventRef CallEventManager::getCaller | ( | const StackFrameContext * | CalleeCtx, |
ProgramStateRef | State | ||
) |
Definition at line 923 of file CallEvent.cpp.
References clang::CFGElement::getAs(), clang::ento::SVal::getAsRegion(), clang::FunctionDecl::getBody(), clang::StackFrameContext::getCallSite(), clang::StackFrameContext::getCallSiteBlock(), clang::LocationContext::getCurrentStackFrame(), clang::ento::SValBuilder::getCXXThis(), clang::LocationContext::getDecl(), clang::StackFrameContext::getIndex(), clang::LocationContext::getParent(), clang::ento::SValBuilder::getStateManager(), clang::Stmt::getStmtClass(), clang::ento::ProgramStateManager::getSValBuilder(), and State.
Referenced by clang::ento::ExprEngine::processCallExit(), clang::ento::FindLastStoreBRVisitor::VisitNode(), and clang::ento::UndefOrNullArgVisitor::VisitNode().
CallEventRef<CXXAllocatorCall> clang::CallEventManager::getCXXAllocatorCall | ( | const CXXNewExpr * | E, |
ProgramStateRef | State, | ||
const LocationContext * | LCtx | ||
) | [inline] |
Definition at line 979 of file CallEvent.h.
References State.
Referenced by clang::ento::ExprEngine::VisitCXXNewExpr().
CallEventRef<CXXConstructorCall> clang::CallEventManager::getCXXConstructorCall | ( | const CXXConstructExpr * | E, |
const MemRegion * | Target, | ||
ProgramStateRef | State, | ||
const LocationContext * | LCtx | ||
) | [inline] |
Definition at line 966 of file CallEvent.h.
References State.
Referenced by clang::ento::ExprEngine::VisitCXXConstructExpr().
CallEventRef<CXXDestructorCall> clang::CallEventManager::getCXXDestructorCall | ( | const CXXDestructorDecl * | DD, |
const Stmt * | Trigger, | ||
const MemRegion * | Target, | ||
bool | IsBase, | ||
ProgramStateRef | State, | ||
const LocationContext * | LCtx | ||
) | [inline] |
Definition at line 972 of file CallEvent.h.
References State.
Referenced by clang::ento::ExprEngine::VisitCXXDestructor().
CallEventRef<ObjCMethodCall> clang::CallEventManager::getObjCMethodCall | ( | const ObjCMessageExpr * | E, |
ProgramStateRef | State, | ||
const LocationContext * | LCtx | ||
) | [inline] |
Definition at line 960 of file CallEvent.h.
References State.
Referenced by clang::ento::ExprEngine::VisitObjCMessage().
CallEventRef CallEventManager::getSimpleCall | ( | const CallExpr * | E, |
ProgramStateRef | State, | ||
const LocationContext * | LCtx | ||
) |
Definition at line 901 of file CallEvent.cpp.
References clang::CallExpr::getCallee(), clang::Expr::getType(), clang::Type::isBlockPointerType(), and State.
Referenced by clang::ento::ExprEngine::VisitCallExpr().
friend class CallEvent [friend] |
Definition at line 898 of file CallEvent.h.