svf-lib 1.0.787 → 1.0.788
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/lib/libSvf.a +0 -0
- package/SVF-linux/include/DDA/ContextDDA.h +3 -3
- package/SVF-linux/include/DDA/DDAClient.h +2 -2
- package/SVF-linux/include/DDA/DDAVFSolver.h +2 -2
- package/SVF-linux/include/DDA/FlowDDA.h +2 -2
- package/SVF-linux/include/Graphs/ICFG.h +32 -32
- package/SVF-linux/include/Graphs/ICFGNode.h +33 -33
- package/SVF-linux/include/Graphs/ICFGStat.h +11 -11
- package/SVF-linux/include/Graphs/PTACallGraph.h +19 -19
- package/SVF-linux/include/Graphs/SVFG.h +16 -16
- package/SVF-linux/include/Graphs/SVFGNode.h +14 -14
- package/SVF-linux/include/Graphs/SVFGOPT.h +1 -1
- package/SVF-linux/include/Graphs/ThreadCallGraph.h +25 -25
- package/SVF-linux/include/Graphs/VFG.h +10 -10
- package/SVF-linux/include/Graphs/VFGNode.h +8 -8
- package/SVF-linux/include/MSSA/MSSAMuChi.h +6 -6
- package/SVF-linux/include/MSSA/MemRegion.h +24 -24
- package/SVF-linux/include/MSSA/MemSSA.h +10 -10
- package/SVF-linux/include/MTA/LockResultValidator.h +2 -2
- package/SVF-linux/include/MTA/MHP.h +4 -4
- package/SVF-linux/include/MTA/PCG.h +1 -1
- package/SVF-linux/include/MTA/TCT.h +2 -2
- package/SVF-linux/include/MemoryModel/PointerAnalysis.h +12 -12
- package/SVF-linux/include/MemoryModel/SVFIR.h +21 -21
- package/SVF-linux/include/MemoryModel/SVFStatements.h +11 -11
- package/SVF-linux/include/SABER/LeakChecker.h +4 -4
- package/SVF-linux/include/SABER/ProgSlice.h +2 -2
- package/SVF-linux/include/SABER/SaberCheckerAPI.h +4 -4
- package/SVF-linux/include/SABER/SaberSVFGBuilder.h +1 -1
- package/SVF-linux/include/SABER/SrcSnkDDA.h +1 -1
- package/SVF-linux/include/SVF-FE/ICFGBuilder.h +4 -4
- package/SVF-linux/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/package.json +1 -1
|
@@ -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);
|