clang 22.0.0git
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:
[legend]

Public Member Functions

 BranchNodeBuilder (ExplodedNode *SrcNode, ExplodedNodeSet &DstSet, const NodeBuilderContext &C, const CFGBlock *DT, const CFGBlock *DF)
 BranchNodeBuilder (const ExplodedNodeSet &SrcSet, ExplodedNodeSet &DstSet, const NodeBuilderContext &C, const CFGBlock *DT, const CFGBlock *DF)
ExplodedNodegenerateNode (ProgramStateRef State, bool branch, ExplodedNode *Pred)
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 ()=default
ExplodedNodegenerateNode (const ProgramPoint &PP, ProgramStateRef State, ExplodedNode *Pred)
 Generates a node in the ExplodedGraph.
ExplodedNodegenerateSink (const ProgramPoint &PP, ProgramStateRef State, ExplodedNode *Pred)
 Generates a sink in the ExplodedGraph.
const ExplodedNodeSetgetResults ()
iterator begin ()
 Iterators through the results frontier.
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
using iterator = ExplodedNodeSet::iterator
Protected Member Functions inherited from clang::ento::NodeBuilder
virtual bool checkResults ()
 Checks if the results are ready.
bool hasNoSinksInFrontier ()
virtual void finalizeResults ()
 Allow subclasses to finalize results before result_begin() is executed.
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.
bool HasGeneratedNodes = false
ExplodedNodeSetFrontier
 The frontier set - a set of nodes which need to be propagated after the builder dies.

Detailed Description

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

Definition at line 436 of file CoreEngine.h.

Constructor & Destructor Documentation

◆ BranchNodeBuilder() [1/2]

clang::ento::BranchNodeBuilder::BranchNodeBuilder ( ExplodedNode * SrcNode,
ExplodedNodeSet & DstSet,
const NodeBuilderContext & C,
const CFGBlock * DT,
const CFGBlock * DF )
inline

◆ BranchNodeBuilder() [2/2]

clang::ento::BranchNodeBuilder::BranchNodeBuilder ( const ExplodedNodeSet & SrcSet,
ExplodedNodeSet & DstSet,
const NodeBuilderContext & C,
const CFGBlock * DT,
const CFGBlock * DF )
inline

Member Function Documentation

◆ generateNode()


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