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 +1 -1
- package/svf/include/AE/Core/AbstractState.h +3 -0
- package/svf/include/AE/Core/AbstractValue.h +4 -0
- package/svf/include/AE/Core/IntervalValue.h +3 -1
- package/svf/include/AE/Core/NumericValue.h +3 -0
- package/svf/include/AE/Svfexe/AbstractInterpretation.h +3 -3
- package/svf/include/AE/Svfexe/BufOverflowChecker.h +3 -3
- package/svf/include/AE/Svfexe/ICFGSimplification.h +3 -3
- package/svf/include/AE/Svfexe/SVFIR2AbsState.h +3 -3
- package/svf/include/SVFIR/SVFStatements.h +19 -19
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
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:
|