svf-lib 1.0.841 → 1.0.845

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.
@@ -34,6 +34,8 @@ namespace SVF
34
34
  {
35
35
 
36
36
  class ICFGNode;
37
+ class CallPE;
38
+ class RetPE;
37
39
 
38
40
  /*!
39
41
  * Interprocedural control-flow and value-flow edge, representing the control- and value-flow dependence between two nodes
@@ -157,8 +159,6 @@ private:
157
159
  s64_t branchCondVal;
158
160
  };
159
161
 
160
-
161
-
162
162
  /*!
163
163
  * Call ICFG edge representing parameter passing/return from a caller to a callee
164
164
  */
@@ -167,6 +167,7 @@ class CallCFGEdge : public ICFGEdge
167
167
 
168
168
  private:
169
169
  const Instruction* cs;
170
+ std::vector<const CallPE*> callPEs;
170
171
  public:
171
172
  /// Constructor
172
173
  CallCFGEdge(ICFGNode* s, ICFGNode* d, const Instruction* c):
@@ -178,6 +179,14 @@ public:
178
179
  {
179
180
  return cs;
180
181
  }
182
+ /// Add call parameter edge to this CallCFGEdge
183
+ inline void addCallPE(const CallPE* callPE){
184
+ callPEs.push_back(callPE);
185
+ }
186
+ /// Add get parameter edge to this CallCFGEdge
187
+ inline const std::vector<const CallPE*>& getCallPEs() const{
188
+ return callPEs;
189
+ }
181
190
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
182
191
  //@{
183
192
  static inline bool classof(const CallCFGEdge *)
@@ -204,10 +213,11 @@ class RetCFGEdge : public ICFGEdge
204
213
 
205
214
  private:
206
215
  const Instruction* cs;
216
+ const RetPE* retPE;
207
217
  public:
208
218
  /// Constructor
209
219
  RetCFGEdge(ICFGNode* s, ICFGNode* d, const Instruction* c):
210
- ICFGEdge(s,d,RetCF),cs(c)
220
+ ICFGEdge(s,d,RetCF),cs(c),retPE(nullptr)
211
221
  {
212
222
  }
213
223
  /// Return callsite ID
@@ -215,6 +225,15 @@ public:
215
225
  {
216
226
  return cs;
217
227
  }
228
+ /// Add call parameter edge to this CallCFGEdge
229
+ inline void addRetPE(const RetPE* ret){
230
+ assert(retPE==nullptr && "we can only have one retPE for each RetCFGEdge");
231
+ retPE = ret;
232
+ }
233
+ /// Add get parameter edge to this CallCFGEdge
234
+ inline const RetPE* getRetPE() const{
235
+ return retPE;
236
+ }
218
237
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
219
238
  //@{
220
239
  static inline bool classof(const RetCFGEdge *)
@@ -384,7 +384,7 @@ public:
384
384
  }
385
385
 
386
386
  /// Return callsite
387
- inline const RetICFGNode* getRetBlock() const
387
+ inline const RetICFGNode* getRetICFGNode() const
388
388
  {
389
389
  assert(ret && "RetICFGNode not set?");
390
390
  return ret;
Binary file
@@ -34,6 +34,8 @@ namespace SVF
34
34
  {
35
35
 
36
36
  class ICFGNode;
37
+ class CallPE;
38
+ class RetPE;
37
39
 
38
40
  /*!
39
41
  * Interprocedural control-flow and value-flow edge, representing the control- and value-flow dependence between two nodes
@@ -157,8 +159,6 @@ private:
157
159
  s64_t branchCondVal;
158
160
  };
159
161
 
160
-
161
-
162
162
  /*!
163
163
  * Call ICFG edge representing parameter passing/return from a caller to a callee
164
164
  */
@@ -167,6 +167,7 @@ class CallCFGEdge : public ICFGEdge
167
167
 
168
168
  private:
169
169
  const Instruction* cs;
170
+ std::vector<const CallPE*> callPEs;
170
171
  public:
171
172
  /// Constructor
172
173
  CallCFGEdge(ICFGNode* s, ICFGNode* d, const Instruction* c):
@@ -178,6 +179,14 @@ public:
178
179
  {
179
180
  return cs;
180
181
  }
182
+ /// Add call parameter edge to this CallCFGEdge
183
+ inline void addCallPE(const CallPE* callPE){
184
+ callPEs.push_back(callPE);
185
+ }
186
+ /// Add get parameter edge to this CallCFGEdge
187
+ inline const std::vector<const CallPE*>& getCallPEs() const{
188
+ return callPEs;
189
+ }
181
190
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
182
191
  //@{
183
192
  static inline bool classof(const CallCFGEdge *)
@@ -204,10 +213,11 @@ class RetCFGEdge : public ICFGEdge
204
213
 
205
214
  private:
206
215
  const Instruction* cs;
216
+ const RetPE* retPE;
207
217
  public:
208
218
  /// Constructor
209
219
  RetCFGEdge(ICFGNode* s, ICFGNode* d, const Instruction* c):
210
- ICFGEdge(s,d,RetCF),cs(c)
220
+ ICFGEdge(s,d,RetCF),cs(c),retPE(nullptr)
211
221
  {
212
222
  }
213
223
  /// Return callsite ID
@@ -215,6 +225,15 @@ public:
215
225
  {
216
226
  return cs;
217
227
  }
228
+ /// Add call parameter edge to this CallCFGEdge
229
+ inline void addRetPE(const RetPE* ret){
230
+ assert(retPE==nullptr && "we can only have one retPE for each RetCFGEdge");
231
+ retPE = ret;
232
+ }
233
+ /// Add get parameter edge to this CallCFGEdge
234
+ inline const RetPE* getRetPE() const{
235
+ return retPE;
236
+ }
218
237
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
219
238
  //@{
220
239
  static inline bool classof(const RetCFGEdge *)
@@ -384,7 +384,7 @@ public:
384
384
  }
385
385
 
386
386
  /// Return callsite
387
- inline const RetICFGNode* getRetBlock() const
387
+ inline const RetICFGNode* getRetICFGNode() const
388
388
  {
389
389
  assert(ret && "RetICFGNode not set?");
390
390
  return ret;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.841",
3
+ "version": "1.0.845",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {