clang API Documentation
#include <ExplodedGraph.h>
Definition at line 54 of file ExplodedGraph.h.
typedef const ExplodedNode* const* clang::ento::ExplodedNode::const_pred_iterator |
Definition at line 207 of file ExplodedGraph.h.
typedef const ExplodedNode* const* clang::ento::ExplodedNode::const_succ_iterator |
Definition at line 205 of file ExplodedGraph.h.
typedef ExplodedNode* const* clang::ento::ExplodedNode::pred_iterator |
Definition at line 206 of file ExplodedGraph.h.
typedef ExplodedNode* const* clang::ento::ExplodedNode::succ_iterator |
Definition at line 204 of file ExplodedGraph.h.
clang::ento::ExplodedNode::ExplodedNode | ( | const ProgramPoint & | loc, |
ProgramStateRef | state, | ||
bool | IsSink | ||
) | [inline, explicit] |
Definition at line 125 of file ExplodedGraph.h.
References isSink().
clang::ento::ExplodedNode::~ExplodedNode | ( | ) | [inline] |
Definition at line 131 of file ExplodedGraph.h.
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().
T& clang::ento::ExplodedNode::getAnalysis | ( | ) | const [inline] |
Definition at line 151 of file ExplodedGraph.h.
References clang::LocationContext::getAnalysis(), and getLocationContext().
CFG& clang::ento::ExplodedNode::getCFG | ( | ) | const [inline] |
Definition at line 146 of file ExplodedGraph.h.
References clang::LocationContext::getCFG(), and getLocationContext().
const Decl& clang::ento::ExplodedNode::getCodeDecl | ( | ) | const [inline] |
Definition at line 144 of file ExplodedGraph.h.
References clang::LocationContext::getDecl(), and getLocationContext().
ExplodedNode* clang::ento::ExplodedNode::getFirstPred | ( | ) | [inline] |
Definition at line 191 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().
const ExplodedNode* clang::ento::ExplodedNode::getFirstPred | ( | ) | const [inline] |
Definition at line 195 of file ExplodedGraph.h.
References getFirstPred().
const ExplodedNode* clang::ento::ExplodedNode::getFirstSucc | ( | ) | const [inline] |
Definition at line 199 of file ExplodedGraph.h.
References succ_begin(), and succ_empty().
Referenced by clang::ento::PathDiagnosticLocation::getNextStmt().
ProgramPoint clang::ento::ExplodedNode::getLocation | ( | ) | const [inline] |
getLocation - Returns the edge associated with the given node.
Definition at line 134 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::ConditionBRVisitor::VisitNodeImpl(), and wasSynthesizedProperty().
Optional<T> clang::ento::ExplodedNode::getLocationAs | ( | ) | const [inline] |
Definition at line 158 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().
const LocationContext* clang::ento::ExplodedNode::getLocationContext | ( | ) | const [inline] |
Definition at line 136 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(), getRegionForConstructedObject(), 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::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().
ParentMap& clang::ento::ExplodedNode::getParentMap | ( | ) | const [inline] |
Definition at line 148 of file ExplodedGraph.h.
References getLocationContext(), and clang::LocationContext::getParentMap().
const StackFrameContext* clang::ento::ExplodedNode::getStackFrame | ( | ) | const [inline] |
Definition at line 140 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().
const ProgramStateRef& clang::ento::ExplodedNode::getState | ( | ) | const [inline] |
Definition at line 155 of file ExplodedGraph.h.
Referenced by 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(), getRegionForConstructedObject(), 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::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().
bool clang::ento::ExplodedNode::hasSinglePred | ( | ) | const [inline] |
Definition at line 187 of file ExplodedGraph.h.
References pred_size().
Referenced by clang::ento::CoreEngine::dispatchWorkItem().
bool clang::ento::ExplodedNode::isSink | ( | ) | const [inline] |
Definition at line 185 of file ExplodedGraph.h.
Referenced by addPredecessor(), clang::ento::CoreEngine::enqueueStmtNode(), ExplodedNode(), FindReportInEquivalenceClass(), clang::ento::NodeBuilderWithSinks::generateSink(), clang::ento::ExprEngine::processBranch(), Profile(), and clang::ento::ExplodedGraph::trim().
pred_iterator clang::ento::ExplodedNode::pred_begin | ( | ) | [inline] |
Definition at line 209 of file ExplodedGraph.h.
Referenced by alreadyExecutedAtLeastOneLoopIteration(), GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), GetAllocationSite(), getFirstPred(), getLastStmt(), pred_begin(), clang::ento::ExprEngine::VisitGuardedExpr(), and clang::ento::ExprEngine::VisitLogicalExpr().
const_pred_iterator clang::ento::ExplodedNode::pred_begin | ( | ) | const [inline] |
Definition at line 212 of file ExplodedGraph.h.
References pred_begin().
bool clang::ento::ExplodedNode::pred_empty | ( | ) | const [inline] |
Definition at line 183 of file ExplodedGraph.h.
Referenced by GenerateExtensivePathDiagnostic(), GenerateMinimalPathDiagnostic(), GetAllocationSite(), getFirstPred(), and getLastStmt().
pred_iterator clang::ento::ExplodedNode::pred_end | ( | ) | [inline] |
Definition at line 210 of file ExplodedGraph.h.
Referenced by alreadyExecutedAtLeastOneLoopIteration(), and pred_end().
const_pred_iterator clang::ento::ExplodedNode::pred_end | ( | ) | const [inline] |
Definition at line 215 of file ExplodedGraph.h.
References pred_end().
unsigned clang::ento::ExplodedNode::pred_size | ( | ) | const [inline] |
Definition at line 181 of file ExplodedGraph.h.
Referenced by hasSinglePred(), and clang::ento::ExprEngine::VisitLogicalExpr().
static void clang::ento::ExplodedNode::Profile | ( | llvm::FoldingSetNodeID & | ID, |
const ProgramPoint & | Loc, | ||
const ProgramStateRef & | state, | ||
bool | IsSink | ||
) | [inline, static] |
Definition at line 162 of file ExplodedGraph.h.
Referenced by clang::ento::ExplodedGraph::getNode(), and Profile().
void clang::ento::ExplodedNode::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | const [inline] |
Definition at line 171 of file ExplodedGraph.h.
void ExplodedNode::SetAuditor | ( | ExplodedNode::Auditor * | A | ) | [static] |
Definition at line 40 of file ExplodedGraph.cpp.
References NodeAuditor.
succ_iterator clang::ento::ExplodedNode::succ_begin | ( | ) | [inline] |
Definition at line 219 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().
const_succ_iterator clang::ento::ExplodedNode::succ_begin | ( | ) | const [inline] |
Definition at line 222 of file ExplodedGraph.h.
References succ_begin().
bool clang::ento::ExplodedNode::succ_empty | ( | ) | const [inline] |
Definition at line 182 of file ExplodedGraph.h.
Referenced by FindReportInEquivalenceClass(), and getFirstSucc().
succ_iterator clang::ento::ExplodedNode::succ_end | ( | ) | [inline] |
Definition at line 220 of file ExplodedGraph.h.
Referenced by llvm::GraphTraits< clang::ento::ExplodedNode * >::child_end(), llvm::GraphTraits< const clang::ento::ExplodedNode * >::child_end(), and succ_end().
const_succ_iterator clang::ento::ExplodedNode::succ_end | ( | ) | const [inline] |
Definition at line 225 of file ExplodedGraph.h.
References succ_end().
unsigned clang::ento::ExplodedNode::succ_size | ( | ) | const [inline] |
Definition at line 180 of file ExplodedGraph.h.
friend class BranchNodeBuilder [friend] |
Definition at line 58 of file ExplodedGraph.h.
friend class CoreEngine [friend] |
Definition at line 56 of file ExplodedGraph.h.
friend class EndOfFunctionNodeBuilder [friend] |
Definition at line 61 of file ExplodedGraph.h.
friend class ExplodedGraph [friend] |
Definition at line 55 of file ExplodedGraph.h.
friend class IndirectGotoNodeBuilder [friend] |
Definition at line 59 of file ExplodedGraph.h.
friend class NodeBuilder [friend] |
Definition at line 57 of file ExplodedGraph.h.
friend class SwitchNodeBuilder [friend] |
Definition at line 60 of file ExplodedGraph.h.