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 ** succ_iterator
typedef const ExplodedNode *const * const_succ_iterator
typedef ExplodedNode ** 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 DeclgetCodeDecl () const
CFGgetCFG () const
ParentMapgetParentMap () const
template<typename T >
T & getAnalysis () const
ProgramStateRef getState () const
template<typename T >
const T * getLocationAs () const
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
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, 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 192 of file ExplodedGraph.h.

Definition at line 190 of file ExplodedGraph.h.

Definition at line 191 of file ExplodedGraph.h.

Definition at line 189 of file ExplodedGraph.h.


Constructor & Destructor Documentation

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

Definition at line 120 of file ExplodedGraph.h.

clang::ento::ExplodedNode::~ExplodedNode ( ) [inline]

Definition at line 127 of file ExplodedGraph.h.


Member Function Documentation

void ExplodedNode::addPredecessor ( ExplodedNode V,
ExplodedGraph G 
)
template<typename T >
T& clang::ento::ExplodedNode::getAnalysis ( ) const [inline]

Definition at line 143 of file ExplodedGraph.h.

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

CFG& clang::ento::ExplodedNode::getCFG ( ) const [inline]

Definition at line 138 of file ExplodedGraph.h.

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

const Decl& clang::ento::ExplodedNode::getCodeDecl ( ) const [inline]

Definition at line 136 of file ExplodedGraph.h.

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

ExplodedNode* clang::ento::ExplodedNode::getFirstPred ( ) [inline]
const ExplodedNode* clang::ento::ExplodedNode::getFirstPred ( ) const [inline]

Definition at line 184 of file ExplodedGraph.h.

References getFirstPred().

ProgramPoint clang::ento::ExplodedNode::getLocation ( ) const [inline]
template<typename T >
const T* clang::ento::ExplodedNode::getLocationAs ( ) const [inline]

Definition at line 150 of file ExplodedGraph.h.

Referenced by clang::ento::ConditionBRVisitor::VisitNode().

const LocationContext* clang::ento::ExplodedNode::getLocationContext ( ) const [inline]

Definition at line 132 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::evalEagerlyAssume(), clang::ento::ExprEngine::evalObjCMessage(), clang::ento::StmtNodeBuilder::generateNode(), getAnalysis(), clang::ento::CheckerContext::getCalleeDecl(), getCFG(), getCodeDecl(), clang::ento::CheckerContext::getCurrentAnalysisDeclContext(), clang::ento::NodeBuilderContext::getCurrentBlockCount(), clang::ento::CheckerContext::getLocationContext(), clang::ento::IndirectGotoNodeBuilder::getLocationContext(), clang::ento::SwitchNodeBuilder::getLocationContext(), clang::ento::StackHintGeneratorForSymbol::getMessage(), getParentMap(), clang::ento::ConditionBRVisitor::patternMatch(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::SubEngine::processBranch(), clang::ento::SubEngine::processCallEnter(), clang::ento::SubEngine::processCallExit(), clang::ento::ExprEngine::ProcessInitializer(), clang::ento::ExprEngine::ProcessStmt(), clang::ento::FindLastStoreBRVisitor::registerStatementVarDecls(), clang::ento::CheckerManager::runCheckersForEndPath(), clang::ento::CheckerManager::runCheckersForEvalCall(), clang::ento::ExprEngine::VisitAsmStmt(), 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::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::ExprEngine::VisitObjCForCollectionStmt(), clang::ento::ExprEngine::VisitObjCMessage(), clang::ento::ExprEngine::VisitOffsetOfExpr(), and clang::ento::ConditionBRVisitor::VisitTrueTest().

ParentMap& clang::ento::ExplodedNode::getParentMap ( ) const [inline]
ProgramStateRef clang::ento::ExplodedNode::getState ( ) const [inline]

Definition at line 147 of file ExplodedGraph.h.

Referenced by clang::ento::CheckerContext::CheckerContext(), clang::ento::ExprEngine::CreateCXXTemporaryObject(), clang::ento::FindLastStoreBRVisitor::createVisitorObject(), clang::ento::CoreEngine::enqueueStmtNode(), clang::ento::ExprEngine::evalBind(), clang::ento::ExprEngine::evalEagerlyAssume(), clang::ento::StackHintGeneratorForSymbol::getMessage(), clang::ento::CheckerContext::getState(), MakeReportGraph(), clang::ento::ConditionBRVisitor::patternMatch(), clang::ento::ExprEngine::ProcessAutomaticObjDtor(), clang::ento::SubEngine::processBranch(), clang::ento::SubEngine::processCallEnter(), clang::ento::SubEngine::processCallExit(), clang::ento::SubEngine::processCFGBlockEntrance(), clang::ento::SubEngine::processEndOfFunction(), clang::ento::ExprEngine::ProcessInitializer(), Profile(), clang::ento::FindLastStoreBRVisitor::registerStatementVarDecls(), clang::ento::ExprEngine::removeDead(), clang::ento::ExprEngine::VisitAsmStmt(), 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::VisitCXXNewExpr(), clang::ento::ExprEngine::VisitCXXThisExpr(), clang::ento::ExprEngine::VisitDeclStmt(), clang::ento::ExprEngine::VisitGuardedExpr(), clang::ento::ExprEngine::VisitIncrementDecrementOperator(), clang::ento::ExprEngine::VisitInitListExpr(), clang::ento::ExprEngine::VisitLogicalExpr(), clang::ento::ExprEngine::VisitLvalObjCIvarRefExpr(), clang::ento::ExprEngine::VisitMemberExpr(), clang::ento::ConditionBRVisitor::VisitNode(), clang::ento::ConditionBRVisitor::VisitNodeImpl(), clang::ento::ExprEngine::VisitObjCForCollectionStmt(), clang::ento::ExprEngine::VisitObjCMessage(), and clang::ento::ExprEngine::VisitOffsetOfExpr().

bool clang::ento::ExplodedNode::hasSinglePred ( ) const [inline]

Definition at line 176 of file ExplodedGraph.h.

References pred_size().

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

bool clang::ento::ExplodedNode::isSink ( ) const [inline]
pred_iterator clang::ento::ExplodedNode::pred_begin ( ) [inline]

Definition at line 194 of file ExplodedGraph.h.

Referenced by getFirstPred(), and pred_begin().

const_pred_iterator clang::ento::ExplodedNode::pred_begin ( ) const [inline]

Definition at line 197 of file ExplodedGraph.h.

References pred_begin().

bool clang::ento::ExplodedNode::pred_empty ( ) const [inline]

Definition at line 172 of file ExplodedGraph.h.

Referenced by getFirstPred(), and GetPredecessorNode().

pred_iterator clang::ento::ExplodedNode::pred_end ( ) [inline]

Definition at line 195 of file ExplodedGraph.h.

Referenced by pred_end().

const_pred_iterator clang::ento::ExplodedNode::pred_end ( ) const [inline]

Definition at line 200 of file ExplodedGraph.h.

References pred_end().

unsigned clang::ento::ExplodedNode::pred_size ( ) const [inline]

Definition at line 170 of file ExplodedGraph.h.

Referenced by hasSinglePred().

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

Definition at line 152 of file ExplodedGraph.h.

Referenced by Profile().

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

Definition at line 161 of file ExplodedGraph.h.

References getLocation(), getState(), isSink(), and Profile().

void ExplodedNode::SetAuditor ( ExplodedNode::Auditor A) [static]

Definition at line 38 of file ExplodedGraph.cpp.

References NodeAuditor.

succ_iterator clang::ento::ExplodedNode::succ_begin ( ) [inline]
const_succ_iterator clang::ento::ExplodedNode::succ_begin ( ) const [inline]

Definition at line 207 of file ExplodedGraph.h.

References succ_begin().

bool clang::ento::ExplodedNode::succ_empty ( ) const [inline]
succ_iterator clang::ento::ExplodedNode::succ_end ( ) [inline]
const_succ_iterator clang::ento::ExplodedNode::succ_end ( ) const [inline]

Definition at line 210 of file ExplodedGraph.h.

References succ_end().

unsigned clang::ento::ExplodedNode::succ_size ( ) const [inline]

Definition at line 169 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: