svf-tools 1.0.963 → 1.0.965

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.963",
3
+ "version": "1.0.965",
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": {
@@ -39,6 +39,9 @@
39
39
  * \ \ \ / /
40
40
  * ⊥
41
41
  */
42
+ // The implementation is based on
43
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
44
+ // 46th International Conference on Software Engineering. (ICSE24)
42
45
 
43
46
  #ifndef Z3_EXAMPLE_INTERVAL_DOMAIN_H
44
47
  #define Z3_EXAMPLE_INTERVAL_DOMAIN_H
@@ -20,6 +20,10 @@
20
20
  //
21
21
  //===----------------------------------------------------------------------===//
22
22
 
23
+ // The implementation is based on
24
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
25
+ // 46th International Conference on Software Engineering. (ICSE24)
26
+
23
27
  #include "AE/Core/IntervalValue.h"
24
28
  #include "AE/Core/AddressValue.h"
25
29
  #include "Util/SVFUtil.h"
@@ -26,7 +26,9 @@
26
26
  * Author: Jiawei Wang, Xiao Cheng
27
27
  *
28
28
  */
29
-
29
+ // The implementation is based on
30
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
31
+ // 46th International Conference on Software Engineering. (ICSE24)
30
32
 
31
33
  #ifndef Z3_EXAMPLE_IntervalValue_H
32
34
  #define Z3_EXAMPLE_IntervalValue_H
@@ -26,6 +26,9 @@
26
26
  * Author: Xiao Cheng, Jiawei Ren
27
27
  *
28
28
  */
29
+ // The implementation is based on
30
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
31
+ // 46th International Conference on Software Engineering. (ICSE24)
29
32
 
30
33
  #ifndef SVF_NUMERICVALUE_H
31
34
  #define SVF_NUMERICVALUE_H
@@ -18,14 +18,14 @@
18
18
  // You should have received a copy of the GNU Affero General Public License
19
19
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
20
  //
21
- // The implementation is based on
22
- // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
23
- // 46th International Conference on Software Engineering. (ICSE24)
24
21
  //===----------------------------------------------------------------------===//
25
22
 
26
23
 
27
24
  //
28
25
  // Created by Jiawei Wang on 2024/1/10.
26
+ // The implementation is based on
27
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
28
+ // 46th International Conference on Software Engineering. (ICSE24)
29
29
  //
30
30
 
31
31
  #include "AE/Core/ICFGWTO.h"
@@ -18,14 +18,14 @@
18
18
  // You should have received a copy of the GNU Affero General Public License
19
19
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
20
  //
21
- // The implementation is based on
22
- // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
23
- // 46th International Conference on Software Engineering. (ICSE24)
24
21
  //===----------------------------------------------------------------------===//
25
22
 
26
23
 
27
24
  //
28
25
  // Created by Jiawei Wang on 2024/1/12.
26
+ // The implementation is based on
27
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
28
+ // 46th International Conference on Software Engineering. (ICSE24)
29
29
  //
30
30
 
31
31
  #include "AE/Svfexe/AbstractInterpretation.h"
@@ -18,15 +18,15 @@
18
18
  // You should have received a copy of the GNU Affero General Public License
19
19
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
20
  //
21
- // The implementation is based on
22
- // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
23
- // 46th International Conference on Software Engineering. (ICSE24)
24
21
  //===----------------------------------------------------------------------===//
25
22
 
26
23
 
27
24
  //
28
25
  // Created by Jiawei Wang on 2024/2/25.
29
26
  //
27
+ // The implementation is based on
28
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
29
+ // 46th International Conference on Software Engineering. (ICSE24)
30
30
  #include "AE/Svfexe/SVFIR2AbsState.h"
31
31
  #include "Graphs/ICFG.h"
32
32
 
@@ -18,9 +18,6 @@
18
18
  // You should have received a copy of the GNU Affero General Public License
19
19
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
20
  //
21
- // The implementation is based on
22
- // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
23
- // 46th International Conference on Software Engineering. (ICSE24)
24
21
  //===----------------------------------------------------------------------===//
25
22
  /*
26
23
  * SVFIR2AbsState.h
@@ -29,6 +26,9 @@
29
26
  * Author: Jiawei Wang, Xiao Cheng
30
27
  *
31
28
  */
29
+ // The implementation is based on
30
+ // Xiao Cheng, Jiawei Wang and Yulei Sui. Precise Sparse Abstract Execution via Cross-Domain Interaction.
31
+ // 46th International Conference on Software Engineering. (ICSE24)
32
32
 
33
33
  #ifndef Z3_EXAMPLE_SVFIR2ITVEXESTATE_H
34
34
  #define Z3_EXAMPLE_SVFIR2ITVEXESTATE_H
@@ -1032,27 +1032,27 @@ private:
1032
1032
  u32_t opcode;
1033
1033
 
1034
1034
  public:
1035
- /// OpCode for BinaryOPStmt, enum value is same to llvm BinaryOperator
1035
+ /// OpCode for BinaryOPStmt, enum value is same to llvm BinaryOperator (llvm/IR/Instruction.def)
1036
1036
  enum OpCode : unsigned
1037
1037
  {
1038
- Add = 13,
1039
- FAdd = 14,
1040
- Sub = 15,
1041
- FSub = 16,
1042
- Mul = 17,
1043
- FMul = 18,
1044
- UDiv = 19,
1045
- SDiv = 20,
1046
- FDiv = 21,
1047
- URem = 22,
1048
- SRem = 23,
1049
- FRem = 24,
1050
- Shl = 25,
1051
- LShr = 26,
1052
- AShr = 27,
1053
- And = 28,
1054
- Or = 29,
1055
- Xor = 30
1038
+ Add = 13, // Sum of integers
1039
+ FAdd = 14, // Sum of floats
1040
+ Sub = 15, // Subtraction of integers
1041
+ FSub = 16, // Subtraction of floats
1042
+ Mul = 17, // Product of integers.
1043
+ FMul = 18, // Product of floats.
1044
+ UDiv = 19, // Unsigned division.
1045
+ SDiv = 20, // Signed division.
1046
+ FDiv = 21, // Float division.
1047
+ URem = 22, // Unsigned remainder
1048
+ SRem = 23, // Signed remainder
1049
+ FRem = 24, // Float remainder
1050
+ Shl = 25, // Shift left (logical)
1051
+ LShr = 26, // Shift right (logical)
1052
+ AShr = 27, // Shift right (arithmetic)
1053
+ And = 28, // Logical and
1054
+ Or = 29, // Logical or
1055
+ Xor = 30 // Logical xor
1056
1056
  };
1057
1057
 
1058
1058
  /// Methods for support type inquiry through isa, cast, and dyn_cast: