clang
3.9.0
|
#include <ProgramPoint.h>
Public Types | |
enum | Kind { BlockEdgeKind, BlockEntranceKind, BlockExitKind, PreStmtKind, PreStmtPurgeDeadSymbolsKind, PostStmtPurgeDeadSymbolsKind, PostStmtKind, PreLoadKind, PostLoadKind, PreStoreKind, PostStoreKind, PostConditionKind, PostLValueKind, MinPostStmtKind = PostStmtKind, MaxPostStmtKind = PostLValueKind, PostInitializerKind, CallEnterKind, CallExitBeginKind, CallExitEndKind, PreImplicitCallKind, PostImplicitCallKind, MinImplicitCallKind = PreImplicitCallKind, MaxImplicitCallKind = PostImplicitCallKind, EpsilonKind } |
Public Member Functions | |
ProgramPoint | withTag (const ProgramPointTag *tag) const |
Create a new ProgramPoint object that is the same as the original except for using the specified tag value. More... | |
template<typename T > | |
T | castAs () const |
Convert to the specified ProgramPoint type, asserting that this ProgramPoint is of the desired type. More... | |
template<typename T > | |
Optional< T > | getAs () const |
Convert to the specified ProgramPoint type, returning None if this ProgramPoint is not of the desired type. More... | |
Kind | getKind () const |
bool | isPurgeKind () |
Is this a program point corresponding to purge/removal of dead symbols and bindings. More... | |
const ProgramPointTag * | getTag () const |
const LocationContext * | getLocationContext () const |
unsigned | getHashValue () const |
bool | operator== (const ProgramPoint &RHS) const |
bool | operator!= (const ProgramPoint &RHS) const |
void | Profile (llvm::FoldingSetNodeID &ID) const |
Static Public Member Functions | |
static ProgramPoint | getProgramPoint (const Stmt *S, ProgramPoint::Kind K, const LocationContext *LC, const ProgramPointTag *tag) |
Protected Member Functions | |
ProgramPoint () | |
ProgramPoint (const void *P, Kind k, const LocationContext *l, const ProgramPointTag *tag=nullptr) | |
ProgramPoint (const void *P1, const void *P2, Kind k, const LocationContext *l, const ProgramPointTag *tag=nullptr) | |
const void * | getData1 () const |
const void * | getData2 () const |
void | setData2 (const void *d) |
Definition at line 61 of file ProgramPoint.h.
Definition at line 63 of file ProgramPoint.h.
|
inlineprotected |
Definition at line 99 of file ProgramPoint.h.
Referenced by withTag().
|
inlineprotected |
Definition at line 100 of file ProgramPoint.h.
References getData1(), getKind(), and getLocationContext().
|
inlineprotected |
Definition at line 113 of file ProgramPoint.h.
|
inline |
Convert to the specified ProgramPoint type, asserting that this ProgramPoint is of the desired type.
Definition at line 139 of file ProgramPoint.h.
Referenced by clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), clang::ento::StackHintGeneratorForSymbol::getMessage(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), clang::ento::ExprEngine::VisitGuardedExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().
|
inline |
Convert to the specified ProgramPoint type, returning None if this ProgramPoint is not of the desired type.
Definition at line 150 of file ProgramPoint.h.
References clang::None.
Referenced by alreadyExecutedAtLeastOneLoopIteration(), clang::ento::PathDiagnosticLocation::create(), clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), GenerateAlternateExtensivePathDiagnostic(), GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), GetAllocationSite(), getLastStmt(), clang::ento::ExplodedNode::getLocationAs(), clang::ento::CheckerContext::getLocationRegionIfPostStore(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), clang::ento::BugReport::getStmt(), clang::ento::PathDiagnosticLocation::getStmt(), getStmtBeforeCond(), peelOffOuterExpr(), shouldRemoveDeadBindings(), clang::ento::bugreporter::trackNullOrUndefValue(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::FindLastStoreBRVisitor::VisitNode(), clang::ento::UndefOrNullArgVisitor::VisitNode(), clang::ento::SuppressInlineDefensiveChecksVisitor::VisitNode(), and clang::ento::ConditionBRVisitor::VisitNodeImpl().
|
inlineprotected |
Definition at line 124 of file ProgramPoint.h.
Referenced by clang::BlockEntrance::getBlock(), clang::BlockExit::getBlock(), clang::CallExitEnd::getCalleeContext(), clang::CallEnter::getCallExpr(), clang::EpsilonPoint::getData(), clang::PostInitializer::getInitializer(), clang::ImplicitCallPoint::getLocation(), clang::BlockEdge::getSrc(), clang::StmtPoint::getStmt(), Profile(), ProgramPoint(), and withTag().
|
inlineprotected |
Definition at line 125 of file ProgramPoint.h.
Referenced by clang::CallEnter::getCalleeContext(), clang::ImplicitCallPoint::getDecl(), clang::BlockEdge::getDst(), clang::PostStore::getLocationValue(), clang::PostInitializer::getLocationValue(), clang::PreStmt::getSubStmt(), clang::PostStore::PostStore(), Profile(), and withTag().
|
inline |
Definition at line 183 of file ProgramPoint.h.
Referenced by llvm::DenseMapInfo< clang::ProgramPoint >::getHashValue().
|
inline |
Definition at line 159 of file ProgramPoint.h.
Referenced by clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::WorkList::enqueue(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), isPurgeKind(), Profile(), ProgramPoint(), and withTag().
|
inline |
Definition at line 178 of file ProgramPoint.h.
Referenced by clang::ento::PathDiagnosticCallPiece::construct(), clang::ento::PathDiagnosticLocation::create(), getLastStmt(), clang::ento::ExplodedNode::getLocationContext(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), clang::ento::BugReport::getStmt(), clang::ento::ExprEngine::processCFGBlockEntrance(), Profile(), ProgramPoint(), clang::ento::PathDiagnosticCallPiece::setCallee(), clang::ento::FindLastStoreBRVisitor::VisitNode(), and withTag().
|
static |
Definition at line 21 of file ProgramPoint.cpp.
References PostLoadKind, PostLValueKind, PostStmtKind, PostStmtPurgeDeadSymbolsKind, PreLoadKind, PreStmtKind, PreStmtPurgeDeadSymbolsKind, and PreStoreKind.
Referenced by clang::ento::StmtNodeBuilder::generateNode(), clang::ento::StmtNodeBuilder::generateSink(), and clang::ento::CheckerManager::runCheckersForEvalCall().
|
inline |
Definition at line 176 of file ProgramPoint.h.
Referenced by clang::ento::CheckerContext::generateErrorNode(), clang::ento::CheckerContext::generateNonFatalErrorNode(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), Profile(), and clang::ento::ExprEngine::VisitObjCMessage().
|
inline |
Is this a program point corresponding to purge/removal of dead symbols and bindings.
Definition at line 170 of file ProgramPoint.h.
References getKind(), PostStmtPurgeDeadSymbolsKind, and PreStmtPurgeDeadSymbolsKind.
|
inline |
Definition at line 196 of file ProgramPoint.h.
|
inline |
Definition at line 189 of file ProgramPoint.h.
|
inline |
Definition at line 203 of file ProgramPoint.h.
References getData1(), getData2(), getKind(), getLocationContext(), and getTag().
Referenced by getHashValue().
|
inlineprotected |
Definition at line 126 of file ProgramPoint.h.
Referenced by clang::PostStore::PostStore().
|
inline |
Create a new ProgramPoint object that is the same as the original except for using the specified tag value.
Definition at line 131 of file ProgramPoint.h.
References getData1(), getData2(), getKind(), getLocationContext(), and ProgramPoint().
Referenced by clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::NodeBuilderWithSinks::generateNode(), and clang::ento::NodeBuilderWithSinks::generateSink().