svf-lib 1.0.2576 → 1.0.2578
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-aarch64/include/AE/Svfexe/AbstractInterpretation.h +10 -4
- package/SVF-linux-aarch64/include/Util/Options.h +1 -0
- package/SVF-linux-aarch64/lib/libSvfCore.so.3.4 +0 -0
- package/SVF-osx/include/AE/Svfexe/AbstractInterpretation.h +10 -4
- package/SVF-osx/include/Util/Options.h +1 -0
- package/SVF-osx/lib/libSvfCore.3.4.dylib +0 -0
- package/package.json +1 -1
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
#include "AE/Svfexe/AEStat.h"
|
|
38
38
|
#include "SVFIR/SVFIR.h"
|
|
39
39
|
#include "Util/SVFBugReport.h"
|
|
40
|
+
#include "Util/WorkList.h"
|
|
40
41
|
#include "Graphs/SCC.h"
|
|
41
42
|
#include "Graphs/CallGraph.h"
|
|
42
|
-
#include <deque>
|
|
43
43
|
|
|
44
44
|
namespace SVF
|
|
45
45
|
{
|
|
@@ -94,6 +94,12 @@ public:
|
|
|
94
94
|
WIDEN_NARROW
|
|
95
95
|
};
|
|
96
96
|
|
|
97
|
+
enum AEFunEntryMode
|
|
98
|
+
{
|
|
99
|
+
MAIN,
|
|
100
|
+
NO_MAIN
|
|
101
|
+
};
|
|
102
|
+
|
|
97
103
|
virtual void runOnModule();
|
|
98
104
|
|
|
99
105
|
/// Destructor
|
|
@@ -106,7 +112,7 @@ public:
|
|
|
106
112
|
void analyzeFromAllProgEntries();
|
|
107
113
|
|
|
108
114
|
/// Get all entry point functions (functions without callers)
|
|
109
|
-
|
|
115
|
+
FIFOWorkList<const FunObjVar*> collectProgEntryFuns();
|
|
110
116
|
|
|
111
117
|
/// Factory: returns the singleton instance. The concrete class is
|
|
112
118
|
/// chosen once, on first call, from `Options::AESparsity()`:
|
|
@@ -254,10 +260,10 @@ private:
|
|
|
254
260
|
virtual void handleCallSite(const ICFGNode* node);
|
|
255
261
|
|
|
256
262
|
/// Handle a WTO cycle (loop or recursive function) using widening/narrowing iteration
|
|
257
|
-
virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller
|
|
263
|
+
virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller);
|
|
258
264
|
|
|
259
265
|
/// Handle a function body via worklist-driven WTO traversal starting from funEntry
|
|
260
|
-
void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller
|
|
266
|
+
void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller);
|
|
261
267
|
|
|
262
268
|
/// Handle an ICFG node: execute statements; return true if state changed
|
|
263
269
|
bool handleICFGNode(const ICFGNode* node);
|
|
@@ -241,6 +241,7 @@ public:
|
|
|
241
241
|
|
|
242
242
|
// Abstract Execution
|
|
243
243
|
static const OptionMap<u32_t> AESparsity;
|
|
244
|
+
static const OptionMap<u32_t> AEFunEntry;
|
|
244
245
|
static const Option<u32_t> WidenDelay;
|
|
245
246
|
/// recursion handling mode, Default: TOP
|
|
246
247
|
static const OptionMap<u32_t> HandleRecur;
|
|
Binary file
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
#include "AE/Svfexe/AEStat.h"
|
|
38
38
|
#include "SVFIR/SVFIR.h"
|
|
39
39
|
#include "Util/SVFBugReport.h"
|
|
40
|
+
#include "Util/WorkList.h"
|
|
40
41
|
#include "Graphs/SCC.h"
|
|
41
42
|
#include "Graphs/CallGraph.h"
|
|
42
|
-
#include <deque>
|
|
43
43
|
|
|
44
44
|
namespace SVF
|
|
45
45
|
{
|
|
@@ -94,6 +94,12 @@ public:
|
|
|
94
94
|
WIDEN_NARROW
|
|
95
95
|
};
|
|
96
96
|
|
|
97
|
+
enum AEFunEntryMode
|
|
98
|
+
{
|
|
99
|
+
MAIN,
|
|
100
|
+
NO_MAIN
|
|
101
|
+
};
|
|
102
|
+
|
|
97
103
|
virtual void runOnModule();
|
|
98
104
|
|
|
99
105
|
/// Destructor
|
|
@@ -106,7 +112,7 @@ public:
|
|
|
106
112
|
void analyzeFromAllProgEntries();
|
|
107
113
|
|
|
108
114
|
/// Get all entry point functions (functions without callers)
|
|
109
|
-
|
|
115
|
+
FIFOWorkList<const FunObjVar*> collectProgEntryFuns();
|
|
110
116
|
|
|
111
117
|
/// Factory: returns the singleton instance. The concrete class is
|
|
112
118
|
/// chosen once, on first call, from `Options::AESparsity()`:
|
|
@@ -254,10 +260,10 @@ private:
|
|
|
254
260
|
virtual void handleCallSite(const ICFGNode* node);
|
|
255
261
|
|
|
256
262
|
/// Handle a WTO cycle (loop or recursive function) using widening/narrowing iteration
|
|
257
|
-
virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller
|
|
263
|
+
virtual void handleLoopOrRecursion(const ICFGCycleWTO* cycle, const CallICFGNode* caller);
|
|
258
264
|
|
|
259
265
|
/// Handle a function body via worklist-driven WTO traversal starting from funEntry
|
|
260
|
-
void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller
|
|
266
|
+
void handleFunction(const ICFGNode* funEntry, const CallICFGNode* caller);
|
|
261
267
|
|
|
262
268
|
/// Handle an ICFG node: execute statements; return true if state changed
|
|
263
269
|
bool handleICFGNode(const ICFGNode* node);
|
|
@@ -241,6 +241,7 @@ public:
|
|
|
241
241
|
|
|
242
242
|
// Abstract Execution
|
|
243
243
|
static const OptionMap<u32_t> AESparsity;
|
|
244
|
+
static const OptionMap<u32_t> AEFunEntry;
|
|
244
245
|
static const Option<u32_t> WidenDelay;
|
|
245
246
|
/// recursion handling mode, Default: TOP
|
|
246
247
|
static const OptionMap<u32_t> HandleRecur;
|
|
Binary file
|