Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions svf/include/AE/Svfexe/AbstractInterpretation.h
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,37 @@ class AbstractInterpretation

void handleWTOComponent(const ICFGWTOComp* wtoComp);

/**
* Handle a function using worklist algorithm
*
* @param funEntry The entry node of the function to handle
*/
void handleFunction(const ICFGNode* funEntry);

/**
* Handle an ICFG node by merging states and processing statements
*
* @param node The ICFG node to handle
* @return true if state changed, false if fixpoint reached or infeasible
*/
bool handleICFGNode(const ICFGNode* node);

/**
* Get the next nodes of a node within the same function
*
* @param node The node to get successors for
* @return Vector of successor nodes
*/
std::vector<const ICFGNode*> getNextNodes(const ICFGNode* node) const;

/**
* Get the next nodes outside a cycle
*
* @param cycle The cycle to get exit successors for
* @return Vector of successor nodes outside the cycle
*/
std::vector<const ICFGNode*> getNextNodesOfCycle(const ICFGCycleWTO* cycle) const;


/**
* handle SVF Statement like CmpStmt, CallStmt, GepStmt, LoadStmt, StoreStmt, etc.
Expand Down Expand Up @@ -299,6 +330,7 @@ class AbstractInterpretation
Map<const FunObjVar*, const ICFGWTO*> funcToWTO;
Set<std::pair<const CallICFGNode*, NodeID>> nonRecursiveCallSites;
Set<const FunObjVar*> recursiveFuns;
Map<const ICFGNode*, const ICFGCycleWTO*> cycleHeadToCycle;


bool hasAbsStateFromTrace(const ICFGNode* node)
Expand Down
Loading
Loading