clang
3.9.0
|
#include <ExplodedGraph.h>
Classes | |
class | Auditor |
Public Types | |
typedef ExplodedNode *const * | succ_iterator |
typedef const ExplodedNode *const * | const_succ_iterator |
typedef ExplodedNode *const * | pred_iterator |
typedef const ExplodedNode *const * | const_pred_iterator |
Public Member Functions | |
ExplodedNode (const ProgramPoint &loc, ProgramStateRef state, 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 |
ParentMap & | getParentMap () const |
template<typename T > | |
T & | getAnalysis () const |
const ProgramStateRef & | getState () const |
template<typename T > | |
Optional< T > | getLocationAs () const LLVM_LVALUE_FUNCTION |
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 |
const ExplodedNode * | getFirstSucc () const |
pred_iterator | pred_begin () |
pred_iterator | pred_end () |
const_pred_iterator | pred_begin () const |
const_pred_iterator | pred_end () const |
succ_iterator | succ_begin () |
succ_iterator | succ_end () |
const_succ_iterator | succ_begin () const |
const_succ_iterator | succ_end () const |
Static Public Member Functions | |
static void | Profile (llvm::FoldingSetNodeID &ID, const ProgramPoint &Loc, const ProgramStateRef &state, bool IsSink) |
static void | SetAuditor (Auditor *A) |
Friends | |
class | ExplodedGraph |
class | CoreEngine |
class | NodeBuilder |
class | BranchNodeBuilder |
class | IndirectGotoNodeBuilder |
class | SwitchNodeBuilder |
class | EndOfFunctionNodeBuilder |
Definition at line 55 of file ExplodedGraph.h.
typedef const ExplodedNode* const* clang::ento::ExplodedNode::const_pred_iterator |
Definition at line 205 of file ExplodedGraph.h.
typedef const ExplodedNode* const* clang::ento::ExplodedNode::const_succ_iterator |
Definition at line 203 of file ExplodedGraph.h.
typedef ExplodedNode* const* clang::ento::ExplodedNode::pred_iterator |
Definition at line 204 of file ExplodedGraph.h.
typedef ExplodedNode* const* clang::ento::ExplodedNode::succ_iterator |
Definition at line 202 of file ExplodedGraph.h.
|
inlineexplicit |
Definition at line 125 of file ExplodedGraph.h.
References isSink().
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 218 of file ExplodedGraph.cpp.
References clang::ento::ExplodedNode::Auditor::AddEdge(), isSink(), and NodeAuditor.
Referenced by clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::SwitchNodeBuilder::generateCaseStmtNode(), clang::ento::SwitchNodeBuilder::generateDefaultCaseNode(), clang::ento::IndirectGotoNodeBuilder::generateNode(), clang::ento::NodeBuilder::generateNodeImpl(), clang::ento::ExprEngine::processCallEnter(), clang::ento::ExprEngine::processCallExit(), and clang::ento::ExplodedGraph::trim().
|
inline |
Definition at line 149 of file ExplodedGraph.h.
References clang::LocationContext::getAnalysis(), and getLocationContext().
|
inline |
Definition at line 144 of file ExplodedGraph.h.
References clang::LocationContext::getCFG(), and getLocationContext().
|
inline |
Definition at line 142 of file ExplodedGraph.h.
References clang::LocationContext::getDecl(), and getLocationContext().
|
inline |
Definition at line 189 of file ExplodedGraph.h.
References pred_begin(), and pred_empty().
Referenced by clang::ento::CoreEngine::dispatchWorkItem(), GenerateAlternateExtensivePathDiagnostic(), GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), GenerateVisitorsOnlyPathDiagnostic(), getFirstPred(), getLastStmt(), GetPreviousStmt(), getStmtBeforeCond(), peelOffOuterExpr(), and clang::ento::bugreporter::trackNullOrUndefValue().
|
inline |
Definition at line 193 of file ExplodedGraph.h.
References getFirstPred().
|
inline |
Definition at line 197 of file ExplodedGraph.h.
References succ_begin(), and succ_empty().
Referenced by clang::ento::PathDiagnosticLocation::getNextStmt().
|
inline |
getLocation - Returns the edge associated with the given node.
Definition at line 132 of file ExplodedGraph.h.
Referenced by alreadyExecutedAtLeastOneLoopIteration(), clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::ento::CoreEngine::dispatchWorkItem(), clang::ento::WorkList::enqueue(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), clang::ento::CoreEngine::ExecuteWorkList(), GenerateAlternateExtensivePathDiagnostic(), GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), GetAllocationSite(), getLastStmt(), getLocationContext(), clang::ento::CheckerContext::getLocationRegionIfPostStore(), clang::ento::StackHintGeneratorForSymbol::getMessage(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), clang::ento::BugReport::getStmt(), clang::ento::PathDiagnosticLocation::getStmt(), getStmtBeforeCond(), peelOffOuterExpr(), clang::ento::ExprEngine::processCFGBlockEntrance(), shouldRemoveDeadBindings(), clang::ento::bugreporter::trackNullOrUndefValue(), clang::ento::ExplodedGraph::trim(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::FindLastStoreBRVisitor::VisitNode(), clang::ento::TrackConstraintBRVisitor::VisitNode(), clang::ento::UndefOrNullArgVisitor::VisitNode(), clang::ento::SuppressInlineDefensiveChecksVisitor::VisitNode(), clang::ento::ConditionBRVisitor::VisitNodeImpl(), and clang::ento::ExprEngine::VisitObjCMessage().
|
inline |
Definition at line 156 of file ExplodedGraph.h.
References clang::ProgramPoint::getAs().
Referenced by clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::ento::bugreporter::GetDenomExpr(), getLastStmt(), clang::ento::bugreporter::GetRetValExpr(), isInitializationOfVar(), clang::ento::FindLastStoreBRVisitor::VisitNode(), and clang::ento::NilReceiverBRVisitor::VisitNode().
|
inline |
Definition at line 134 of file ExplodedGraph.h.
References getLocation(), and clang::ProgramPoint::getLocationContext().
Referenced by clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::PathDiagnosticLocation::createEndOfPath(), clang::ento::CoreEngine::enqueueEndOfFunction(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), GenerateAlternateExtensivePathDiagnostic(), clang::ento::SwitchNodeBuilder::generateCaseStmtNode(), clang::ento::SwitchNodeBuilder::generateDefaultCaseNode(), GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), clang::ento::StmtNodeBuilder::generateNode(), clang::ento::BranchNodeBuilder::generateNode(), clang::ento::IndirectGotoNodeBuilder::generateNode(), clang::ento::StmtNodeBuilder::generateSink(), GetAllocationSite(), getAnalysis(), getArgumentValueString(), clang::ento::CheckerContext::getCalleeDecl(), getCFG(), getCodeDecl(), clang::ento::CheckerContext::getCurrentAnalysisDeclContext(), clang::ento::BugReport::getDeclWithIssue(), clang::ento::LikelyFalsePositiveSuppressionBRVisitor::getEndPath(), clang::ento::CheckerContext::getLocationContext(), clang::ento::IndirectGotoNodeBuilder::getLocationContext(), clang::ento::SwitchNodeBuilder::getLocationContext(), getLocationRegionIfReference(), clang::ento::StackHintGeneratorForSymbol::getMessage(), clang::ento::NilReceiverBRVisitor::getNilReceiver(), getParentMap(), getStackFrame(), isInitializationOfVar(), mayInlineCallKind(), clang::ento::ConditionBRVisitor::patternMatch(), 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::ProcessDeleteDtor(), clang::ento::ExprEngine::processEndOfFunction(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::ProcessMemberDtor(), clang::ento::ExprEngine::ProcessNewAllocator(), clang::ento::ExprEngine::ProcessStmt(), clang::ento::FindLastStoreBRVisitor::registerStatementVarDecls(), clang::ento::ExprEngine::removeDeadOnEndOfFunction(), clang::ento::CheckerManager::runCheckersForEndFunction(), clang::ento::CheckerManager::runCheckersForEvalCall(), clang::ento::bugreporter::trackNullOrUndefValue(), 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::ConditionBRVisitor::VisitConditionVariable(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXDestructor(), 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::NilReceiverBRVisitor::VisitNode(), clang::ento::SuppressInlineDefensiveChecksVisitor::VisitNode(), clang::ento::ExprEngine::VisitObjCForCollectionStmt(), clang::ento::ExprEngine::VisitObjCMessage(), clang::ento::ExprEngine::VisitOffsetOfExpr(), and clang::ento::ConditionBRVisitor::VisitTrueTest().
|
inline |
Definition at line 146 of file ExplodedGraph.h.
References getLocationContext(), and clang::LocationContext::getParentMap().
|
inline |
Definition at line 138 of file ExplodedGraph.h.
References clang::LocationContext::getCurrentStackFrame(), and getLocationContext().
Referenced by clang::ento::CheckerContext::getStackFrame(), clang::ento::ExprEngine::processCleanupTemporaryBranch(), and clang::ento::ExprEngine::ProcessTemporaryDtor().
|
inline |
Definition at line 153 of file ExplodedGraph.h.
Referenced by clang::ento::mpi::MPIChecker::checkDoubleNonblocking(), clang::ento::CheckerContext::CheckerContext(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::ExprEngine::defaultEvalCall(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::evalEagerlyAssumeBinOpBifurcation(), GenerateAlternateExtensivePathDiagnostic(), GenerateExtensivePathDiagnostic(), GetAllocationSite(), getArgumentValueString(), getLocationRegionIfReference(), clang::ento::StackHintGeneratorForSymbol::getMessage(), clang::ento::NilReceiverBRVisitor::getNilReceiver(), llvm::DOTGraphTraits< ExplodedNode * >::getNodeLabel(), clang::ento::CheckerContext::getState(), clang::ento::ConditionBRVisitor::patternMatch(), 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::ProcessMemberDtor(), clang::ento::ExprEngine::ProcessNewAllocator(), clang::ento::ExprEngine::ProcessTemporaryDtor(), clang::ento::FindLastStoreBRVisitor::registerStatementVarDecls(), clang::ento::ExprEngine::removeDead(), clang::ento::SuppressInlineDefensiveChecksVisitor::SuppressInlineDefensiveChecksVisitor(), clang::ento::bugreporter::trackNullOrUndefValue(), 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::ConditionBRVisitor::VisitConditionVariable(), clang::ento::ExprEngine::VisitCXXCatchStmt(), clang::ento::ExprEngine::VisitCXXConstructExpr(), clang::ento::ExprEngine::VisitCXXDeleteExpr(), clang::ento::ExprEngine::VisitCXXDestructor(), 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::FindLastStoreBRVisitor::VisitNode(), clang::ento::UndefOrNullArgVisitor::VisitNode(), clang::ento::SuppressInlineDefensiveChecksVisitor::VisitNode(), clang::ento::ConditionBRVisitor::VisitNodeImpl(), clang::ento::ExprEngine::VisitObjCForCollectionStmt(), clang::ento::ExprEngine::VisitObjCMessage(), clang::ento::ExprEngine::VisitOffsetOfExpr(), and clang::ento::ConditionBRVisitor::VisitTrueTest().
|
inline |
Definition at line 185 of file ExplodedGraph.h.
References pred_size().
Referenced by clang::ento::CoreEngine::dispatchWorkItem().
|
inline |
Definition at line 183 of file ExplodedGraph.h.
Referenced by addPredecessor(), checkInvariantViolation(), clang::ento::CoreEngine::enqueueStmtNode(), ExplodedNode(), FindReportInEquivalenceClass(), clang::ento::NodeBuilderWithSinks::generateSink(), clang::ento::ExprEngine::processBranch(), Profile(), and clang::ento::ExplodedGraph::trim().
|
inline |
Definition at line 207 of file ExplodedGraph.h.
Referenced by alreadyExecutedAtLeastOneLoopIteration(), GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), GetAllocationSite(), getFirstPred(), getLastStmt(), pred_begin(), clang::ento::ExprEngine::VisitGuardedExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().
|
inline |
Definition at line 210 of file ExplodedGraph.h.
References pred_begin().
|
inline |
Definition at line 181 of file ExplodedGraph.h.
Referenced by GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), GetAllocationSite(), getFirstPred(), and getLastStmt().
|
inline |
Definition at line 208 of file ExplodedGraph.h.
Referenced by alreadyExecutedAtLeastOneLoopIteration(), and pred_end().
|
inline |
Definition at line 213 of file ExplodedGraph.h.
References pred_end().
|
inline |
Definition at line 179 of file ExplodedGraph.h.
Referenced by hasSinglePred(), and clang::ento::ExprEngine::VisitLogicalExpr().
|
inlinestatic |
Definition at line 160 of file ExplodedGraph.h.
Referenced by clang::ento::ExplodedGraph::getNode(), and Profile().
|
inline |
Definition at line 169 of file ExplodedGraph.h.
|
static |
Definition at line 40 of file ExplodedGraph.cpp.
References NodeAuditor.
|
inline |
Definition at line 217 of file ExplodedGraph.h.
Referenced by llvm::GraphTraits< clang::ento::ExplodedNode * >::child_begin(), llvm::GraphTraits< const clang::ento::ExplodedNode * >::child_begin(), getFirstSucc(), and succ_begin().
|
inline |
Definition at line 220 of file ExplodedGraph.h.
References succ_begin().
|
inline |
Definition at line 180 of file ExplodedGraph.h.
Referenced by FindReportInEquivalenceClass(), and getFirstSucc().
|
inline |
Definition at line 218 of file ExplodedGraph.h.
Referenced by llvm::GraphTraits< clang::ento::ExplodedNode * >::child_end(), llvm::GraphTraits< const clang::ento::ExplodedNode * >::child_end(), and succ_end().
|
inline |
Definition at line 223 of file ExplodedGraph.h.
References succ_end().
|
inline |
Definition at line 178 of file ExplodedGraph.h.
|
friend |
Definition at line 59 of file ExplodedGraph.h.
|
friend |
Definition at line 57 of file ExplodedGraph.h.
|
friend |
Definition at line 62 of file ExplodedGraph.h.
|
friend |
Definition at line 56 of file ExplodedGraph.h.
|
friend |
Definition at line 60 of file ExplodedGraph.h.
|
friend |
Definition at line 58 of file ExplodedGraph.h.
|
friend |
Definition at line 61 of file ExplodedGraph.h.