svf-lib 1.0.788 → 1.0.792
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/include/Graphs/ICFG.h +1 -1
- package/SVF-linux/include/Graphs/ICFGNode.h +2 -2
- package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
- package/SVF-osx/Release-build/lib/libSvf.a +0 -0
- package/SVF-osx/include/DDA/ContextDDA.h +3 -3
- package/SVF-osx/include/DDA/DDAClient.h +2 -2
- package/SVF-osx/include/DDA/DDAVFSolver.h +2 -2
- package/SVF-osx/include/DDA/FlowDDA.h +2 -2
- package/SVF-osx/include/Graphs/ICFG.h +33 -33
- package/SVF-osx/include/Graphs/ICFGNode.h +33 -33
- package/SVF-osx/include/Graphs/ICFGStat.h +11 -11
- package/SVF-osx/include/Graphs/PTACallGraph.h +19 -19
- package/SVF-osx/include/Graphs/SVFG.h +16 -16
- package/SVF-osx/include/Graphs/SVFGNode.h +14 -14
- package/SVF-osx/include/Graphs/SVFGOPT.h +1 -1
- package/SVF-osx/include/Graphs/ThreadCallGraph.h +25 -25
- package/SVF-osx/include/Graphs/VFG.h +10 -10
- package/SVF-osx/include/Graphs/VFGNode.h +8 -8
- package/SVF-osx/include/MSSA/MSSAMuChi.h +6 -6
- package/SVF-osx/include/MSSA/MemRegion.h +24 -24
- package/SVF-osx/include/MSSA/MemSSA.h +10 -10
- package/SVF-osx/include/MTA/LockResultValidator.h +2 -2
- package/SVF-osx/include/MTA/MHP.h +4 -4
- package/SVF-osx/include/MTA/PCG.h +1 -1
- package/SVF-osx/include/MTA/TCT.h +2 -2
- package/SVF-osx/include/MemoryModel/PointerAnalysis.h +12 -12
- package/SVF-osx/include/MemoryModel/SVFIR.h +21 -21
- package/SVF-osx/include/MemoryModel/SVFStatements.h +11 -11
- package/SVF-osx/include/SABER/LeakChecker.h +4 -4
- package/SVF-osx/include/SABER/ProgSlice.h +2 -2
- package/SVF-osx/include/SABER/SaberCheckerAPI.h +4 -4
- package/SVF-osx/include/SABER/SaberSVFGBuilder.h +1 -1
- package/SVF-osx/include/SABER/SrcSnkDDA.h +1 -1
- package/SVF-osx/include/SVF-FE/ICFGBuilder.h +4 -4
- package/SVF-osx/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/SVF-osx/include/Util/NodeIDAllocator.h +3 -0
- package/package.json +1 -1
|
@@ -105,7 +105,7 @@ public:
|
|
|
105
105
|
{
|
|
106
106
|
return getType(SVFUtil::getCallee(inst)) == CK_ALLOC;
|
|
107
107
|
}
|
|
108
|
-
inline bool isMemAlloc(const
|
|
108
|
+
inline bool isMemAlloc(const CallICFGNode* cs) const
|
|
109
109
|
{
|
|
110
110
|
return isMemAlloc(cs->getCallSite());
|
|
111
111
|
}
|
|
@@ -121,7 +121,7 @@ public:
|
|
|
121
121
|
{
|
|
122
122
|
return getType(SVFUtil::getCallee(inst)) == CK_FREE;
|
|
123
123
|
}
|
|
124
|
-
inline bool isMemDealloc(const
|
|
124
|
+
inline bool isMemDealloc(const CallICFGNode* cs) const
|
|
125
125
|
{
|
|
126
126
|
return isMemDealloc(cs->getCallSite());
|
|
127
127
|
}
|
|
@@ -137,7 +137,7 @@ public:
|
|
|
137
137
|
{
|
|
138
138
|
return getType(SVFUtil::getCallee(inst)) == CK_FOPEN;
|
|
139
139
|
}
|
|
140
|
-
inline bool isFOpen(const
|
|
140
|
+
inline bool isFOpen(const CallICFGNode* cs) const
|
|
141
141
|
{
|
|
142
142
|
return isFOpen(cs->getCallSite());
|
|
143
143
|
}
|
|
@@ -153,7 +153,7 @@ public:
|
|
|
153
153
|
{
|
|
154
154
|
return getType(SVFUtil::getCallee(inst)) == CK_FCLOSE;
|
|
155
155
|
}
|
|
156
|
-
inline bool isFClose(const
|
|
156
|
+
inline bool isFClose(const CallICFGNode* cs) const
|
|
157
157
|
{
|
|
158
158
|
return isFClose(cs->getCallSite());
|
|
159
159
|
}
|
|
@@ -57,7 +57,7 @@ public:
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/// Add ActualParmVFGNode
|
|
60
|
-
inline void addActualParmVFGNode(const PAGNode* pagNode, const
|
|
60
|
+
inline void addActualParmVFGNode(const PAGNode* pagNode, const CallICFGNode* cs)
|
|
61
61
|
{
|
|
62
62
|
svfg->addActualParmVFGNode(pagNode, cs);
|
|
63
63
|
}
|
|
@@ -53,7 +53,7 @@ public:
|
|
|
53
53
|
typedef CxtDPItem DPIm;
|
|
54
54
|
typedef Set<DPIm> DPImSet; ///< dpitem set
|
|
55
55
|
typedef Map<const SVFGNode*, DPImSet> SVFGNodeToDPItemsMap; ///< map a SVFGNode to its visited dpitems
|
|
56
|
-
typedef Set<const
|
|
56
|
+
typedef Set<const CallICFGNode*> CallSiteSet;
|
|
57
57
|
typedef NodeBS SVFGNodeBS;
|
|
58
58
|
typedef ProgSlice::VFWorkList WorkList;
|
|
59
59
|
|
|
@@ -69,7 +69,7 @@ private:
|
|
|
69
69
|
void connectGlobalToProgEntry(SVFModule* svfModule);
|
|
70
70
|
|
|
71
71
|
/// Add/Get an inter block ICFGNode
|
|
72
|
-
|
|
72
|
+
InterICFGNode* getOrAddInterBlockICFGNode(const Instruction* inst);
|
|
73
73
|
|
|
74
74
|
/// Add/Get a basic block ICFGNode
|
|
75
75
|
inline ICFGNode* getOrAddBlockICFGNode(const Instruction* inst)
|
|
@@ -84,18 +84,18 @@ private:
|
|
|
84
84
|
void addICFGInterEdges(const Instruction* cs, const SVFFunction* callee);
|
|
85
85
|
|
|
86
86
|
/// Add a call node
|
|
87
|
-
inline
|
|
87
|
+
inline CallICFGNode* getOrAddCallICFGNode(const Instruction* cs)
|
|
88
88
|
{
|
|
89
89
|
return icfg->getCallBlockNode(cs);
|
|
90
90
|
}
|
|
91
91
|
/// Add a return node
|
|
92
|
-
inline
|
|
92
|
+
inline RetICFGNode* getOrAddRetICFGNode(const Instruction* cs)
|
|
93
93
|
{
|
|
94
94
|
return icfg->getRetBlockNode(cs);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
/// Add and get IntraBlock ICFGNode
|
|
98
|
-
|
|
98
|
+
IntraICFGNode* getOrAddIntraBlockICFGNode(const Instruction* inst)
|
|
99
99
|
{
|
|
100
100
|
return icfg->getIntraBlockNode(inst);
|
|
101
101
|
}
|
|
@@ -343,7 +343,7 @@ public:
|
|
|
343
343
|
/// Add Store edge
|
|
344
344
|
inline StoreStmt* addStoreEdge(NodeID src, NodeID dst)
|
|
345
345
|
{
|
|
346
|
-
|
|
346
|
+
IntraICFGNode* node;
|
|
347
347
|
if(const Instruction* inst = SVFUtil::dyn_cast<Instruction>(curVal))
|
|
348
348
|
node = pag->getICFG()->getIntraBlockNode(inst);
|
|
349
349
|
else
|
|
@@ -353,14 +353,14 @@ public:
|
|
|
353
353
|
return edge;
|
|
354
354
|
}
|
|
355
355
|
/// Add Call edge
|
|
356
|
-
inline CallPE* addCallEdge(NodeID src, NodeID dst, const
|
|
356
|
+
inline CallPE* addCallEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
357
357
|
{
|
|
358
358
|
CallPE *edge = pag->addCallPE(src, dst, cs);
|
|
359
359
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
360
360
|
return edge;
|
|
361
361
|
}
|
|
362
362
|
/// Add Return edge
|
|
363
|
-
inline RetPE* addRetEdge(NodeID src, NodeID dst, const
|
|
363
|
+
inline RetPE* addRetEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
364
364
|
{
|
|
365
365
|
RetPE *edge = pag->addRetPE(src, dst, cs);
|
|
366
366
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
@@ -388,14 +388,14 @@ public:
|
|
|
388
388
|
return edge;
|
|
389
389
|
}
|
|
390
390
|
/// Add Thread fork edge for parameter passing
|
|
391
|
-
inline TDForkPE* addThreadForkEdge(NodeID src, NodeID dst, const
|
|
391
|
+
inline TDForkPE* addThreadForkEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
392
392
|
{
|
|
393
393
|
TDForkPE *edge = pag->addThreadForkPE(src, dst, cs);
|
|
394
394
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
395
395
|
return edge;
|
|
396
396
|
}
|
|
397
397
|
/// Add Thread join edge for parameter passing
|
|
398
|
-
inline TDJoinPE* addThreadJoinEdge(NodeID src, NodeID dst, const
|
|
398
|
+
inline TDJoinPE* addThreadJoinEdge(NodeID src, NodeID dst, const CallICFGNode* cs)
|
|
399
399
|
{
|
|
400
400
|
TDJoinPE *edge = pag->addThreadJoinPE(src, dst, cs);
|
|
401
401
|
setCurrentBBAndValueForPAGEdge(edge);
|
|
@@ -27,6 +27,9 @@ public:
|
|
|
27
27
|
/// If [****...*****] is the space of unsigned integers, we allocate as,
|
|
28
28
|
/// [ssssooooooo...vvvvvvv] (o = object, v = value, s = special).
|
|
29
29
|
DENSE,
|
|
30
|
+
/// Like dense, but with order flipped:
|
|
31
|
+
/// [ssssvvvvvvv...ooooooo]
|
|
32
|
+
REVERSE_DENSE,
|
|
30
33
|
/// Allocate objects objects and values sequentially, intermixed.
|
|
31
34
|
SEQ,
|
|
32
35
|
/// Allocate values and objects as they come in with a single counter.
|