svf-tools 1.0.952 → 1.0.954

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.952",
3
+ "version": "1.0.954",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -382,10 +382,7 @@ public:
382
382
  void view();
383
383
  };
384
384
 
385
- } // End namespace SVF
386
385
 
387
- namespace SVF
388
- {
389
386
  /* !
390
387
  * GenericGraphTraits specializations for the generic graph algorithms.
391
388
  * Provide graph traits for traversing from a constraint node using standard graph traversals.
@@ -405,6 +402,6 @@ template<> struct GenericGraphTraits<SVF::ConstraintGraph*> : public GenericGrap
405
402
  typedef SVF::ConstraintNode *NodeRef;
406
403
  };
407
404
 
408
- } // End namespace llvm
405
+ } // End namespace SVF
409
406
 
410
407
  #endif /* CONSG_H_ */
@@ -207,7 +207,7 @@ const Type *ObjTypeInference::fwInferObjType(const Value *var)
207
207
  }
208
208
  if (const auto *gepInst = SVFUtil::dyn_cast<GetElementPtrInst>(curValue))
209
209
  insertInferSite(gepInst);
210
- for (const auto &it: curValue->users())
210
+ for (const auto it: curValue->users())
211
211
  {
212
212
  if (const auto *loadInst = SVFUtil::dyn_cast<LoadInst>(it))
213
213
  {
@@ -233,7 +233,7 @@ const Type *ObjTypeInference::fwInferObjType(const Value *var)
233
233
  }
234
234
  else
235
235
  {
236
- for (const auto &nit: storeInst->getPointerOperand()->users())
236
+ for (const auto nit: storeInst->getPointerOperand()->users())
237
237
  {
238
238
  /*
239
239
  * propagate across store (value operand) and load
@@ -265,14 +265,14 @@ const Type *ObjTypeInference::fwInferObjType(const Value *var)
265
265
  const Value *gepBase = gepInst->getPointerOperand();
266
266
  if(const auto *load = SVFUtil::dyn_cast<LoadInst>(gepBase))
267
267
  {
268
- for (const auto &loadUse: load->getPointerOperand()->users())
268
+ for (const auto loadUse: load->getPointerOperand()->users())
269
269
  {
270
270
  if (loadUse == load || !SVFUtil::isa<LoadInst>(loadUse))
271
271
  continue;
272
- for (const auto &gepUse: loadUse->users())
272
+ for (const auto gepUse: loadUse->users())
273
273
  {
274
274
  if (!SVFUtil::isa<GetElementPtrInst>(gepUse)) continue;
275
- for (const auto &loadUse2: gepUse->users())
275
+ for (const auto loadUse2: gepUse->users())
276
276
  {
277
277
  if (SVFUtil::isa<LoadInst>(loadUse2))
278
278
  {
@@ -294,10 +294,10 @@ const Type *ObjTypeInference::fwInferObjType(const Value *var)
294
294
  %6 = load ptr, ptr %5, align 8
295
295
  %7 = getelementptr inbounds %struct.ll, ptr %6, i32 0, i32 0
296
296
  */
297
- for (const auto &gepUse: alloc->users())
297
+ for (const auto gepUse: alloc->users())
298
298
  {
299
299
  if (!SVFUtil::isa<GetElementPtrInst>(gepUse)) continue;
300
- for (const auto &loadUse2: gepUse->users())
300
+ for (const auto loadUse2: gepUse->users())
301
301
  {
302
302
  if (SVFUtil::isa<LoadInst>(loadUse2))
303
303
  {
@@ -344,7 +344,7 @@ const Type *ObjTypeInference::fwInferObjType(const Value *var)
344
344
  %call = call i8* @malloc_wrapper()
345
345
  ..infer based on %call..
346
346
  */
347
- for (const auto &callsite: retInst->getFunction()->users())
347
+ for (const auto callsite: retInst->getFunction()->users())
348
348
  {
349
349
  if (const auto *callBase = SVFUtil::dyn_cast<CallBase>(callsite))
350
350
  {
@@ -499,7 +499,7 @@ Set<const Value *> &ObjTypeInference::bwfindAllocOfVar(const Value *var)
499
499
  }
500
500
  else if (const auto *loadInst = SVFUtil::dyn_cast<LoadInst>(curValue))
501
501
  {
502
- for (const auto &use: loadInst->getPointerOperand()->users())
502
+ for (const auto use: loadInst->getPointerOperand()->users())
503
503
  {
504
504
  if (const StoreInst *storeInst = SVFUtil::dyn_cast<StoreInst>(use))
505
505
  {
@@ -512,7 +512,7 @@ Set<const Value *> &ObjTypeInference::bwfindAllocOfVar(const Value *var)
512
512
  }
513
513
  else if (const auto *argument = SVFUtil::dyn_cast<Argument>(curValue))
514
514
  {
515
- for (const auto &use: argument->getParent()->users())
515
+ for (const auto use: argument->getParent()->users())
516
516
  {
517
517
  if (const CallBase *callBase = SVFUtil::dyn_cast<CallBase>(use))
518
518
  {