clang 20.0.0git
Public Types | Public Member Functions | Friends | List of all members
clang::ento::CoreEngine Class Reference

CoreEngine - Implements the core logic of the graph-reachability analysis. More...

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

Public Types

using BlocksExhausted = std::vector< std::pair< BlockEdge, const ExplodedNode * > >
 
using BlocksAborted = std::vector< std::pair< const CFGBlock *, const ExplodedNode * > >
 

Public Member Functions

 CoreEngine (ExprEngine &exprengine, FunctionSummariesTy *FS, AnalyzerOptions &Opts)
 Construct a CoreEngine object to analyze the provided CFG.
 
 CoreEngine (const CoreEngine &)=delete
 
CoreEngineoperator= (const CoreEngine &)=delete
 
ExplodedGraphgetGraph ()
 getGraph - Returns the exploded graph.
 
bool ExecuteWorkList (const LocationContext *L, unsigned Steps, ProgramStateRef InitState)
 ExecuteWorkList - Run the worklist algorithm for a maximum number of steps.
 
void dispatchWorkItem (ExplodedNode *Pred, ProgramPoint Loc, const WorkListUnit &WU)
 Dispatch the work list item based on the given location information.
 
bool wasBlockAborted () const
 
bool wasBlocksExhausted () const
 
bool hasWorkRemaining () const
 
void addAbortedBlock (const ExplodedNode *node, const CFGBlock *block)
 Inform the CoreEngine that a basic block was aborted because it could not be completely analyzed.