svf-lib 1.0.749 → 1.0.753

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.
@@ -138,6 +138,10 @@ public:
138
138
  }
139
139
  //@}
140
140
 
141
+ bool isNegCond(const Condition *condition) {
142
+ return condMgr->isNegCond(condition);
143
+ }
144
+
141
145
  /// Get dominators
142
146
  inline DominatorTree* getDT(const Function* fun)
143
147
  {
@@ -287,6 +287,15 @@ public:
287
287
  assert(condToInstMap.find(cond)==condToInstMap.end() && "this should be a fresh condition");
288
288
  condToInstMap[cond] = inst;
289
289
  }
290
+
291
+ inline void setNegCondInst(const CondExpr *cond, const Instruction *inst) {
292
+ setCondInst(cond, inst);
293
+ negConds.set(cond->getId());
294
+ }
295
+
296
+ inline bool isNegCond(const CondExpr *cond) const {
297
+ return negConds.test(cond->getId());
298
+ }
290
299
  //@}
291
300
 
292
301
  private:
@@ -298,6 +307,7 @@ private:
298
307
  BranchCondToCondExprMap branchCondToCondExpr; ///< map branch condition to its Condition wrapper
299
308
  CondToTermInstMap condToInstMap; ///< map condition to llvm instruction
300
309
  BranchCondManager branchCondManager; ///< branch condition manager
310
+ NodeBS negConds;
301
311
  };
302
312
 
303
313
  } // End namespace SVF
Binary file
@@ -138,6 +138,10 @@ public:
138
138
  }
139
139
  //@}
140
140
 
141
+ bool isNegCond(const Condition *condition) {
142
+ return condMgr->isNegCond(condition);
143
+ }
144
+
141
145
  /// Get dominators
142
146
  inline DominatorTree* getDT(const Function* fun)
143
147
  {
@@ -287,6 +287,15 @@ public:
287
287
  assert(condToInstMap.find(cond)==condToInstMap.end() && "this should be a fresh condition");
288
288
  condToInstMap[cond] = inst;
289
289
  }
290
+
291
+ inline void setNegCondInst(const CondExpr *cond, const Instruction *inst) {
292
+ setCondInst(cond, inst);
293
+ negConds.set(cond->getId());
294
+ }
295
+
296
+ inline bool isNegCond(const CondExpr *cond) const {
297
+ return negConds.test(cond->getId());
298
+ }
290
299
  //@}
291
300
 
292
301
  private:
@@ -298,6 +307,7 @@ private:
298
307
  BranchCondToCondExprMap branchCondToCondExpr; ///< map branch condition to its Condition wrapper
299
308
  CondToTermInstMap condToInstMap; ///< map condition to llvm instruction
300
309
  BranchCondManager branchCondManager; ///< branch condition manager
310
+ NodeBS negConds;
301
311
  };
302
312
 
303
313
  } // End namespace SVF
@@ -120,6 +120,15 @@ public:
120
120
  return extAPI;
121
121
  }
122
122
 
123
+ static void destory()
124
+ {
125
+ if (extAPI != nullptr)
126
+ {
127
+ delete extAPI;
128
+ extAPI = nullptr;
129
+ }
130
+ }
131
+
123
132
  //Return the extf_t of (F).
124
133
  extf_t get_type(const SVFFunction* F) const
125
134
  {
@@ -243,13 +243,15 @@ public:
243
243
  // TypeAnalysis.cpp
244
244
  static const llvm::cl::opt<bool> GenICFG;
245
245
 
246
- //WPAPass.cpp
246
+ // WPAPass.cpp
247
247
  static const llvm::cl::opt<bool> AnderSVFG;
248
248
  static const llvm::cl::opt<bool> SABERFULLSVFG;
249
249
  static const llvm::cl::opt<bool> PrintAliases;
250
250
  static llvm::cl::bits<PointerAnalysis::PTATY> PASelected;
251
251
  static llvm::cl::bits<WPAPass::AliasCheckRule> AliasRule;
252
252
 
253
+ // DOTGraphTraits
254
+ static const llvm::cl::opt<bool> ShowHiddenNode;
253
255
  };
254
256
  } // namespace SVF
255
257
 
@@ -75,14 +75,9 @@ public:
75
75
  {
76
76
  for (auto * f : FunctionSet)
77
77
  delete f;
78
-
79
- auto * extAPI = ExtAPI::getExtAPI();
80
- delete extAPI;
81
- extAPI = nullptr;
82
78
  NodeIDAllocator::unset();
83
- auto * threadAPI = SVF::ThreadAPI::getThreadAPI();
84
- delete threadAPI;
85
- threadAPI = nullptr;
79
+ ThreadAPI::destroy();
80
+ ExtAPI::destory();
86
81
  }
87
82
 
88
83
  static inline void setPagFromTXT(std::string txt)
@@ -108,6 +108,15 @@ public:
108
108
  return tdAPI;
109
109
  }
110
110
 
111
+ static void destroy()
112
+ {
113
+ if(tdAPI != nullptr)
114
+ {
115
+ delete tdAPI;
116
+ tdAPI = nullptr;
117
+ }
118
+ }
119
+
111
120
  /// Return the callee/callsite/func
112
121
  //@{
113
122
  const SVFFunction* getCallee(const Instruction *inst) const;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.749",
3
+ "version": "1.0.753",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {