clang
8.0.0
|
#include "clang/Analysis/ProgramPoint.h"
Public Types | |
enum | Kind { BlockEdgeKind, BlockEntranceKind, BlockExitKind, PreStmtKind, PreStmtPurgeDeadSymbolsKind, PostStmtPurgeDeadSymbolsKind, PostStmtKind, PreLoadKind, PostLoadKind, PreStoreKind, PostStoreKind, PostConditionKind, PostLValueKind, PostAllocatorCallKind, MinPostStmtKind = PostStmtKind, MaxPostStmtKind = PostAllocatorCallKind, PostInitializerKind, CallEnterKind, CallExitBeginKind, CallExitEndKind, FunctionExitKind, PreImplicitCallKind, PostImplicitCallKind, MinImplicitCallKind = PreImplicitCallKind, MaxImplicitCallKind = PostImplicitCallKind, LoopExitKind, 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 |
const StackFrameContext * | getStackFrame () const |
unsigned | getHashValue () const |
bool | operator== (const ProgramPoint &RHS) const |
bool | operator!= (const ProgramPoint &RHS) const |
void | Profile (llvm::FoldingSetNodeID &ID) const |
void | print (StringRef CR, llvm::raw_ostream &Out) const |
LLVM_DUMP_METHOD void | dump () const |
Static Public Member Functions | |
static ProgramPoint | getProgramPoint (const Stmt *S, ProgramPoint::Kind K, const LocationContext *LC, const ProgramPointTag *tag) |
Protected Member Functions | |
ProgramPoint ()=default | |
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.
|
protecteddefault |
|
inlineprotected |
Definition at line 103 of file ProgramPoint.h.
References getKind().
|
inlineprotected |
Definition at line 116 of file ProgramPoint.h.
|
inline |
Convert to the specified ProgramPoint type, asserting that this ProgramPoint is of the desired type.
Definition at line 142 of file ProgramPoint.h.
Referenced by clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), clang::ento::StackHintGeneratorForSymbol::getMessage(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), clang::ento::ExprEngine::VisitGuardedExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().
LLVM_DUMP_METHOD void ProgramPoint::dump | ( | ) | const |
Definition at line 46 of file ProgramPoint.cpp.
|
inline |
Convert to the specified ProgramPoint type, returning None if this ProgramPoint is not of the desired type.
Definition at line 153 of file ProgramPoint.h.
References clang::None.
Referenced by alreadyExecutedAtLeastOneLoopIteration(), CompactMacroExpandedPieces(), clang::ento::PathDiagnosticLocation::create(), clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), generatePathDiagnosticsForNode(), clang::ento::ExplodedNode::getLocationAs(), clang::ento::CheckerContext::getLocationRegionIfPostStore(), getLocationRegionIfReference(), clang::ento::BugReport::getStmt(), clang::ento::PathDiagnosticLocation::getStmt(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), clang::ento::WorkList::makeBFSBlockDFSContents(), clang::ento::WorkList::makeUnexploredFirst(), clang::ento::WorkList::makeUnexploredFirstPriorityQueue(), clang::ento::ExprEngine::VisitGuardedExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().
|
inlineprotected |
Definition at line 127 of file ProgramPoint.h.
|
inlineprotected |
Definition at line 128 of file ProgramPoint.h.
|
inline |
Definition at line 190 of file ProgramPoint.h.
Referenced by llvm::DenseMapInfo< clang::ProgramPoint >::getHashValue().
|
inline |
Definition at line 162 of file ProgramPoint.h.
Referenced by clang::ento::CoreEngine::dispatchWorkItem(), and clang::ento::WorkList::enqueue().
|
inline |
Definition at line 181 of file ProgramPoint.h.
Referenced by clang::ento::PathDiagnosticCallPiece::construct(), clang::ento::PathDiagnosticLocation::create(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), clang::ento::ExplodedNode::getLocationContext(), clang::ento::BugReport::getStmt(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), clang::ento::ExprEngine::processCFGBlockEntrance(), and clang::ento::PathDiagnosticCallPiece::setCallee().
|
static |
Definition at line 21 of file ProgramPoint.cpp.
Referenced by clang::ento::CheckerManager::runCheckersForCallEvent(), and clang::ento::CheckerManager::runCheckersForEvalCall().
|
inline |
Definition at line 185 of file ProgramPoint.h.
References clang::LocationContext::getStackFrame().
Referenced by clang::ento::ExplodedNode::getStackFrame().
|
inline |
Definition at line 179 of file ProgramPoint.h.
Referenced by clang::ento::CheckerContext::generateErrorNode(), clang::ento::CheckerContext::generateNonFatalErrorNode(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), and clang::ento::ExprEngine::VisitObjCMessage().
|
inline |
Is this a program point corresponding to purge/removal of dead symbols and bindings.
Definition at line 173 of file ProgramPoint.h.
References getKind().
|
inline |
Definition at line 203 of file ProgramPoint.h.
|
inline |
Definition at line 196 of file ProgramPoint.h.
void ProgramPoint::print | ( | StringRef | CR, |
llvm::raw_ostream & | Out | ||
) | const |
Definition at line 60 of file ProgramPoint.cpp.
|
inline |
Definition at line 210 of file ProgramPoint.h.
|
inlineprotected |
Definition at line 129 of file ProgramPoint.h.
|
inline |
Create a new ProgramPoint object that is the same as the original except for using the specified tag value.
Definition at line 134 of file ProgramPoint.h.
References getKind().
Referenced by clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::NodeBuilderWithSinks::generateNode(), clang::ento::NodeBuilderWithSinks::generateSink(), and clang::ento::CheckerManager::runCheckersForEndAnalysis().