clang 10.0.0git

Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
clang::ento::ExplodedNode Class Reference

`#include "clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h"`

Inheritance diagram for clang::ento::ExplodedNode:
[legend]
Collaboration diagram for clang::ento::ExplodedNode:
[legend]

## Public Types
using | succ_iterator = ExplodedNode *const *
using | succ_range = llvm::iterator_range< succ_iterator >
using | const_succ_iterator = const ExplodedNode *const *
using | const_succ_range = llvm::iterator_range< const_succ_iterator >
using | pred_iterator = ExplodedNode *const *
using | pred_range = llvm::iterator_range< pred_iterator >
using | const_pred_iterator = const ExplodedNode *const *
using | const_pred_range = llvm::iterator_range< const_pred_iterator >

## Public Member Functions
| ExplodedNode (const ProgramPoint &loc, ProgramStateRef state, int64_t Id, bool IsSink)
ProgramPoint | getLocation () const
| getLocation - Returns the edge associated with the given node. More...
const LocationContext * | getLocationContext () const
const StackFrameContext * | getStackFrame () const
const Decl & | getCodeDecl () const
CFG & | getCFG () const
const CFGBlock * | getCFGBlock () const
const ParentMap & | getParentMap () const
template<typename T >
T & | getAnalysis () const
const ProgramStateRef & | getState () const
template<typename T >
Optional< T > | getLocationAs () const LLVM_LVALUE_FUNCTION
SVal | getSVal (const Stmt *S) const
| Get the value of an arbitrary expression at this node. More...
void | Profile (llvm::FoldingSetNodeID &ID) const
void | addPredecessor (ExplodedNode *V, ExplodedGraph &G)
| addPredeccessor - Adds a predecessor to the current node, and in tandem add this node as a successor of the other node. More...
unsigned | succ_size () const
unsigned | pred_size () const
bool | succ_empty () const
bool | pred_empty () const
bool | isSink () const
bool | hasSinglePred () const
ExplodedNode * | getFirstPred ()
const ExplodedNode * | getFirstPred () const
ExplodedNode * | getFirstSucc ()
const ExplodedNode * | getFirstSucc () const
pred_iterator | pred_begin ()
pred_iterator | pred_end ()
pred_range | preds ()
const_pred_iterator | pred_begin () const
const_pred_iterator | pred_end () const
const_pred_range | preds () const
succ_iterator | succ_begin ()
succ_iterator | succ_end ()
succ_range | succs ()
const_succ_iterator | succ_begin () const
const_succ_iterator | succ_end () const
const_succ_range | succs () const
int64_t | getID () const
bool | isTrivial () const
| The node is trivial if it has only one successor, only one predecessor, it's predecessor has only one successor, and its program state is the same as the program state of the previous node. More...
const Stmt * | getStmtForDiagnostics () const
| If the node's program point corresponds to a statement, retrieve that statement. More...
const Stmt * | getNextStmtForDiagnostics () const
| Find the next statement that was executed on this node's execution path. More...
const Stmt * | getPreviousStmtForDiagnostics () const
| Find the statement that was executed immediately before this node. More...
const Stmt * | getCurrentOrPreviousStmtForDiagnostics () const
| Find the statement that was executed at or immediately before this node. More...

## Static Public Member Functions
static void | Profile (llvm::FoldingSetNodeID &ID, const ProgramPoint &Loc, const ProgramStateRef &state, bool IsSink)

## Friends
class | BranchNodeBuilder
class | CoreEngine
class | EndOfFunctionNodeBuilder
class | ExplodedGraph
class | IndirectGotoNodeBuilder
class | NodeBuilder
class | SwitchNodeBuilder

## Detailed Description

Definition at line 65 of file ExplodedGraph.h.

## Member Typedef Documentation

## ◆ const_pred_iterator

using clang::ento::ExplodedNode::const_pred_iterator = const ExplodedNode * const *

Definition at line 236 of file ExplodedGraph.h.

## ◆ const_pred_range

using clang::ento::ExplodedNode::const_pred_range = llvm::iterator_range<const_pred_iterator>

Definition at line 237 of file ExplodedGraph.h.

## ◆ const_succ_iterator

using clang::ento::ExplodedNode::const_succ_iterator = const ExplodedNode * const *

Definition at line 230 of file ExplodedGraph.h.

## ◆ const_succ_range

using clang::ento::ExplodedNode::const_succ_range = llvm::iterator_range<const_succ_iterator>

Definition at line 231 of file ExplodedGraph.h.

## ◆ pred_iterator

using clang::ento::ExplodedNode::pred_iterator = ExplodedNode * const *

Definition at line 233 of file ExplodedGraph.h.

## ◆ pred_range

using clang::ento::ExplodedNode::pred_range = llvm::iterator_range<pred_iterator>

Definition at line 234 of file ExplodedGraph.h.

## ◆ succ_iterator

using clang::ento::ExplodedNode::succ_iterator = ExplodedNode * const *

Definition at line 227 of file ExplodedGraph.h.

## ◆ succ_range

using clang::ento::ExplodedNode::succ_range = llvm::iterator_range<succ_iterator>

Definition at line 228 of file ExplodedGraph.h.

## Constructor & Destructor Documentation

## ◆ ExplodedNode()

clang::ento::ExplodedNode::ExplodedNode | ( | const ProgramPoint & | loc,
|  | ProgramStateRef | state,
|  | int64_t | Id,
|  | bool | IsSink
| ) |  |
| inline explicit

Definition at line 137 of file ExplodedGraph.h.

References isSink().

## Member Function Documentation

## ◆ addPredecessor()

void ExplodedNode::addPredecessor | ( | ExplodedNode * | V,
|  | ExplodedGraph & | G
| ) |  |

addPredeccessor - Adds a predecessor to the current node, and in tandem add this node as a successor of the other node.

Definition at line 206 of file ExplodedGraph.cpp.

References clang::ento::ExplodedGraph::getAllocator(), clang::ento::ExplodedGraph::getNodeAllocator(), isSink(), clang::transformer::node(), P, clang::BumpVector< T >::push_back(), and V.

Referenced by clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), clang::ento::BugReporter::FlushReports(), clang::ento::SwitchNodeBuilder::generateCaseStmtNode(), clang::ento::SwitchNodeBuilder::generateDefaultCaseNode(), clang::ento::IndirectGotoNodeBuilder::generateNode(), clang::ento::NodeBuilder::generateNodeImpl(), clang::ento::ExprEngine::processCallEnter(), clang::ento::ExprEngine::processCallExit(), Profile(), and clang::ento::ExplodedGraph::trim().

## ◆ getAnalysis()

template<typename T >

T& clang::ento::ExplodedNode::getAnalysis | ( |  | ) | const
| inline

Definition at line 165 of file ExplodedGraph.h.

References clang::LocationContext::getAnalysis(), and getLocationContext().

## ◆ getCFG()

CFG& clang::ento::ExplodedNode::getCFG | ( |  | ) | const
| inline

Definition at line 156 of file ExplodedGraph.h.

References clang::LocationContext::getCFG(), getCFGBlock(), and getLocationContext().

## ◆ getCFGBlock()

const CFGBlock * ExplodedNode::getCFGBlock | ( |  | ) | const

Definition at line 292 of file ExplodedGraph.cpp.

References clang::ProgramPoint::getAs(), and P.

Referenced by getCFG().

## ◆ getCodeDecl()

const Decl& clang::ento::ExplodedNode::getCodeDecl | ( |  | ) | const
| inline

Definition at line 154 of file ExplodedGraph.h.

References clang::LocationContext::getDecl(), and getLocationContext().

## ◆ getCurrentOrPreviousStmtForDiagnostics()

const Stmt * ExplodedNode::getCurrentOrPreviousStmtForDiagnostics | ( |  | ) | const

Find the statement that was executed at or immediately before this node.

Useful when any nearby statement will do. If the statement belongs to a body-farmed definition, retrieve the call site for that definition.

Definition at line 388 of file ExplodedGraph.cpp.

Referenced by getID().

## ◆ getFirstPred() [1/2]

ExplodedNode* clang::ento::ExplodedNode::getFirstPred | ( |  | ) |
| inline

Definition at line 210 of file ExplodedGraph.h.

References pred_begin(), and pred_empty().

Referenced by clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::allocation_state::getContainerObjRegion(), getFirstPred(), getPreviousStmtForDiagnostics(), clang::ento::mpi::MPIBugReporter::reportUnmatchedWait(), and clang::ento::taint::TaintBugVisitor::VisitNode().

## ◆ getFirstPred() [2/2]

const ExplodedNode* clang::ento::ExplodedNode::getFirstPred | ( |  | ) | const
| inline

Definition at line 214 of file ExplodedGraph.h.

References getFirstPred().

## ◆ getFirstSucc() [1/2]

ExplodedNode* clang::ento::ExplodedNode::getFirstSucc | ( |  | ) |
| inline

Definition at line 218 of file ExplodedGraph.h.

References succ_begin(), and succ_empty().

Referenced by llvm::GraphTraits< clang::ento::ExplodedGraph * >::child_end(), getFirstSucc(), getNextStmtForDiagnostics(), and llvm::GraphTraits< clang::ento::ExplodedGraph * >::predecessorOfTrivial().

## ◆ getFirstSucc() [2/2]

const ExplodedNode* clang::ento::ExplodedNode::getFirstSucc | ( |  | ) | const
| inline

Definition at line 222 of file ExplodedGraph.h.

References getFirstSucc().

## ◆ getID()

int64_t clang::ento::ExplodedNode::getID | ( |  | ) | const
| inline

Definition at line 263 of file ExplodedGraph.h.

References getCurrentOrPreviousStmtForDiagnostics(), getNextStmtForDiagnostics(), getPreviousStmtForDiagnostics(), getStmtForDiagnostics(), isTrivial(), and clang::transformer::node().

Referenced by clang::ento::BugReporter::FlushReports(), and clang::ento::ExplodedGraph::trim().

## ◆ getLocation()

ProgramPoint clang::ento::ExplodedNode::getLocation | ( |  | ) | const
| inline

getLocation - Returns the edge associated with the given node.

Definition at line 144 of file ExplodedGraph.h.

Referenced by clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::WorkList::enqueue(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), clang::ento::CoreEngine::ExecuteWorkList(), clang::ento::BugReporter::FlushReports(), getLocationContext(), clang::ento::CheckerContext::getLocationRegionIfPostStore(), clang::ento::StackHintGeneratorForSymbol::getMessage(), getStackFrame(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), clang::ento::WorkList::makeBFSBlockDFSContents(), clang::ento::WorkList::makeUnexploredFirst(), clang::ento::WorkList::makeUnexploredFirstPriorityQueue(), clang::ento::ExprEngine::processCFGBlockEntrance(), clang::ento::ExprEngine::processEndOfFunction(), clang::ento::mpi::MPIBugReporter::reportUnmatchedWait(), clang::ento::ExplodedGraph::trim(), clang::ento::ExprEngine::VisitLogicalExpr(), and clang::ento::ExprEngine::VisitObjCMessage().

## ◆ getLocationAs()

template<typename T >

Optional<T> clang::ento::ExplodedNode::getLocationAs | ( |  | ) | const
| inline

Definition at line 172 of file ExplodedGraph.h.

References clang::ProgramPoint::getAs().

## ◆ getLocationContext()

const LocationContext* clang::ento::ExplodedNode::getLocationContext | ( |  | ) | const
| inline

Definition at line 146 of file ExplodedGraph.h.

References getLocation(), and clang::ProgramPoint::getLocationContext().

Referenced by clang::ento::ExprEngine::bindReturnValue(), clang::ento::retaincountchecker::RetainCountChecker::checkEndFunction(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), clang::ento::SwitchNodeBuilder::generateCaseStmtNode(), clang::ento::SwitchNodeBuilder::generateDefaultCaseNode(), clang::ento::BranchNodeBuilder::generateNode(), clang::ento::IndirectGotoNodeBuilder::generateNode(), getAnalysis(), getCFG(), getCodeDecl(), clang::ento::CheckerContext::getCurrentAnalysisDeclContext(), clang::ento::PathSensitiveBugReport::getDeclWithIssue(), clang::ento::CheckerContext::getLocationContext(), clang::ento::IndirectGotoNodeBuilder::getLocationContext(), clang::ento::SwitchNodeBuilder::getLocationContext(), getParentMap(), isCXXSharedPtrDtor(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), clang::ento::WorkList::makeBFSBlockDFSContents(), clang::ento::WorkList::makeUnexploredFirst(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::ExprEngine::ProcessBaseDtor(), clang::ento::ExprEngine::processBranch(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::processCFGBlockEntrance(), clang::ento::ExprEngine::processCFGElement(), clang::ento::ExprEngine::processCleanupTemporaryBranch(), clang::ento::ExprEngine::ProcessDeleteDtor(), clang::ento::ExprEngine::processEndOfFunction(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::ProcessLoopExit(), clang::ento::ExprEngine::ProcessMemberDtor(), clang::ento::ExprEngine::ProcessNewAllocator(), clang::ento::retaincountchecker::RetainCountChecker::processObjCLiterals(), clang::ento::ExprEngine::ProcessStmt(), clang::ento::ExprEngine::ProcessTemporaryDtor(), clang::ento::ExprEngine::removeDeadOnEndOfFunction(), clang::ento::CheckerManager::runCheckersForBranchCondition(), clang::ento::CheckerManager::runCheckersForCallEvent(), clang::ento::CheckerManager::runCheckersForEndFunction(), clang::ento::updateLoopStack(), clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitBlockExpr(), clang::ento::ExprEngine::VisitCallExpr(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitCommonDeclRefExpr(), clang::ento::ExprEngine::VisitCompoundLiteralExpr(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXNewAllocatorCall(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitGCCAsmStmt(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitLambdaExpr(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::taint::TaintBugVisitor::VisitNode(), and clang::ento::ExprEngine::VisitObjCMessage().

## ◆ getNextStmtForDiagnostics()

const Stmt * ExplodedNode::getNextStmtForDiagnostics | ( |  | ) | const

Find the next statement that was executed on this node's execution path.

Useful for explaining control flow that follows the current node. If the statement belongs to a body-farmed definition, retrieve the call site for that definition.

Definition at line 353 of file ExplodedGraph.cpp.

References getFirstSucc().

Referenced by getID().

## ◆ getParentMap()

const ParentMap& clang::ento::ExplodedNode::getParentMap | ( |  | ) | const
| inline

Definition at line 160 of file ExplodedGraph.h.

References getLocationContext(), and clang::LocationContext::getParentMap().

## ◆ getPreviousStmtForDiagnostics()

const Stmt * ExplodedNode::getPreviousStmtForDiagnostics | ( |  | ) | const

Find the statement that was executed immediately before this node.

Useful when the node corresponds to a CFG block entrance. If the statement belongs to a body-farmed definition, retrieve the call site for that definition.

Definition at line 380 of file ExplodedGraph.cpp.

References getFirstPred().

Referenced by getID().

## ◆ getStackFrame()

const StackFrameContext* clang::ento::ExplodedNode::getStackFrame | ( |  | ) | const
| inline

Definition at line 150 of file ExplodedGraph.h.

References getLocation(), and clang::ProgramPoint::getStackFrame().

Referenced by clang::ento::CheckerContext::getStackFrame(), clang::ento::ExprEngine::processCallExit(), and clang::ento::ExprEngine::processEndOfFunction().

## ◆ getState()

const ProgramStateRef& clang::ento::ExplodedNode::getState | ( |  | ) | const
| inline

Definition at line 169 of file ExplodedGraph.h.

Referenced by clang::ento::mpi::MPIChecker::checkDoubleNonblocking(), clang::ento::retaincountchecker::RetainCountChecker::checkEndFunction(), clang::ento::CheckerContext::CheckerContext(), clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::ExprEngine::defaultEvalCall(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), clang::ento::ExprEngine::evalLoad(), clang::ento::CoreEngine::ExecuteWorkListWithInitialState(), clang::ento::BugReporter::FlushReports(), clang::ento::allocation_state::getContainerObjRegion(), clang::ento::StackHintGeneratorForSymbol::getMessage(), clang::ento::CheckerContext::getState(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::ExprEngine::ProcessBaseDtor(), clang::ento::ExprEngine::processBranch(), clang::ento::ExprEngine::processCallEnter(), clang::ento::ExprEngine::processCallExit(), clang::ento::ExprEngine::processCFGBlockEntrance(), clang::ento::ExprEngine::processCleanupTemporaryBranch(), clang::ento::ExprEngine::ProcessDeleteDtor(), clang::ento::ExprEngine::processEndOfFunction(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::ProcessLoopExit(), clang::ento::ExprEngine::ProcessMemberDtor(), clang::ento::ExprEngine::ProcessNewAllocator(), clang::ento::ExprEngine::ProcessTemporaryDtor(), clang::ento::ExprEngine::removeDead(), clang::ento::mpi::MPIBugReporter::reportUnmatchedWait(), clang::ento::CheckerManager::runCheckersForObjCMessage(), clang::ento::updateLoopStack(), clang::ento::ExprEngine::Visit(), clang::ento::ExprEngine::VisitBlockExpr(), clang::ento::ExprEngine::VisitCallExpr(), clang::ento::ExprEngine::VisitCast(), clang::ento::ExprEngine::VisitCommonDeclRefExpr(), clang::ento::ExprEngine::VisitCompoundLiteralExpr(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXNewAllocatorCall(), clang::ento::ExprEngine::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitGCCAsmStmt(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitLambdaExpr(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::ExprEngine::VisitMSAsmStmt(), clang::ento::taint::TaintBugVisitor::VisitNode(), and clang::ento::ExprEngine::VisitObjCMessage().

## ◆ getStmtForDiagnostics()

const Stmt * ExplodedNode::getStmtForDiagnostics | ( |  | ) | const

If the node's program point corresponds to a statement, retrieve that statement.

Useful for figuring out where to put a warning or a note. If the statement belongs to a body-farmed definition, retrieve the call site for that definition.

Definition at line 322 of file ExplodedGraph.cpp.

References findTopAutosynthesizedParentContext(), clang::LocationContext::getAnalysisDeclContext(), clang::ProgramPoint::getAs(), clang::AnalysisDeclContext::isBodyAutosynthesized(), and P.

Referenced by getID(), and clang::ento::taint::TaintBugVisitor::VisitNode().

## ◆ getSVal()

SVal clang::ento::ExplodedNode::getSVal | ( | const Stmt * | S | ) | const
| inline

Get the value of an arbitrary expression at this node.

Definition at line 177 of file ExplodedGraph.h.

Referenced by clang::ento::retaincountchecker::RetainCountChecker::checkPostStmt(), clang::ento::CheckerContext::getCalleeDecl(), clang::ento::StackHintGeneratorForSymbol::getMessage(), and clang::ento::retaincountchecker::RetainCountChecker::processObjCLiterals().

## ◆ hasSinglePred()

bool clang::ento::ExplodedNode::hasSinglePred | ( |  | ) | const
| inline

Definition at line 206 of file ExplodedGraph.h.

References pred_size().

Referenced by clang::ento::CoreEngine::dispatchWorkItem().

## ◆ isSink()

bool clang::ento::ExplodedNode::isSink | ( |  | ) | const
| inline

Definition at line 204 of file ExplodedGraph.h.

Referenced by clang::ento::ExplodedNodeSet::Add(), addPredecessor(), clang::ento::CoreEngine::enqueueStmtNode(), ExplodedNode(), clang::ento::ExplodedNodeSet::ExplodedNodeSet(), clang::ento::BugReporter::FlushReports(), clang::ento::NodeBuilderWithSinks::generateSink(), Profile(), and clang::ento::ExplodedGraph::trim().

## ◆ isTrivial()

bool ExplodedNode::isTrivial | ( |  | ) | const

The node is trivial if it has only one successor, only one predecessor, it's predecessor has only one successor, and its program state is the same as the program state of the previous node.

Trivial nodes may be skipped while printing exploded graph.

Definition at line 286 of file ExplodedGraph.cpp.

Referenced by getID(), and llvm::GraphTraits< clang::ento::ExplodedGraph * >::predecessorOfTrivial().

## ◆ pred_begin() [1/2]

pred_iterator clang::ento::ExplodedNode::pred_begin | ( |  | ) |
| inline

Definition at line 239 of file ExplodedGraph.h.

Referenced by alreadyExecutedAtLeastOneLoopIteration(), clang::ento::BugReporter::FlushReports(), getFirstPred(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), pred_begin(), clang::ento::ExprEngine::VisitGuardedExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().

## ◆ pred_begin() [2/2]

const_pred_iterator clang::ento::ExplodedNode::pred_begin | ( |  | ) | const
| inline

Definition at line 243 of file ExplodedGraph.h.

References pred_begin().

## ◆ pred_empty()

bool clang::ento::ExplodedNode::pred_empty | ( |  | ) | const
| inline

Definition at line 202 of file ExplodedGraph.h.

Referenced by clang::ento::BugReporter::FlushReports(), getFirstPred(), and clang::ento::isPossiblyEscaped().

## ◆ pred_end() [1/2]

pred_iterator clang::ento::ExplodedNode::pred_end | ( |  | ) |
| inline

Definition at line 240 of file ExplodedGraph.h.

Referenced by clang::ento::BugReporter::FlushReports(), and pred_end().

## ◆ pred_end() [2/2]

const_pred_iterator clang::ento::ExplodedNode::pred_end | ( |  | ) | const
| inline

Definition at line 246 of file ExplodedGraph.h.

References pred_end().

## ◆ pred_size()

unsigned clang::ento::ExplodedNode::pred_size | ( |  | ) | const
| inline

Definition at line 200 of file ExplodedGraph.h.

Referenced by hasSinglePred(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().

## ◆ preds() [1/2]

pred_range clang::ento::ExplodedNode::preds | ( |  | ) |
| inline

Definition at line 241 of file ExplodedGraph.h.

## ◆ preds() [2/2]

const_pred_range clang::ento::ExplodedNode::preds | ( |  | ) | const
| inline

Definition at line 249 of file ExplodedGraph.h.

## ◆ Profile() [1/2]

static void clang::ento::ExplodedNode::Profile | ( | llvm::FoldingSetNodeID & | ID,
|  | const ProgramPoint & | Loc,
|  | const ProgramStateRef & | state,
|  | bool | IsSink
| ) |  |
| inline static

Definition at line 181 of file ExplodedGraph.h.

Referenced by clang::ento::ExplodedGraph::getNode(), and Profile().

## ◆ Profile() [2/2]

void clang::ento::ExplodedNode::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | const
| inline

Definition at line 190 of file ExplodedGraph.h.

References addPredecessor(), isSink(), Profile(), and V.

## ◆ succ_begin() [1/2]

succ_iterator clang::ento::ExplodedNode::succ_begin | ( |  | ) |
| inline

Definition at line 251 of file ExplodedGraph.h.

Referenced by llvm::GraphTraits< clang::ento::ExplodedGraph * >::child_begin(), getFirstSucc(), clang::ento::ExplodedGraph::isInterestingLValueExpr(), and succ_begin().

## ◆ succ_begin() [2/2]

const_succ_iterator clang::ento::ExplodedNode::succ_begin | ( |  | ) | const
| inline

Definition at line 255 of file ExplodedGraph.h.

References succ_begin().

## ◆ succ_empty()

bool clang::ento::ExplodedNode::succ_empty | ( |  | ) | const
| inline

Definition at line 201 of file ExplodedGraph.h.

Referenced by getFirstSucc().

## ◆ succ_end() [1/2]

succ_iterator clang::ento::ExplodedNode::succ_end | ( |  | ) |
| inline

Definition at line 252 of file ExplodedGraph.h.

Referenced by llvm::GraphTraits< clang::ento::ExplodedGraph * >::child_end(), and succ_end().

## ◆ succ_end() [2/2]

const_succ_iterator clang::ento::ExplodedNode::succ_end | ( |  | ) | const
| inline

Definition at line 258 of file ExplodedGraph.h.

References succ_end().

## ◆ succ_size()

unsigned clang::ento::ExplodedNode::succ_size | ( |  | ) | const
| inline

Definition at line 199 of file ExplodedGraph.h.

Referenced by clang::ento::ExplodedGraph::isInterestingLValueExpr(), and llvm::GraphTraits< clang::ento::ExplodedGraph * >::predecessorOfTrivial().

## ◆ succs() [1/2]

succ_range clang::ento::ExplodedNode::succs | ( |  | ) |
| inline

Definition at line 253 of file ExplodedGraph.h.

Referenced by clang::ento::BugReporter::FlushReports().

## ◆ succs() [2/2]

const_succ_range clang::ento::ExplodedNode::succs | ( |  | ) | const
| inline

Definition at line 261 of file ExplodedGraph.h.

## Friends And Related Function Documentation

## ◆ BranchNodeBuilder

friend class BranchNodeBuilder
| friend

Definition at line 66 of file ExplodedGraph.h.

## ◆ CoreEngine

friend class CoreEngine
| friend

Definition at line 67 of file ExplodedGraph.h.

## ◆ EndOfFunctionNodeBuilder

friend class EndOfFunctionNodeBuilder
| friend

Definition at line 68 of file ExplodedGraph.h.

## ◆ ExplodedGraph

friend class ExplodedGraph
| friend

Definition at line 69 of file ExplodedGraph.h.

## ◆ IndirectGotoNodeBuilder

friend class IndirectGotoNodeBuilder
| friend

Definition at line 70 of file ExplodedGraph.h.

## ◆ NodeBuilder

friend class NodeBuilder
| friend

Definition at line 71 of file ExplodedGraph.h.

## ◆ SwitchNodeBuilder

friend class SwitchNodeBuilder
| friend

Definition at line 72 of file ExplodedGraph.h.

The documentation for this class was generated from the following files:

- include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
- lib/StaticAnalyzer/Core/ExplodedGraph.cpp