svf-lib 1.0.770 → 1.0.774

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.
@@ -46,6 +46,8 @@ typedef GenericGraph<ICFGNode,ICFGEdge> GenericICFGTy;
46
46
  class ICFG : public GenericICFGTy
47
47
  {
48
48
 
49
+ friend class ICFGBuilder;
50
+
49
51
  public:
50
52
 
51
53
  typedef Map<NodeID, ICFGNode *> ICFGNodeIDToNodeMapTy;
@@ -109,7 +111,7 @@ public:
109
111
  /// update ICFG for indirect calls
110
112
  void updateCallGraph(PTACallGraph* callgraph);
111
113
 
112
- public:
114
+ protected:
113
115
  /// Remove a SVFG edge
114
116
  inline void removeICFGEdge(ICFGEdge* edge)
115
117
  {
@@ -157,6 +159,7 @@ public:
157
159
  addGNode(node->getId(),node);
158
160
  }
159
161
 
162
+ public:
160
163
  /// Get a basic block ICFGNode
161
164
  /// TODO:: need to fix the assertions
162
165
  //@{
@@ -172,11 +175,10 @@ public:
172
175
 
173
176
  FunExitBlockNode* getFunExitBlockNode(const SVFFunction* fun);
174
177
 
175
- GlobalBlockNode* getGlobalBlockNode() const
178
+ inline GlobalBlockNode* getGlobalBlockNode() const
176
179
  {
177
180
  return globalBlockNode;
178
181
  }
179
-
180
182
  //@}
181
183
 
182
184
  private:
@@ -365,11 +365,11 @@ class CallBlockNode : public InterBlockNode
365
365
  {
366
366
 
367
367
  public:
368
- typedef std::vector<const SVFVar *> ActualParmVFGNodeVec;
368
+ typedef std::vector<const SVFVar *> ActualParmNodeVec;
369
369
  private:
370
370
  const Instruction* cs;
371
371
  const RetBlockNode* ret;
372
- ActualParmVFGNodeVec APNodes;
372
+ ActualParmNodeVec APNodes;
373
373
  public:
374
374
  CallBlockNode(NodeID id, const Instruction* c) : InterBlockNode(id, FunCallBlock), cs(c), ret(nullptr)
375
375
  {
@@ -415,7 +415,7 @@ public:
415
415
  }
416
416
 
417
417
  /// Return the set of actual parameters
418
- inline const ActualParmVFGNodeVec &getActualParms() const
418
+ inline const ActualParmNodeVec &getActualParms() const
419
419
  {
420
420
  return APNodes;
421
421
  }
@@ -293,9 +293,6 @@ protected:
293
293
  virtual void validateExpectedFailureTests(std::string fun);
294
294
  //@}
295
295
 
296
- /// Whether to dump the graph for debugging purpose
297
- bool dumpGraph();
298
-
299
296
  /// Reset all object node as field-sensitive.
300
297
  void resetObjFieldSensitive();
301
298
 
@@ -753,6 +753,11 @@ public:
753
753
  void addOpVar(SVFVar* op){
754
754
  opVars.push_back(op);
755
755
  }
756
+
757
+ /// Return true if this is a phi at the function exit
758
+ /// to receive one or multiple return values of this function
759
+ bool isFunctionRetPhi() const;
760
+
756
761
  virtual const std::string toString() const override;
757
762
  };
758
763
 
Binary file
@@ -365,11 +365,11 @@ class CallBlockNode : public InterBlockNode
365
365
  {
366
366
 
367
367
  public:
368
- typedef std::vector<const SVFVar *> ActualParmVFGNodeVec;
368
+ typedef std::vector<const SVFVar *> ActualParmNodeVec;
369
369
  private:
370
370
  const Instruction* cs;
371
371
  const RetBlockNode* ret;
372
- ActualParmVFGNodeVec APNodes;
372
+ ActualParmNodeVec APNodes;
373
373
  public:
374
374
  CallBlockNode(NodeID id, const Instruction* c) : InterBlockNode(id, FunCallBlock), cs(c), ret(nullptr)
375
375
  {
@@ -415,7 +415,7 @@ public:
415
415
  }
416
416
 
417
417
  /// Return the set of actual parameters
418
- inline const ActualParmVFGNodeVec &getActualParms() const
418
+ inline const ActualParmNodeVec &getActualParms() const
419
419
  {
420
420
  return APNodes;
421
421
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.770",
3
+ "version": "1.0.774",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {