svf-tools 1.0.663 → 1.0.665

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/Dockerfile CHANGED
@@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND noninteractive
7
7
  RUN set -e
8
8
 
9
9
  # Define LLVM version.
10
- ENV llvm_version=13.0.0
10
+ ENV llvm_version=14.0.0
11
11
 
12
12
  # Define home directory
13
13
  ENV HOME=/home/SVF-tools
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.663",
3
+ "version": "1.0.665",
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": {
package/setup.sh CHANGED
@@ -18,7 +18,7 @@ function set_llvm {
18
18
  [[ -n "$LLVM_DIR" ]] && return 0
19
19
 
20
20
  # use local download directory
21
- LLVM_DIR="$SVF_DIR/llvm-13.0.0.obj"
21
+ LLVM_DIR="$SVF_DIR/llvm-14.0.0.obj"
22
22
  [[ -d "$LLVM_DIR" ]] && return 0
23
23
 
24
24
  # ... otherwise don't set LLVM_DIR
@@ -578,13 +578,13 @@ private:
578
578
  /// Add a value (pointer) node
579
579
  inline NodeID addValNode(const SVFValue*, SVFVar *node, NodeID i)
580
580
  {
581
- assert(hasGNode(i) == false && "This NodeID clashes here. Please check NodeIDAllocator. Switch Strategy::DEBUG to SEQ or DENSE");
581
+ assert(hasGNode(i) == false && "This NodeID clashes here. Please check NodeIDAllocator. Switch Strategy::DBUG to SEQ or DENSE");
582
582
  return addNode(node,i);
583
583
  }
584
584
  /// Add a memory obj node
585
585
  inline NodeID addObjNode(const SVFValue*, SVFVar *node, NodeID i)
586
586
  {
587
- assert(hasGNode(i) == false && "This NodeID clashes here. Please check NodeIDAllocator. Switch Strategy::DEBUG to SEQ or DENSE");
587
+ assert(hasGNode(i) == false && "This NodeID clashes here. Please check NodeIDAllocator. Switch Strategy::DBUG to SEQ or DENSE");
588
588
  return addNode(node,i);
589
589
  }
590
590
  /// Add a unique return node for a procedure
@@ -429,7 +429,7 @@ template <> struct Hash<NodePair>
429
429
  } while (false)
430
430
  #endif
431
431
 
432
- /// LLVM debug macros, define type of your DEBUG model of each pass
432
+ /// LLVM debug macros, define type of your DBUG model of each pass
433
433
  #define DBOUT(TYPE, X) SVF_DEBUG_WITH_TYPE(TYPE, X)
434
434
  #define DOSTAT(X) X
435
435
  #define DOTIMESTAT(X) X
@@ -36,7 +36,7 @@ public:
36
36
  /// GEP objects are allocated as an offset from their base (see implementation
37
37
  /// of allocateGepObjectId). The purpose of this allocation strategy
38
38
  /// is human readability.
39
- DEBUG,
39
+ DBUG,
40
40
  };
41
41
 
42
42
  /// These nodes, and any nodes before them are assumed allocated
@@ -61,8 +61,8 @@ public:
61
61
 
62
62
  /// Allocate a GEP object ID as determined by the strategy.
63
63
  /// allocateObjectId is still fine for GEP objects, but
64
- /// for some strategies (DEBUG, namely), GEP objects can
65
- /// be allocated differently (more readable, for DEBUG).
64
+ /// for some strategies (DBUG, namely), GEP objects can
65
+ /// be allocated differently (more readable, for DBUG).
66
66
  /// Regardless, numObjects is shared; there is no special
67
67
  /// numGepObjects.
68
68
  NodeID allocateGepObjectId(NodeID base, u32_t offset, u32_t maxFieldLimit);
@@ -64,7 +64,7 @@ NodeID NodeIDAllocator::allocateObjectId(void)
64
64
  // Everything is sequential and intermixed.
65
65
  id = numNodes;
66
66
  }
67
- else if (strategy == Strategy::DEBUG)
67
+ else if (strategy == Strategy::DBUG)
68
68
  {
69
69
  // Non-GEPs just grab the next available ID.
70
70
  // We may have "holes" because GEPs increment the total
@@ -101,7 +101,7 @@ NodeID NodeIDAllocator::allocateGepObjectId(NodeID base, u32_t offset, u32_t max
101
101
  // Everything is sequential and intermixed.
102
102
  id = numNodes;
103
103
  }
104
- else if (strategy == Strategy::DEBUG)
104
+ else if (strategy == Strategy::DBUG)
105
105
  {
106
106
  // For a gep id, base id is set at lower bits, and offset is set at higher bits
107
107
  // e.g., 1100050 denotes base=50 and offset=10
@@ -146,7 +146,7 @@ NodeID NodeIDAllocator::allocateValueId(void)
146
146
  // Everything is sequential and intermixed.
147
147
  id = numNodes;
148
148
  }
149
- else if (strategy == Strategy::DEBUG)
149
+ else if (strategy == Strategy::DBUG)
150
150
  {
151
151
  id = numNodes;
152
152
  }
@@ -29,7 +29,7 @@ const OptionMap<NodeIDAllocator::Strategy> Options::NodeAllocStrat(
29
29
  {NodeIDAllocator::Strategy::DENSE, "dense", "allocate objects together [0-n] and values together [m-MAX], separately"},
30
30
  {NodeIDAllocator::Strategy::REVERSE_DENSE, "reverse-dense", "like dense but flipped, objects are [m-MAX], values are [0-n]"},
31
31
  {NodeIDAllocator::Strategy::SEQ, "seq", "allocate values and objects sequentially, intermixed (default)"},
32
- {NodeIDAllocator::Strategy::DEBUG, "debug", "allocate value and objects sequentially, intermixed, except GEP objects as offsets"},
32
+ {NodeIDAllocator::Strategy::DBUG, "debug", "allocate value and objects sequentially, intermixed, except GEP objects as offsets"},
33
33
  }
34
34
  );
35
35