clang API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends
clang::ento::ExplodedNode Class Reference

#include <ExplodedGraph.h>

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

List of all members.

Classes

class  Auditor
class  NodeGroup

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)
 ~ExplodedNode ()
ProgramPoint getLocation () const
 getLocation - Returns the edge associated with the given node.
const LocationContextgetLocationContext () const
const StackFrameContextgetStackFrame () const
const DeclgetCodeDecl () const
CFGgetCFG () const
ParentMapgetParentMap () const
template<typename T >
T & getAnalysis () const
const ProgramStateRefgetState () const
template<typename T >
Optional< T > getLocationAs () const LLVM_LVALUE_FUNCTION
void Profile (llvm::FoldingSetNodeID &ID) const
void addPredecessor (ExplodedNode *V, ExplodedGraph &G)
unsigned succ_size () const
unsigned pred_size () const
bool succ_empty () const
bool pred_empty () const
bool isSink () const
bool hasSinglePred () const
ExplodedNodegetFirstPred ()
const ExplodedNodegetFirstPred () const
const ExplodedNodegetFirstSucc () 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

Detailed Description

Definition at line 54 of file ExplodedGraph.h.


Member Typedef Documentation

Definition at line 207 of file ExplodedGraph.h.

Definition at line 205 of file ExplodedGraph.h.

Definition at line 206 of file ExplodedGraph.h.

Definition at line 204 of file ExplodedGraph.h.


Constructor & Destructor Documentation

clang::ento::ExplodedNode::ExplodedNode ( const ProgramPoint loc,
ProgramStateRef  state,
bool  IsSink 
) [inline, explicit]

Definition at line 125 of file ExplodedGraph.h.

References isSink().

Definition at line 131 of file ExplodedGraph.h.


Member Function Documentation

template<typename T >
T& clang::ento::ExplodedNode::getAnalysis ( ) const [inline]

Definition at line 151 of file ExplodedGraph.h.

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

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().

Definition at line 195 of file ExplodedGraph.h.

References getFirstPred().

Definition at line 199 of file ExplodedGraph.h.

References succ_begin(), and succ_empty().

Referenced by clang::ento::PathDiagnosticLocation::getNextStmt().

template<typename T >
Optional<T> clang::ento::ExplodedNode::getLocationAs ( ) 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().

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::ProcessDeleteDtor(), clang::ento::ExprEngine::processEndOfFunction(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::ProcessMemberDtor(), clang::ento::ExprEngine::ProcessNewAllocator(), 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().

Definition at line 187 of file ExplodedGraph.h.

References pred_size().

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

Definition at line 212 of file ExplodedGraph.h.

References pred_begin().

Definition at line 210 of file ExplodedGraph.h.

Referenced by alreadyExecutedAtLeastOneLoopIteration(), and pred_end().

Definition at line 215 of file ExplodedGraph.h.

References pred_end().

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.

References isSink(), and Profile().

Definition at line 40 of file ExplodedGraph.cpp.

References NodeAuditor.

Definition at line 222 of file ExplodedGraph.h.

References succ_begin().

Definition at line 182 of file ExplodedGraph.h.

Referenced by FindReportInEquivalenceClass(), and getFirstSucc().

Definition at line 225 of file ExplodedGraph.h.

References succ_end().

Definition at line 180 of file ExplodedGraph.h.


Friends And Related Function Documentation

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.


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