svf-lib 1.0.1926 → 1.0.1928
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/SVF-linux/Release-build/bin/ae +0 -0
- package/SVF-linux/Release-build/bin/svf-ex +0 -0
- package/SVF-linux/Release-build/include/AE/Core/AbstractState.h +2 -3
- package/SVF-linux/Release-build/include/AE/Core/IntervalValue.h +1 -0
- package/SVF-linux/Release-build/include/AE/Core/RelExeState.h +1 -1
- package/SVF-linux/Release-build/include/AE/Svfexe/AbstractInterpretation.h +3 -4
- package/SVF-linux/Release-build/include/AE/Svfexe/ICFGSimplification.h +1 -2
- package/SVF-linux/Release-build/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +8 -9
- package/SVF-linux/Release-build/lib/libSvfCore.a +0 -0
- package/SVF-osx/Release-build/bin/ae +0 -0
- package/SVF-osx/Release-build/bin/svf-ex +0 -0
- package/SVF-osx/Release-build/include/AE/Core/AbstractState.h +2 -3
- package/SVF-osx/Release-build/include/AE/Core/IntervalValue.h +1 -0
- package/SVF-osx/Release-build/include/AE/Core/RelExeState.h +1 -1
- package/SVF-osx/Release-build/include/AE/Svfexe/AbstractInterpretation.h +3 -4
- package/SVF-osx/Release-build/include/AE/Svfexe/ICFGSimplification.h +1 -2
- package/SVF-osx/Release-build/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +8 -9
- package/SVF-osx/Release-build/lib/libSvfCore.a +0 -0
- package/SVF-osx/Release-build/lib/libSvfLLVM.a +0 -0
- package/package.json +1 -1
- package/SVF-linux/Release-build/include/AE/Core/ConsExeState.h +0 -453
- package/SVF-linux/Release-build/include/AE/Core/ExeState.h +0 -304
- package/SVF-linux/Release-build/include/AE/Core/SingleAbsValue.h +0 -477
- package/SVF-linux/Release-build/include/AE/Core/SymState.h +0 -221
- package/SVF-linux/Release-build/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
- package/SVF-osx/Release-build/include/AE/Core/ConsExeState.h +0 -453
- package/SVF-osx/Release-build/include/AE/Core/ExeState.h +0 -304
- package/SVF-osx/Release-build/include/AE/Core/SingleAbsValue.h +0 -477
- package/SVF-osx/Release-build/include/AE/Core/SymState.h +0 -221
- package/SVF-osx/Release-build/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
|
Binary file
|
|
Binary file
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
#ifndef Z3_EXAMPLE_INTERVAL_DOMAIN_H
|
|
44
44
|
#define Z3_EXAMPLE_INTERVAL_DOMAIN_H
|
|
45
45
|
|
|
46
|
-
#include "AE/Core/ExeState.h"
|
|
47
46
|
#include "AE/Core/IntervalValue.h"
|
|
48
47
|
#include "AE/Core/AbstractValue.h"
|
|
49
48
|
#include "Util/Z3Expr.h"
|
|
@@ -54,7 +53,7 @@ namespace SVF
|
|
|
54
53
|
{
|
|
55
54
|
class AbstractState
|
|
56
55
|
{
|
|
57
|
-
friend class
|
|
56
|
+
friend class SVFIR2AbsState;
|
|
58
57
|
friend class RelationSolver;
|
|
59
58
|
public:
|
|
60
59
|
typedef Map<u32_t, AbstractValue> VarToAbsValMap;
|
|
@@ -439,7 +438,7 @@ protected:
|
|
|
439
438
|
|
|
440
439
|
class SparseAbstractState : public AbstractState
|
|
441
440
|
{
|
|
442
|
-
friend class
|
|
441
|
+
friend class SVFIR2AbsState;
|
|
443
442
|
friend class RelationSolver;
|
|
444
443
|
|
|
445
444
|
public:
|
|
@@ -28,17 +28,16 @@
|
|
|
28
28
|
// Created by Jiawei Wang on 2024/1/10.
|
|
29
29
|
//
|
|
30
30
|
|
|
31
|
-
#include "Util/SVFBugReport.h"
|
|
32
31
|
#include "AE/Core/ICFGWTO.h"
|
|
32
|
+
#include "AE/Svfexe/SVFIR2AbsState.h"
|
|
33
|
+
#include "Util/SVFBugReport.h"
|
|
33
34
|
#include "WPA/Andersen.h"
|
|
34
|
-
#include "AE/Svfexe/SVFIR2ItvExeState.h"
|
|
35
35
|
|
|
36
36
|
namespace SVF
|
|
37
37
|
{
|
|
38
38
|
class AbstractInterpretation;
|
|
39
39
|
class AEStat;
|
|
40
40
|
class AEAPI;
|
|
41
|
-
class ExeState;
|
|
42
41
|
|
|
43
42
|
template<typename T> class FILOWorkList;
|
|
44
43
|
|
|
@@ -343,7 +342,7 @@ protected:
|
|
|
343
342
|
SVFIR* _svfir;
|
|
344
343
|
PTACallGraph* _callgraph;
|
|
345
344
|
/// Execution State, used to store the Interval Value of every SVF variable
|
|
346
|
-
|
|
345
|
+
SVFIR2AbsState* _svfir2ExeState;
|
|
347
346
|
AEAPI* _api{nullptr};
|
|
348
347
|
|
|
349
348
|
ICFG* _icfg;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//===-
|
|
1
|
+
//===- SVFIR2AbsState.h -- SVF IR Translation to Interval Domain-----//
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
// 46th International Conference on Software Engineering. (ICSE24)
|
|
24
24
|
//===----------------------------------------------------------------------===//
|
|
25
25
|
/*
|
|
26
|
-
*
|
|
26
|
+
* SVFIR2AbsState.h
|
|
27
27
|
*
|
|
28
28
|
* Created on: Aug 7, 2022
|
|
29
29
|
* Author: Jiawei Wang, Xiao Cheng
|
|
@@ -34,25 +34,24 @@
|
|
|
34
34
|
#define Z3_EXAMPLE_SVFIR2ITVEXESTATE_H
|
|
35
35
|
|
|
36
36
|
#include "AE/Core/AbstractState.h"
|
|
37
|
-
#include "AE/Core/ExeState.h"
|
|
38
37
|
#include "AE/Core/RelExeState.h"
|
|
39
38
|
#include "SVFIR/SVFIR.h"
|
|
40
39
|
|
|
41
40
|
namespace SVF
|
|
42
41
|
{
|
|
43
|
-
class
|
|
42
|
+
class SVFIR2AbsState
|
|
44
43
|
{
|
|
45
44
|
public:
|
|
46
45
|
static AbstractValue globalNulladdrs;
|
|
47
46
|
public:
|
|
48
|
-
|
|
47
|
+
SVFIR2AbsState(SVFIR *ir) : _svfir(ir) {}
|
|
49
48
|
|
|
50
49
|
void setEs(const SparseAbstractState&es)
|
|
51
50
|
{
|
|
52
51
|
_es = es;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
|
-
SparseAbstractState&getEs()
|
|
54
|
+
SparseAbstractState& getEs()
|
|
56
55
|
{
|
|
57
56
|
return _es;
|
|
58
57
|
}
|
|
@@ -172,19 +171,19 @@ public:
|
|
|
172
171
|
/// Return the internal index if idx is an address otherwise return the value of idx
|
|
173
172
|
static inline u32_t getInternalID(u32_t idx)
|
|
174
173
|
{
|
|
175
|
-
return
|
|
174
|
+
return AbstractState::getInternalID(idx);
|
|
176
175
|
}
|
|
177
176
|
|
|
178
177
|
/// The physical address starts with 0x7f...... + idx
|
|
179
178
|
static inline u32_t getVirtualMemAddress(u32_t idx)
|
|
180
179
|
{
|
|
181
|
-
return
|
|
180
|
+
return AbstractState::getVirtualMemAddress(idx);
|
|
182
181
|
}
|
|
183
182
|
|
|
184
183
|
/// Check bit value of val start with 0x7F000000, filter by 0xFF000000
|
|
185
184
|
static inline bool isVirtualMemAddress(u32_t val)
|
|
186
185
|
{
|
|
187
|
-
return
|
|
186
|
+
return AbstractState::isVirtualMemAddress(val);
|
|
188
187
|
}
|
|
189
188
|
|
|
190
189
|
protected:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
#ifndef Z3_EXAMPLE_INTERVAL_DOMAIN_H
|
|
44
44
|
#define Z3_EXAMPLE_INTERVAL_DOMAIN_H
|
|
45
45
|
|
|
46
|
-
#include "AE/Core/ExeState.h"
|
|
47
46
|
#include "AE/Core/IntervalValue.h"
|
|
48
47
|
#include "AE/Core/AbstractValue.h"
|
|
49
48
|
#include "Util/Z3Expr.h"
|
|
@@ -54,7 +53,7 @@ namespace SVF
|
|
|
54
53
|
{
|
|
55
54
|
class AbstractState
|
|
56
55
|
{
|
|
57
|
-
friend class
|
|
56
|
+
friend class SVFIR2AbsState;
|
|
58
57
|
friend class RelationSolver;
|
|
59
58
|
public:
|
|
60
59
|
typedef Map<u32_t, AbstractValue> VarToAbsValMap;
|
|
@@ -439,7 +438,7 @@ protected:
|
|
|
439
438
|
|
|
440
439
|
class SparseAbstractState : public AbstractState
|
|
441
440
|
{
|
|
442
|
-
friend class
|
|
441
|
+
friend class SVFIR2AbsState;
|
|
443
442
|
friend class RelationSolver;
|
|
444
443
|
|
|
445
444
|
public:
|
|
@@ -28,17 +28,16 @@
|
|
|
28
28
|
// Created by Jiawei Wang on 2024/1/10.
|
|
29
29
|
//
|
|
30
30
|
|
|
31
|
-
#include "Util/SVFBugReport.h"
|
|
32
31
|
#include "AE/Core/ICFGWTO.h"
|
|
32
|
+
#include "AE/Svfexe/SVFIR2AbsState.h"
|
|
33
|
+
#include "Util/SVFBugReport.h"
|
|
33
34
|
#include "WPA/Andersen.h"
|
|
34
|
-
#include "AE/Svfexe/SVFIR2ItvExeState.h"
|
|
35
35
|
|
|
36
36
|
namespace SVF
|
|
37
37
|
{
|
|
38
38
|
class AbstractInterpretation;
|
|
39
39
|
class AEStat;
|
|
40
40
|
class AEAPI;
|
|
41
|
-
class ExeState;
|
|
42
41
|
|
|
43
42
|
template<typename T> class FILOWorkList;
|
|
44
43
|
|
|
@@ -343,7 +342,7 @@ protected:
|
|
|
343
342
|
SVFIR* _svfir;
|
|
344
343
|
PTACallGraph* _callgraph;
|
|
345
344
|
/// Execution State, used to store the Interval Value of every SVF variable
|
|
346
|
-
|
|
345
|
+
SVFIR2AbsState* _svfir2ExeState;
|
|
347
346
|
AEAPI* _api{nullptr};
|
|
348
347
|
|
|
349
348
|
ICFG* _icfg;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//===-
|
|
1
|
+
//===- SVFIR2AbsState.h -- SVF IR Translation to Interval Domain-----//
|
|
2
2
|
//
|
|
3
3
|
// SVF: Static Value-Flow Analysis
|
|
4
4
|
//
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
// 46th International Conference on Software Engineering. (ICSE24)
|
|
24
24
|
//===----------------------------------------------------------------------===//
|
|
25
25
|
/*
|
|
26
|
-
*
|
|
26
|
+
* SVFIR2AbsState.h
|
|
27
27
|
*
|
|
28
28
|
* Created on: Aug 7, 2022
|
|
29
29
|
* Author: Jiawei Wang, Xiao Cheng
|
|
@@ -34,25 +34,24 @@
|
|
|
34
34
|
#define Z3_EXAMPLE_SVFIR2ITVEXESTATE_H
|
|
35
35
|
|
|
36
36
|
#include "AE/Core/AbstractState.h"
|
|
37
|
-
#include "AE/Core/ExeState.h"
|
|
38
37
|
#include "AE/Core/RelExeState.h"
|
|
39
38
|
#include "SVFIR/SVFIR.h"
|
|
40
39
|
|
|
41
40
|
namespace SVF
|
|
42
41
|
{
|
|
43
|
-
class
|
|
42
|
+
class SVFIR2AbsState
|
|
44
43
|
{
|
|
45
44
|
public:
|
|
46
45
|
static AbstractValue globalNulladdrs;
|
|
47
46
|
public:
|
|
48
|
-
|
|
47
|
+
SVFIR2AbsState(SVFIR *ir) : _svfir(ir) {}
|
|
49
48
|
|
|
50
49
|
void setEs(const SparseAbstractState&es)
|
|
51
50
|
{
|
|
52
51
|
_es = es;
|
|
53
52
|
}
|
|
54
53
|
|
|
55
|
-
SparseAbstractState&getEs()
|
|
54
|
+
SparseAbstractState& getEs()
|
|
56
55
|
{
|
|
57
56
|
return _es;
|
|
58
57
|
}
|
|
@@ -172,19 +171,19 @@ public:
|
|
|
172
171
|
/// Return the internal index if idx is an address otherwise return the value of idx
|
|
173
172
|
static inline u32_t getInternalID(u32_t idx)
|
|
174
173
|
{
|
|
175
|
-
return
|
|
174
|
+
return AbstractState::getInternalID(idx);
|
|
176
175
|
}
|
|
177
176
|
|
|
178
177
|
/// The physical address starts with 0x7f...... + idx
|
|
179
178
|
static inline u32_t getVirtualMemAddress(u32_t idx)
|
|
180
179
|
{
|
|
181
|
-
return
|
|
180
|
+
return AbstractState::getVirtualMemAddress(idx);
|
|
182
181
|
}
|
|
183
182
|
|
|
184
183
|
/// Check bit value of val start with 0x7F000000, filter by 0xFF000000
|
|
185
184
|
static inline bool isVirtualMemAddress(u32_t val)
|
|
186
185
|
{
|
|
187
|
-
return
|
|
186
|
+
return AbstractState::isVirtualMemAddress(val);
|
|
188
187
|
}
|
|
189
188
|
|
|
190
189
|
protected:
|
|
Binary file
|
|
Binary file
|