svf-lib 1.0.2373 → 1.0.2375

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.
@@ -164,15 +164,14 @@ public:
164
164
  */
165
165
  AbstractState& getAbsStateFromTrace(const ICFGNode* node)
166
166
  {
167
- const ICFGNode* repNode = icfg->getRepNode(node);
168
- if (abstractTrace.count(repNode) == 0)
167
+ if (abstractTrace.count(node) == 0)
169
168
  {
170
169
  assert(false && "No preAbsTrace for this node");
171
170
  abort();
172
171
  }
173
172
  else
174
173
  {
175
- return abstractTrace[repNode];
174
+ return abstractTrace[node];
176
175
  }
177
176
  }
178
177
 
@@ -303,8 +302,7 @@ private:
303
302
 
304
303
  bool hasAbsStateFromTrace(const ICFGNode* node)
305
304
  {
306
- const ICFGNode* repNode = icfg->getRepNode(node);
307
- return abstractTrace.count(repNode) != 0;
305
+ return abstractTrace.count(node) != 0;
308
306
  }
309
307
 
310
308
  AbsExtAPI* getUtils()
@@ -71,10 +71,6 @@ private:
71
71
  GlobalICFGNode* globalBlockNode; ///< unique basic block for all globals
72
72
  ICFGNodeToSVFLoopVec icfgNodeToSVFLoopVec; ///< map ICFG node to the SVF loops where it resides
73
73
 
74
- Map<const ICFGNode*, std::vector<const ICFGNode*>> _subNodes; ///<map a node(1st node of basicblock) to its subnodes
75
- Map<const ICFGNode*, const ICFGNode*> _repNode; ///<map a subnode to its representative node(1st node of basicblock)
76
-
77
-
78
74
  public:
79
75
  /// Constructor
80
76
  ICFG();
@@ -219,8 +215,6 @@ protected:
219
215
  virtual inline void addICFGNode(ICFGNode* node)
220
216
  {
221
217
  addGNode(node->getId(),node);
222
- _repNode[node] = node;
223
- _subNodes[node].push_back(node);
224
218
  }
225
219
 
226
220
  public:
@@ -237,42 +231,9 @@ public:
237
231
  {
238
232
  return globalBlockNode;
239
233
  }
240
-
241
- const std::vector<const ICFGNode*>& getSubNodes(const ICFGNode* node) const
242
- {
243
- return _subNodes.at(node);
244
- }
245
-
246
- const ICFGNode* getRepNode(const ICFGNode* node) const
247
- {
248
- return _repNode.at(node);
249
- }
250
-
251
-
252
- void updateSubAndRep(const ICFGNode* rep, const ICFGNode* sub)
253
- {
254
- addSubNode(rep, sub);
255
- updateRepNode(rep, sub);
256
- }
257
234
  //@}
258
235
 
259
236
  private:
260
- /// when ICFG is simplified, SubNode would merge repNode, then update the map
261
- void addSubNode(const ICFGNode* rep, const ICFGNode* sub)
262
- {
263
- std::vector<const ICFGNode*>& subNodes = _subNodes[sub];
264
- if(std::find(subNodes.begin(), subNodes.end(), rep) == subNodes.end())
265
- {
266
- subNodes.push_back(rep);
267
- }
268
- }
269
-
270
- /// when ICFG is simplified, some node would be removed, this map records the removed node to its rep node
271
- void updateRepNode(const ICFGNode* rep, const ICFGNode* sub)
272
- {
273
- _repNode[rep] = sub;
274
- }
275
-
276
237
  /// Add ICFG edge, only used by addIntraEdge, addCallEdge, addRetEdge etc.
277
238
  inline bool addICFGEdge(ICFGEdge* edge)
278
239
  {
@@ -164,15 +164,14 @@ public:
164
164
  */
165
165
  AbstractState& getAbsStateFromTrace(const ICFGNode* node)
166
166
  {
167
- const ICFGNode* repNode = icfg->getRepNode(node);
168
- if (abstractTrace.count(repNode) == 0)
167
+ if (abstractTrace.count(node) == 0)
169
168
  {
170
169
  assert(false && "No preAbsTrace for this node");
171
170
  abort();
172
171
  }
173
172
  else
174
173
  {
175
- return abstractTrace[repNode];
174
+ return abstractTrace[node];
176
175
  }
177
176
  }
178
177
 
@@ -303,8 +302,7 @@ private:
303
302
 
304
303
  bool hasAbsStateFromTrace(const ICFGNode* node)
305
304
  {
306
- const ICFGNode* repNode = icfg->getRepNode(node);
307
- return abstractTrace.count(repNode) != 0;
305
+ return abstractTrace.count(node) != 0;
308
306
  }
309
307
 
310
308
  AbsExtAPI* getUtils()
@@ -71,10 +71,6 @@ private:
71
71
  GlobalICFGNode* globalBlockNode; ///< unique basic block for all globals
72
72
  ICFGNodeToSVFLoopVec icfgNodeToSVFLoopVec; ///< map ICFG node to the SVF loops where it resides
73
73
 
74
- Map<const ICFGNode*, std::vector<const ICFGNode*>> _subNodes; ///<map a node(1st node of basicblock) to its subnodes
75
- Map<const ICFGNode*, const ICFGNode*> _repNode; ///<map a subnode to its representative node(1st node of basicblock)
76
-
77
-
78
74
  public:
79
75
  /// Constructor
80
76
  ICFG();
@@ -219,8 +215,6 @@ protected:
219
215
  virtual inline void addICFGNode(ICFGNode* node)
220
216
  {
221
217
  addGNode(node->getId(),node);
222
- _repNode[node] = node;
223
- _subNodes[node].push_back(node);
224
218
  }
225
219
 
226
220
  public:
@@ -237,42 +231,9 @@ public:
237
231
  {
238
232
  return globalBlockNode;
239
233
  }
240
-
241
- const std::vector<const ICFGNode*>& getSubNodes(const ICFGNode* node) const
242
- {
243
- return _subNodes.at(node);
244
- }
245
-
246
- const ICFGNode* getRepNode(const ICFGNode* node) const
247
- {
248
- return _repNode.at(node);
249
- }
250
-
251
-
252
- void updateSubAndRep(const ICFGNode* rep, const ICFGNode* sub)
253
- {
254
- addSubNode(rep, sub);
255
- updateRepNode(rep, sub);
256
- }
257
234
  //@}
258
235
 
259
236
  private:
260
- /// when ICFG is simplified, SubNode would merge repNode, then update the map
261
- void addSubNode(const ICFGNode* rep, const ICFGNode* sub)
262
- {
263
- std::vector<const ICFGNode*>& subNodes = _subNodes[sub];
264
- if(std::find(subNodes.begin(), subNodes.end(), rep) == subNodes.end())
265
- {
266
- subNodes.push_back(rep);
267
- }
268
- }
269
-
270
- /// when ICFG is simplified, some node would be removed, this map records the removed node to its rep node
271
- void updateRepNode(const ICFGNode* rep, const ICFGNode* sub)
272
- {
273
- _repNode[rep] = sub;
274
- }
275
-
276
237
  /// Add ICFG edge, only used by addIntraEdge, addCallEdge, addRetEdge etc.
277
238
  inline bool addICFGEdge(ICFGEdge* edge)
278
239
  {
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.2373",
3
+ "version": "1.0.2375",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {