svf-lib 1.0.2526 → 1.0.2528

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
@@ -156,9 +156,10 @@ private:
156
156
  /// Initialize abstract state for the global ICFG node and process global statements
157
157
  virtual void handleGlobalNode();
158
158
 
159
- /// Propagate the post-state of a node to all its intra-procedural successors
160
- void propagateToSuccessor(const ICFGNode* node,
161
- const Set<const ICFGNode*>* withinSet = nullptr);
159
+ /// Pull-based state merge: read abstractTrace[pred] for each predecessor,
160
+ /// apply branch refinement for conditional IntraCFGEdges, and join into
161
+ /// abstractTrace[node]. Returns true if at least one predecessor had state.
162
+ bool mergeStatesFromPredecessors(const ICFGNode* node);
162
163
 
163
164
  /// Check if the branch on intraEdge is feasible under abstract state as
164
165
  bool isBranchFeasible(const IntraCFGEdge* intraEdge, AbstractState& as);
@@ -242,7 +243,7 @@ private:
242
243
  // there data should be shared with subclasses
243
244
  Map<std::string, std::function<void(const CallICFGNode*)>> func_map;
244
245
 
245
- Map<const ICFGNode*, AbstractState> abstractTrace; // abstract states for nodes (pre-state before execution, post-state after)
246
+ Map<const ICFGNode*, AbstractState> abstractTrace; // abstract states for nodes
246
247
  Set<const ICFGNode*> allAnalyzedNodes; // All nodes ever analyzed (across all entry points)
247
248
  std::string moduleName;
248
249
 
@@ -260,12 +260,7 @@ class ValVar: public SVFVar
260
260
 
261
261
  private:
262
262
  const ICFGNode* icfgNode; // icfgnode related to valvar
263
- protected:
264
263
 
265
- inline void setICFGNode(const ICFGNode* icfgNode)
266
- {
267
- this->icfgNode = icfgNode;
268
- }
269
264
  public:
270
265
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
271
266
  //@{
@@ -617,11 +612,6 @@ public:
617
612
  return icfgNode;
618
613
  }
619
614
 
620
- inline void setICFGNode(const ICFGNode* node)
621
- {
622
- icfgNode = node;
623
- }
624
-
625
615
  /// Return name of a LLVM value
626
616
  inline const std::string getValueName() const
627
617
  {
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.2526",
3
+ "version": "1.0.2528",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {