clang 19.0.0git
Public Member Functions | Protected Attributes | List of all members
clang::ento::NodeBuilderWithSinks Class Reference

This node builder keeps track of the generated sink nodes. More...

#include "clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h"

Inheritance diagram for clang::ento::NodeBuilderWithSinks:
Inheritance graph
[legend]

Public Member Functions

 NodeBuilderWithSinks (ExplodedNode *Pred, ExplodedNodeSet &DstSet, const NodeBuilderContext &Ctx, ProgramPoint &L)
 
ExplodedNodegenerateNode (ProgramStateRef State, ExplodedNode *Pred, const ProgramPointTag *Tag=nullptr)
 
ExplodedNodegenerateSink (ProgramStateRef State, ExplodedNode *Pred, const ProgramPointTag *Tag=nullptr)
 
const SmallVectorImpl< ExplodedNode * > & getSinks () const
 
- 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)
 

Protected Attributes

SmallVector< ExplodedNode *, 2 > sinksGenerated
 
ProgramPointLocation
 
- 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.
 

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)
 

Detailed Description

This node builder keeps track of the generated sink nodes.

Definition at line 345 of file CoreEngine.h.

Constructor & Destructor Documentation

◆ NodeBuilderWithSinks()

clang::ento::NodeBuilderWithSinks::NodeBuilderWithSinks ( ExplodedNode Pred,
ExplodedNodeSet DstSet,
const NodeBuilderContext Ctx,
ProgramPoint L 
)
inline

Definition at line 353 of file CoreEngine.h.

Member Function Documentation

◆ generateNode()

ExplodedNode * clang::ento::NodeBuilderWithSinks::generateNode ( ProgramStateRef  State,
ExplodedNode Pred,
const ProgramPointTag Tag = nullptr 
)
inline

◆ generateSink()

ExplodedNode * clang::ento::NodeBuilderWithSinks::generateSink ( ProgramStateRef  State,
ExplodedNode Pred,
const ProgramPointTag Tag = nullptr 
)
inline

◆ getSinks()

const SmallVectorImpl< ExplodedNode * > & clang::ento::NodeBuilderWithSinks::getSinks ( ) const
inline

Definition at line 373 of file CoreEngine.h.

References sinksGenerated.

Member Data Documentation

◆ Location

ProgramPoint& clang::ento::NodeBuilderWithSinks::Location
protected

Definition at line 350 of file CoreEngine.h.

Referenced by generateNode(), and generateSink().

◆ sinksGenerated

SmallVector<ExplodedNode*, 2> clang::ento::NodeBuilderWithSinks::sinksGenerated
protected

Definition at line 349 of file CoreEngine.h.

Referenced by generateSink(), and getSinks().


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