svf-lib 1.0.2501 → 1.0.2502

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Binary file
@@ -138,15 +138,13 @@ private:
138
138
  /// Initialize abstract state for the global ICFG node and process global statements
139
139
  virtual void handleGlobalNode();
140
140
 
141
- /// Merge abstract states from predecessor nodes; return true if icfgNode has feasible incoming state
142
- bool mergeStatesFromPredecessors(const ICFGNode * icfgNode);
141
+ /// Propagate the post-state of a node to all its intra-procedural successors
142
+ void propagateToSuccessor(const ICFGNode* node,
143
+ const Set<const ICFGNode*>* withinSet = nullptr);
143
144
 
144
145
  /// Check if the branch on intraEdge is feasible under abstract state as
145
146
  bool isBranchFeasible(const IntraCFGEdge* intraEdge, AbstractState& as);
146
147
 
147
- /// Process all SVF statements in a singleton WTO component (single basic block)
148
- virtual void handleSingletonWTO(const ICFGSingletonWTO *icfgSingletonWto);
149
-
150
148
  /// Handle a call site node: dispatch to ext-call, direct-call, or indirect-call handling
151
149
  virtual void handleCallSite(const ICFGNode* node);
152
150
 
@@ -156,15 +154,9 @@ private:
156
154
  /// Handle a function body via worklist-driven WTO traversal starting from funEntry
157
155
  void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller = nullptr);
158
156
 
159
- /// Merge predecessor states, process statements and callsites; return true if state changed
157
+ /// Handle an ICFG node: execute statements; return true if state changed
160
158
  bool handleICFGNode(const ICFGNode* node);
161
159
 
162
- /// Get intra-procedural successor nodes (including call-to-ret shortcut) within the same function
163
- std::vector<const ICFGNode*> getNextNodes(const ICFGNode* node) const;
164
-
165
- /// Get successor nodes that exit the given WTO cycle (skipping inner sub-cycles)
166
- std::vector<const ICFGNode*> getNextNodesOfCycle(const ICFGCycleWTO* cycle) const;
167
-
168
160
  /// Dispatch an SVF statement (Addr/Binary/Cmp/Load/Store/Copy/Gep/Select/Phi/Call/Ret) to its handler
169
161
  virtual void handleSVFStatement(const SVFStmt* stmt);
170
162
 
@@ -232,7 +224,7 @@ private:
232
224
  // there data should be shared with subclasses
233
225
  Map<std::string, std::function<void(const CallICFGNode*)>> func_map;
234
226
 
235
- Map<const ICFGNode*, AbstractState> abstractTrace; // abstract states immediately after nodes
227
+ Map<const ICFGNode*, AbstractState> abstractTrace; // abstract states for nodes (pre-state before execution, post-state after)
236
228
  Set<const ICFGNode*> allAnalyzedNodes; // All nodes ever analyzed (across all entry points)
237
229
  std::string moduleName;
238
230
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.2501",
3
+ "version": "1.0.2502",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {