clang  6.0.0svn
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 "clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h"

Inheritance diagram for clang::ento::BranchNodeBuilder:
Inheritance graph
[legend]
Collaboration diagram for clang::ento::BranchNodeBuilder:
Collaboration graph
[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 402 of file CoreEngine.h.

Constructor & Destructor Documentation

◆ BranchNodeBuilder() [1/2]

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

Definition at line 411 of file CoreEngine.h.

◆ BranchNodeBuilder() [2/2]

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

Definition at line 421 of file CoreEngine.h.

References State.

Member Function Documentation

◆ generateNode()

ExplodedNode * BranchNodeBuilder::generateNode ( ProgramStateRef  State,
bool  branch,
ExplodedNode Pred 
)

◆ getTargetBlock()

const CFGBlock* clang::ento::BranchNodeBuilder::getTargetBlock ( bool  branch) const
inline

Definition at line 432 of file CoreEngine.h.

◆ isFeasible()

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

Definition at line 443 of file CoreEngine.h.

◆ markInfeasible()

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

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