svf-tools 1.0.1267 → 1.0.1269

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.1267",
3
+ "version": "1.0.1269",
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": {
@@ -619,7 +619,7 @@ template <> struct Hash<NodePair>
619
619
  * processor time is measured and is returned by 'clock'.
620
620
  */
621
621
  #define TIMEINTERVAL 1000
622
- #define CLOCK_IN_MS() (clock() / (CLOCKS_PER_SEC / TIMEINTERVAL))
622
+ #define CLOCK_IN_MS() (clock() / (CLOCKS_PER_SEC / (double)TIMEINTERVAL))
623
623
 
624
624
  /// Size of native integer that we'll use for bit vectors, in bits.
625
625
  #define NATIVE_INT_SIZE (sizeof(unsigned long long) * CHAR_BIT)
@@ -758,7 +758,7 @@ void SVFIRBuilder::processCE(const Value* val)
758
758
  if (const ConstantExpr* gepce = isGepConstantExpr(ref))
759
759
  {
760
760
  DBOUT(DPAGBuild, outs() << "handle gep constant expression "
761
- << LLVMUtil::dumpValue(ref) << "\n");
761
+ << LLVMUtil::dumpValue(ref) << "\n");
762
762
  const Constant* opnd = gepce->getOperand(0);
763
763
  // handle recursive constant express case (gep (bitcast (gep X 1)) 1)
764
764
  processCE(opnd);
@@ -780,7 +780,7 @@ void SVFIRBuilder::processCE(const Value* val)
780
780
  else if (const ConstantExpr* castce = isCastConstantExpr(ref))
781
781
  {
782
782
  DBOUT(DPAGBuild, outs() << "handle cast constant expression "
783
- << LLVMUtil::dumpValue(ref) << "\n");
783
+ << LLVMUtil::dumpValue(ref) << "\n");
784
784
  const Constant* opnd = castce->getOperand(0);
785
785
  processCE(opnd);
786
786
  const Value* cval = getCurrentValue();
@@ -792,7 +792,7 @@ void SVFIRBuilder::processCE(const Value* val)
792
792
  else if (const ConstantExpr* selectce = isSelectConstantExpr(ref))
793
793
  {
794
794
  DBOUT(DPAGBuild, outs() << "handle select constant expression "
795
- << LLVMUtil::dumpValue(ref) << "\n");
795
+ << LLVMUtil::dumpValue(ref) << "\n");
796
796
  const Constant* src1 = selectce->getOperand(1);
797
797
  const Constant* src2 = selectce->getOperand(2);
798
798
  processCE(src1);
@@ -916,8 +916,8 @@ void SVFIRBuilder::InitialGlobal(const GlobalVariable *gvar, Constant *C,
916
916
  u32_t offset)
917
917
  {
918
918
  DBOUT(DPAGBuild, outs() << "global " << LLVMUtil::dumpValue(gvar)
919
- << " constant initializer: "
920
- << LLVMUtil::dumpValue(C) << "\n");
919
+ << " constant initializer: "
920
+ << LLVMUtil::dumpValue(C) << "\n");
921
921
  if (C->getType()->isSingleValueType())
922
922
  {
923
923
  NodeID src = getValueNode(C);
@@ -1011,7 +1011,7 @@ void SVFIRBuilder::visitGlobal()
1011
1011
  {
1012
1012
  Constant *C = gvar->getInitializer();
1013
1013
  DBOUT(DPAGBuild, outs() << "add global var node "
1014
- << LLVMUtil::dumpValue(gvar) << "\n");
1014
+ << LLVMUtil::dumpValue(gvar) << "\n");
1015
1015
  InitialGlobal(gvar, C, 0);
1016
1016
  }
1017
1017
  }
@@ -1518,7 +1518,7 @@ void SVFIRBuilder::handleDirectCall(CallBase* cs, const Function *F)
1518
1518
  CallICFGNode* callICFGNode = llvmModuleSet()->getCallICFGNode(cs);
1519
1519
  const FunObjVar* svffun = llvmModuleSet()->getFunObjVar(F);
1520
1520
  DBOUT(DPAGBuild, outs() << "handle direct call " << LLVMUtil::dumpValue(cs)
1521
- << " callee " << F->getName().str() << "\n");
1521
+ << " callee " << F->getName().str() << "\n");
1522
1522
 
1523
1523
  //Only handle the ret.val. if it's used as a ptr.
1524
1524
  NodeID dstrec = getValueNode(cs);
@@ -1545,7 +1545,7 @@ void SVFIRBuilder::handleDirectCall(CallBase* cs, const Function *F)
1545
1545
  const Value* AA = cs->getArgOperand(itA), *FA = &*itF; //current actual/formal arg
1546
1546
 
1547
1547
  DBOUT(DPAGBuild, outs() << "process actual parm "
1548
- << LLVMUtil::dumpValue(AA) << "\n");
1548
+ << LLVMUtil::dumpValue(AA) << "\n");
1549
1549
 
1550
1550
  NodeID dstFA = getValueNode(FA);
1551
1551
  NodeID srcAA = getValueNode(AA);
@@ -392,7 +392,7 @@ void SymbolTableBuilder::handleCE(const Value* val)
392
392
  if (const ConstantExpr* ce = isGepConstantExpr(ref))
393
393
  {
394
394
  DBOUT(DMemModelCE, outs() << "handle constant expression "
395
- << LLVMUtil::dumpValue(ref) << "\n");
395
+ << LLVMUtil::dumpValue(ref) << "\n");
396
396
  collectVal(ce);
397
397
 
398
398
  // handle the recursive constant express case
@@ -406,7 +406,7 @@ void SymbolTableBuilder::handleCE(const Value* val)
406
406
  else if (const ConstantExpr* ce = isCastConstantExpr(ref))
407
407
  {
408
408
  DBOUT(DMemModelCE, outs() << "handle constant expression "
409
- << LLVMUtil::dumpValue(ref) << "\n");
409
+ << LLVMUtil::dumpValue(ref) << "\n");
410
410
  collectVal(ce);
411
411
  collectVal(ce->getOperand(0));
412
412
  // handle the recursive constant express case
@@ -416,7 +416,7 @@ void SymbolTableBuilder::handleCE(const Value* val)
416
416
  else if (const ConstantExpr* ce = isSelectConstantExpr(ref))
417
417
  {
418
418
  DBOUT(DMemModelCE, outs() << "handle constant expression "
419
- << LLVMUtil::dumpValue(ref) << "\n");
419
+ << LLVMUtil::dumpValue(ref) << "\n");
420
420
  collectVal(ce);
421
421
  collectVal(ce->getOperand(0));
422
422
  collectVal(ce->getOperand(1));