clang  3.9.0
Public Member Functions | List of all members
clang::ento::BranchNodeBuilder Class Reference

BranchNodeBuilder is responsible for constructing the nodes corresponding to the two branches of the if statement - true and false. More...

#include <CoreEngine.h>

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

Public Member Functions

 BranchNodeBuilder (ExplodedNode *SrcNode, ExplodedNodeSet &DstSet, const NodeBuilderContext &C, const CFGBlock *dstT, const CFGBlock *dstF)
 
 BranchNodeBuilder (const ExplodedNodeSet &SrcSet, ExplodedNodeSet &DstSet, const NodeBuilderContext &C, const CFGBlock *dstT, const CFGBlock *dstF)
 
ExplodedNodegenerateNode (ProgramStateRef State, bool branch, ExplodedNode *Pred)
 
const CFGBlockgetTargetBlock (bool branch) const
 
void markInfeasible (bool branch)
 
bool isFeasible (bool branch)
 
- Public Member Functions inherited from clang::ento::NodeBuilder
 NodeBuilder (ExplodedNode *SrcNode, ExplodedNodeSet &DstSet, const NodeBuilderContext &Ctx, bool F=true)
 
 NodeBuilder (const ExplodedNodeSet &SrcSet, ExplodedNodeSet &DstSet, const NodeBuilderContext &Ctx, bool F=true)
 
virtual ~NodeBuilder ()
 
ExplodedNodegenerateNode (const ProgramPoint &PP, ProgramStateRef State, ExplodedNode *Pred)
 Generates a node in the ExplodedGraph. More...
 
ExplodedNodegenerateSink (const ProgramPoint &PP, ProgramStateRef State, ExplodedNode *Pred)
 Generates a sink in the ExplodedGraph. More...
 
const ExplodedNodeSetgetResults ()
 
iterator begin ()
 Iterators through the results frontier. More...
 
iterator end ()
 
const NodeBuilderContextgetContext ()
 
bool hasGeneratedNodes ()
 
void takeNodes (const ExplodedNodeSet &S)
 
void takeNodes (ExplodedNode *N)
 
void addNodes (const ExplodedNodeSet &S)
 
void addNodes (ExplodedNode *N)
 

Additional Inherited Members

- Public Types inherited from clang::ento::NodeBuilder
typedef ExplodedNodeSet::iterator iterator
 
- Protected Member Functions inherited from clang::ento::NodeBuilder
virtual bool checkResults ()
 Checkes if the results are ready. More...
 
bool hasNoSinksInFrontier ()
 
virtual void finalizeResults ()
 Allow subclasses to finalize results before result_begin() is executed. More...
 
ExplodedNodegenerateNodeImpl (const ProgramPoint &PP, ProgramStateRef State, ExplodedNode *Pred, bool MarkAsSink=false)
 
- Protected Attributes inherited from clang::ento::NodeBuilder
const NodeBuilderContextC
 
bool Finalized
 Specifies if the builder results have been finalized. More...
 
bool HasGeneratedNodes
 
ExplodedNodeSetFrontier
 The frontier set - a set of nodes which need to be propagated after the builder dies. More...
 

Detailed Description

BranchNodeBuilder is responsible for constructing the nodes corresponding to the two branches of the if statement - true and false.

Definition at line 401 of file CoreEngine.h.

Constructor & Destructor Documentation

clang::ento::BranchNodeBuilder::BranchNodeBuilder ( ExplodedNode SrcNode,
ExplodedNodeSet DstSet,
const NodeBuilderContext C,
const CFGBlock dstT,
const CFGBlock dstF 
)
inline

Definition at line 410 of file CoreEngine.h.

References clang::ento::NodeBuilder::takeNodes().

clang::ento::BranchNodeBuilder::BranchNodeBuilder ( const ExplodedNodeSet SrcSet,
ExplodedNodeSet DstSet,
const NodeBuilderContext C,
const CFGBlock dstT,
const CFGBlock dstF 
)
inline

Definition at line 420 of file CoreEngine.h.

References clang::ento::NodeBuilder::takeNodes().

Member Function Documentation

ExplodedNode * BranchNodeBuilder::generateNode ( ProgramStateRef  State,
bool  branch,
ExplodedNode Pred 
)
const CFGBlock* clang::ento::BranchNodeBuilder::getTargetBlock ( bool  branch) const
inline

Definition at line 431 of file CoreEngine.h.

bool clang::ento::BranchNodeBuilder::isFeasible ( bool  branch)
inline

Definition at line 442 of file CoreEngine.h.

Referenced by clang::ento::ExprEngine::processBranch().

void clang::ento::BranchNodeBuilder::markInfeasible ( bool  branch)
inline

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