svf-lib 1.0.1820 → 1.0.1822
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/svf/libSvfCore.a +0 -0
- package/SVF-linux/Release-build/svf-llvm/libSvfLLVM.a +0 -0
- package/SVF-linux/svf/include/SVFIR/SVFType.h +27 -7
- package/SVF-osx/Release-build/svf/libSvfCore.a +0 -0
- package/SVF-osx/Release-build/svf-llvm/libSvfLLVM.a +0 -0
- package/SVF-osx/svf/include/AbstractExecution/BoundedZ3Expr.h +2 -0
- package/SVF-osx/svf/include/AbstractExecution/CFBasicBlockGWTO.h +83 -0
- package/SVF-osx/svf/include/AbstractExecution/ConsExeState.h +8 -0
- package/SVF-osx/svf/include/AbstractExecution/ExeState.h +8 -0
- package/SVF-osx/svf/include/AbstractExecution/ICFGWTO.h +78 -0
- package/SVF-osx/svf/include/AbstractExecution/IntervalExeState.h +7 -0
- package/SVF-osx/svf/include/AbstractExecution/IntervalValue.h +3 -0
- package/SVF-osx/svf/include/AbstractExecution/NumericLiteral.h +2 -0
- package/SVF-osx/svf/include/AbstractExecution/RelExeState.h +1 -0
- package/SVF-osx/svf/include/AbstractExecution/RelationSolver.h +1 -0
- package/SVF-osx/svf/include/AbstractExecution/SVFIR2ConsExeState.h +1 -0
- package/SVF-osx/svf/include/AbstractExecution/SVFIR2ItvExeState.h +4 -0
- package/SVF-osx/svf/include/AbstractExecution/SingleAbsValue.h +2 -0
- package/SVF-osx/svf/include/AbstractExecution/SymState.h +4 -0
- package/SVF-osx/svf/include/CFL/CFGrammar.h +4 -0
- package/SVF-osx/svf/include/CFL/CFLAlias.h +1 -0
- package/SVF-osx/svf/include/CFL/CFLGraphBuilder.h +1 -0
- package/SVF-osx/svf/include/CFL/CFLStat.h +1 -0
- package/SVF-osx/svf/include/CFL/CFLVF.h +1 -0
- package/SVF-osx/svf/include/DDA/ContextDDA.h +1 -0
- package/SVF-osx/svf/include/DDA/DDAClient.h +5 -0
- package/SVF-osx/svf/include/DDA/DDAPass.h +3 -2
- package/SVF-osx/svf/include/DDA/DDAVFSolver.h +2 -2
- package/SVF-osx/svf/include/FastCluster/fastcluster.h +1 -0
- package/SVF-osx/svf/include/Graphs/CDG.h +3 -0
- package/SVF-osx/svf/include/Graphs/CFBasicBlockG.h +3 -0
- package/SVF-osx/svf/include/Graphs/CFLGraph.h +1 -0
- package/SVF-osx/svf/include/Graphs/CHG.h +4 -2
- package/SVF-osx/svf/include/Graphs/ConsGEdge.h +5 -0
- package/SVF-osx/svf/include/Graphs/ConsGNode.h +1 -0
- package/SVF-osx/svf/include/Graphs/DOTGraphTraits.h +1 -0
- package/SVF-osx/svf/include/Graphs/GenericGraph.h +1 -0
- package/SVF-osx/svf/include/Graphs/GraphPrinter.h +3 -0
- package/SVF-osx/svf/include/Graphs/GraphTraits.h +2 -2
- package/SVF-osx/svf/include/Graphs/ICFG.h +1 -0
- package/SVF-osx/svf/include/Graphs/ICFGNode.h +3 -0
- package/SVF-osx/svf/include/Graphs/ICFGStat.h +2 -0
- package/SVF-osx/svf/include/Graphs/IRGraph.h +1 -0
- package/SVF-osx/svf/include/Graphs/PTACallGraph.h +3 -0
- package/SVF-osx/svf/include/Graphs/SCC.h +354 -0
- package/SVF-osx/svf/include/Graphs/SVFG.h +2 -0
- package/SVF-osx/svf/include/Graphs/SVFGEdge.h +1 -0
- package/SVF-osx/svf/include/Graphs/SVFGNode.h +7 -0
- package/SVF-osx/svf/include/Graphs/SVFGOPT.h +3 -0
- package/SVF-osx/svf/include/Graphs/SVFGStat.h +3 -1
- package/SVF-osx/svf/include/Graphs/ThreadCallGraph.h +3 -0
- package/SVF-osx/svf/include/Graphs/VFG.h +2 -0
- package/SVF-osx/svf/include/Graphs/VFGEdge.h +3 -0
- package/SVF-osx/svf/include/Graphs/VFGNode.h +8 -0
- package/SVF-osx/svf/include/Graphs/WTO.h +859 -0
- package/SVF-osx/svf/include/MSSA/MSSAMuChi.h +4 -0
- package/SVF-osx/svf/include/MSSA/MemPartition.h +1 -0
- package/SVF-osx/svf/include/MSSA/MemRegion.h +4 -3
- package/SVF-osx/svf/include/MSSA/MemSSA.h +1 -0
- package/SVF-osx/svf/include/MTA/FSMPTA.h +6 -0
- package/SVF-osx/svf/include/MTA/LockAnalysis.h +5 -0
- package/SVF-osx/svf/include/MTA/MHP.h +3 -0
- package/SVF-osx/svf/include/MTA/MTA.h +1 -0
- package/SVF-osx/svf/include/MTA/MTAResultValidator.h +2 -0
- package/SVF-osx/svf/include/MTA/TCT.h +3 -2
- package/SVF-osx/svf/include/MemoryModel/AbstractPointsToDS.h +2 -0
- package/SVF-osx/svf/include/MemoryModel/AccessPath.h +5 -0
- package/SVF-osx/svf/include/MemoryModel/ConditionalPT.h +5 -0
- package/SVF-osx/svf/include/MemoryModel/PersistentPointsToDS.h +1 -0
- package/SVF-osx/svf/include/MemoryModel/PointerAnalysis.h +6 -5
- package/SVF-osx/svf/include/MemoryModel/PointerAnalysisImpl.h +1 -0
- package/SVF-osx/svf/include/MemoryModel/PointsTo.h +1 -0
- package/SVF-osx/svf/include/SABER/DoubleFreeChecker.h +1 -0
- package/SVF-osx/svf/include/SABER/ProgSlice.h +1 -0
- package/SVF-osx/svf/include/SABER/SaberCondAllocator.h +4 -0
- package/SVF-osx/svf/include/SABER/SaberSVFGBuilder.h +1 -0
- package/SVF-osx/svf/include/SVFIR/SVFIR.h +2 -0
- package/SVF-osx/svf/include/SVFIR/SVFStatements.h +2 -0
- package/SVF-osx/svf/include/SVFIR/SVFType.h +2 -0
- package/SVF-osx/svf/include/SVFIR/SVFValue.h +3 -0
- package/SVF-osx/svf/include/SVFIR/SVFVariables.h +5 -0
- package/SVF-osx/svf/include/SVFIR/SymbolTableInfo.h +5 -0
- package/SVF-osx/svf/include/Util/CDGBuilder.h +8 -0
- package/SVF-osx/svf/include/Util/CallGraphBuilder.h +2 -0
- package/SVF-osx/svf/include/Util/Casting.h +2 -1
- package/SVF-osx/svf/include/Util/CommandLine.h +1 -0
- package/SVF-osx/svf/include/Util/CxtStmt.h +4 -0
- package/SVF-osx/svf/include/Util/DPItem.h +2 -0
- package/SVF-osx/svf/include/Util/NodeIDAllocator.h +2 -2
- package/SVF-osx/svf/include/Util/PTAStat.h +1 -0
- package/SVF-osx/svf/include/Util/SVFBugReport.h +1 -0
- package/SVF-osx/svf/include/Util/SVFStat.h +1 -0
- package/SVF-osx/svf/include/Util/SVFUtil.h +1 -0
- package/SVF-osx/svf/include/Util/ThreadAPI.h +1 -0
- package/SVF-osx/svf/include/Util/WorkList.h +1 -0
- package/SVF-osx/svf/include/Util/Z3Expr.h +4 -0
- package/SVF-osx/svf/include/Util/iterator.h +2 -2
- package/SVF-osx/svf/include/WPA/Andersen.h +6 -0
- package/SVF-osx/svf/include/WPA/AndersenPWC.h +3 -0
- package/SVF-osx/svf/include/WPA/CSC.h +3 -3
- package/SVF-osx/svf/include/WPA/WPAFSSolver.h +5 -0
- package/SVF-osx/svf/include/WPA/WPAPass.h +2 -0
- package/SVF-osx/svf/include/WPA/WPASolver.h +2 -0
- package/SVF-osx/svf/include/WPA/WPAStat.h +1 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/BreakConstantExpr.h +1 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/DCHG.h +1 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/GEPTypeBridgeIterator.h +3 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMModule.h +1 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMUtil.h +1 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +1 -0
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h +1 -0
- package/package.json +1 -1
|
@@ -131,6 +131,7 @@ public:
|
|
|
131
131
|
virtual const std::string toString() const;
|
|
132
132
|
};
|
|
133
133
|
|
|
134
|
+
|
|
134
135
|
/*
|
|
135
136
|
* SVFG Node stands for return mu node (address-taken variables)
|
|
136
137
|
*/
|
|
@@ -172,6 +173,7 @@ public:
|
|
|
172
173
|
virtual const std::string toString() const;
|
|
173
174
|
};
|
|
174
175
|
|
|
176
|
+
|
|
175
177
|
/*
|
|
176
178
|
* SVFG Node stands for callsite mu node (address-taken variables)
|
|
177
179
|
*/
|
|
@@ -200,6 +202,7 @@ public:
|
|
|
200
202
|
return ver;
|
|
201
203
|
}
|
|
202
204
|
|
|
205
|
+
|
|
203
206
|
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
204
207
|
//@{
|
|
205
208
|
static inline bool classof(const ActualINSVFGNode *)
|
|
@@ -219,6 +222,7 @@ public:
|
|
|
219
222
|
virtual const std::string toString() const;
|
|
220
223
|
};
|
|
221
224
|
|
|
225
|
+
|
|
222
226
|
/*
|
|
223
227
|
* SVFG Node stands for callsite chi node (address-taken variables)
|
|
224
228
|
*/
|
|
@@ -265,6 +269,7 @@ public:
|
|
|
265
269
|
virtual const std::string toString() const;
|
|
266
270
|
};
|
|
267
271
|
|
|
272
|
+
|
|
268
273
|
/*
|
|
269
274
|
* SVFG Node stands for a memory ssa phi node or formalIn or ActualOut
|
|
270
275
|
*/
|
|
@@ -392,6 +397,7 @@ public:
|
|
|
392
397
|
virtual const std::string toString() const;
|
|
393
398
|
};
|
|
394
399
|
|
|
400
|
+
|
|
395
401
|
/*
|
|
396
402
|
* Inter MSSA PHI (formalIN/ActualOUT)
|
|
397
403
|
*/
|
|
@@ -501,6 +507,7 @@ private:
|
|
|
501
507
|
const Version version;
|
|
502
508
|
};
|
|
503
509
|
|
|
510
|
+
|
|
504
511
|
} // End namespace SVF
|
|
505
512
|
|
|
506
513
|
#endif /* INCLUDE_MSSA_SVFGNODE_H_ */
|
|
@@ -32,9 +32,11 @@
|
|
|
32
32
|
*
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
|
+
|
|
35
36
|
#ifndef SVFGOPT_H_
|
|
36
37
|
#define SVFGOPT_H_
|
|
37
38
|
|
|
39
|
+
|
|
38
40
|
#include "Graphs/SVFG.h"
|
|
39
41
|
#include "Util/WorkList.h"
|
|
40
42
|
|
|
@@ -343,6 +345,7 @@ private:
|
|
|
343
345
|
}
|
|
344
346
|
//@}
|
|
345
347
|
|
|
348
|
+
|
|
346
349
|
NodeIDToNodeIDMap actualInToDefMap; ///< map actual-in to its def-site node
|
|
347
350
|
NodeIDToNodeIDMap formalOutToDefMap; ///< map formal-out to its def-site node
|
|
348
351
|
NodeBS defNodes; ///< preserved def nodes of formal-in/actual-out
|
|
@@ -32,12 +32,13 @@
|
|
|
32
32
|
*
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
|
+
|
|
35
36
|
#ifndef SVFGSTAT_H_
|
|
36
37
|
#define SVFGSTAT_H_
|
|
37
38
|
|
|
38
39
|
#include "Graphs/SVFG.h"
|
|
40
|
+
#include "SCC.h"
|
|
39
41
|
#include "Util/PTAStat.h"
|
|
40
|
-
#include "Util/SCC.h"
|
|
41
42
|
|
|
42
43
|
namespace SVF
|
|
43
44
|
{
|
|
@@ -87,6 +88,7 @@ private:
|
|
|
87
88
|
MemSSA* mssa;
|
|
88
89
|
};
|
|
89
90
|
|
|
91
|
+
|
|
90
92
|
class SVFGStat : public PTAStat
|
|
91
93
|
{
|
|
92
94
|
public:
|
|
@@ -153,6 +153,7 @@ public:
|
|
|
153
153
|
typedef GenericNode<PTACallGraphNode, HareParForEdge>::GEdgeSetTy ParForEdgeSet;
|
|
154
154
|
};
|
|
155
155
|
|
|
156
|
+
|
|
156
157
|
/*!
|
|
157
158
|
* Thread sensitive call graph
|
|
158
159
|
*/
|
|
@@ -196,6 +197,7 @@ public:
|
|
|
196
197
|
/// Update join edge using pointer analysis results
|
|
197
198
|
void updateJoinEdge(PointerAnalysis* pta);
|
|
198
199
|
|
|
200
|
+
|
|
199
201
|
/// Get call graph edge via call instruction
|
|
200
202
|
//@{
|
|
201
203
|
/// whether this call instruction has a valid call graph edge
|
|
@@ -360,6 +362,7 @@ public:
|
|
|
360
362
|
void addIndirectParForEdge(const CallICFGNode* cs, const SVFFunction* callee);
|
|
361
363
|
//@}
|
|
362
364
|
|
|
365
|
+
|
|
363
366
|
/// map call instruction to its CallGraphEdge map
|
|
364
367
|
inline void addThreadForkEdgeSetMap(const CallICFGNode* cs, ThreadForkEdge* edge)
|
|
365
368
|
{
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
#ifndef INCLUDE_UTIL_VFG_H_
|
|
31
31
|
#define INCLUDE_UTIL_VFG_H_
|
|
32
32
|
|
|
33
|
+
|
|
33
34
|
#include "SVFIR/SVFIR.h"
|
|
34
35
|
#include "Graphs/PTACallGraph.h"
|
|
35
36
|
#include "Graphs/VFGNode.h"
|
|
@@ -82,6 +83,7 @@ public:
|
|
|
82
83
|
typedef Set<const VFGNode*> GlobalVFGNodeSet;
|
|
83
84
|
typedef Set<const PAGNode*> PAGNodeSet;
|
|
84
85
|
|
|
86
|
+
|
|
85
87
|
protected:
|
|
86
88
|
NodeID totalVFGNode;
|
|
87
89
|
PAGNodeToDefMapTy PAGNodeToDefMap; ///< map a pag node to its definition SVG node
|
|
@@ -134,6 +134,7 @@ public:
|
|
|
134
134
|
virtual const std::string toString() const;
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
+
|
|
137
138
|
/*!
|
|
138
139
|
* SVFG edge representing direct value-flows
|
|
139
140
|
*/
|
|
@@ -168,6 +169,7 @@ public:
|
|
|
168
169
|
virtual const std::string toString() const;
|
|
169
170
|
};
|
|
170
171
|
|
|
172
|
+
|
|
171
173
|
/*!
|
|
172
174
|
* Intra SVFG edge representing direct intra-procedural value-flows
|
|
173
175
|
*/
|
|
@@ -202,6 +204,7 @@ public:
|
|
|
202
204
|
virtual const std::string toString() const;
|
|
203
205
|
};
|
|
204
206
|
|
|
207
|
+
|
|
205
208
|
/*!
|
|
206
209
|
* SVFG call edge representing direct value-flows from a caller to its callee at a callsite
|
|
207
210
|
*/
|
|
@@ -316,6 +316,7 @@ public:
|
|
|
316
316
|
const std::string toString() const override;
|
|
317
317
|
};
|
|
318
318
|
|
|
319
|
+
|
|
319
320
|
/*!
|
|
320
321
|
* VFGNode for compare instruction, e.g., bool b = (a!=c);
|
|
321
322
|
*/
|
|
@@ -387,6 +388,7 @@ public:
|
|
|
387
388
|
const std::string toString() const override;
|
|
388
389
|
};
|
|
389
390
|
|
|
391
|
+
|
|
390
392
|
/*!
|
|
391
393
|
* VFGNode for binary operator instructions, e.g., a = b + c;
|
|
392
394
|
*/
|
|
@@ -701,6 +703,7 @@ public:
|
|
|
701
703
|
const std::string toString() const override;
|
|
702
704
|
};
|
|
703
705
|
|
|
706
|
+
|
|
704
707
|
/*
|
|
705
708
|
* Intra LLVM PHI Node
|
|
706
709
|
*/
|
|
@@ -753,6 +756,7 @@ public:
|
|
|
753
756
|
const std::string toString() const override;
|
|
754
757
|
};
|
|
755
758
|
|
|
759
|
+
|
|
756
760
|
class AddrVFGNode: public StmtVFGNode
|
|
757
761
|
{
|
|
758
762
|
private:
|
|
@@ -791,6 +795,7 @@ public:
|
|
|
791
795
|
const std::string toString() const override;
|
|
792
796
|
};
|
|
793
797
|
|
|
798
|
+
|
|
794
799
|
class ArgumentVFGNode : public VFGNode
|
|
795
800
|
{
|
|
796
801
|
|
|
@@ -886,6 +891,7 @@ public:
|
|
|
886
891
|
const std::string toString() const override;
|
|
887
892
|
};
|
|
888
893
|
|
|
894
|
+
|
|
889
895
|
/*
|
|
890
896
|
* ICFG Node stands for formal parameter node (top level pointers)
|
|
891
897
|
*/
|
|
@@ -1140,6 +1146,8 @@ private:
|
|
|
1140
1146
|
const CallICFGNode* callInst;
|
|
1141
1147
|
};
|
|
1142
1148
|
|
|
1149
|
+
|
|
1150
|
+
|
|
1143
1151
|
/*!
|
|
1144
1152
|
* Dummy Definition for undef and null pointers
|
|
1145
1153
|
*/
|