svf-lib 1.0.1806 → 1.0.1807
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-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 +0 -2
- package/SVF-osx/svf/include/AbstractExecution/ConsExeState.h +0 -8
- package/SVF-osx/svf/include/AbstractExecution/ExeState.h +0 -8
- package/SVF-osx/svf/include/AbstractExecution/IntervalExeState.h +272 -107
- package/SVF-osx/svf/include/AbstractExecution/IntervalValue.h +0 -3
- package/SVF-osx/svf/include/AbstractExecution/NumericLiteral.h +0 -2
- package/SVF-osx/svf/include/AbstractExecution/RelExeState.h +0 -1
- package/SVF-osx/svf/include/AbstractExecution/RelationSolver.h +9 -10
- package/SVF-osx/svf/include/AbstractExecution/SVFIR2ConsExeState.h +0 -1
- package/SVF-osx/svf/include/AbstractExecution/SVFIR2ItvExeState.h +0 -4
- package/SVF-osx/svf/include/AbstractExecution/SingleAbsValue.h +0 -2
- package/SVF-osx/svf/include/AbstractExecution/SymState.h +0 -4
- package/SVF-osx/svf/include/AbstractExecution/WTO.h +0 -5
- package/SVF-osx/svf/include/CFL/CFGrammar.h +0 -4
- package/SVF-osx/svf/include/CFL/CFLAlias.h +0 -1
- package/SVF-osx/svf/include/CFL/CFLGraphBuilder.h +0 -1
- package/SVF-osx/svf/include/CFL/CFLStat.h +0 -1
- package/SVF-osx/svf/include/CFL/CFLVF.h +0 -1
- package/SVF-osx/svf/include/DDA/ContextDDA.h +0 -1
- package/SVF-osx/svf/include/DDA/DDAClient.h +0 -5
- package/SVF-osx/svf/include/DDA/DDAPass.h +0 -1
- package/SVF-osx/svf/include/FastCluster/fastcluster.h +0 -1
- package/SVF-osx/svf/include/Graphs/CDG.h +0 -3
- package/SVF-osx/svf/include/Graphs/CFBasicBlockG.h +0 -3
- package/SVF-osx/svf/include/Graphs/CFLGraph.h +0 -1
- package/SVF-osx/svf/include/Graphs/CHG.h +2 -4
- package/SVF-osx/svf/include/Graphs/ConsGEdge.h +0 -5
- package/SVF-osx/svf/include/Graphs/ConsGNode.h +0 -1
- package/SVF-osx/svf/include/Graphs/DOTGraphTraits.h +0 -1
- package/SVF-osx/svf/include/Graphs/GenericGraph.h +0 -1
- package/SVF-osx/svf/include/Graphs/GraphPrinter.h +0 -3
- package/SVF-osx/svf/include/Graphs/GraphTraits.h +2 -2
- package/SVF-osx/svf/include/Graphs/ICFG.h +0 -1
- package/SVF-osx/svf/include/Graphs/ICFGNode.h +0 -3
- package/SVF-osx/svf/include/Graphs/ICFGStat.h +0 -2
- package/SVF-osx/svf/include/Graphs/IRGraph.h +0 -1
- package/SVF-osx/svf/include/Graphs/PTACallGraph.h +0 -3
- package/SVF-osx/svf/include/Graphs/SVFG.h +0 -2
- package/SVF-osx/svf/include/Graphs/SVFGEdge.h +0 -1
- package/SVF-osx/svf/include/Graphs/SVFGNode.h +0 -7
- package/SVF-osx/svf/include/Graphs/SVFGOPT.h +0 -3
- package/SVF-osx/svf/include/Graphs/SVFGStat.h +0 -2
- package/SVF-osx/svf/include/Graphs/ThreadCallGraph.h +0 -3
- package/SVF-osx/svf/include/Graphs/VFG.h +0 -2
- package/SVF-osx/svf/include/Graphs/VFGEdge.h +0 -3
- package/SVF-osx/svf/include/Graphs/VFGNode.h +0 -8
- package/SVF-osx/svf/include/MSSA/MSSAMuChi.h +0 -4
- package/SVF-osx/svf/include/MSSA/MemPartition.h +0 -1
- package/SVF-osx/svf/include/MSSA/MemRegion.h +0 -1
- package/SVF-osx/svf/include/MSSA/MemSSA.h +0 -1
- package/SVF-osx/svf/include/MTA/FSMPTA.h +0 -6
- package/SVF-osx/svf/include/MTA/LockAnalysis.h +0 -5
- package/SVF-osx/svf/include/MTA/MHP.h +0 -3
- package/SVF-osx/svf/include/MTA/MTA.h +0 -1
- package/SVF-osx/svf/include/MTA/MTAResultValidator.h +0 -2
- package/SVF-osx/svf/include/MTA/TCT.h +0 -1
- package/SVF-osx/svf/include/MemoryModel/AbstractPointsToDS.h +0 -2
- package/SVF-osx/svf/include/MemoryModel/AccessPath.h +0 -5
- package/SVF-osx/svf/include/MemoryModel/ConditionalPT.h +0 -5
- package/SVF-osx/svf/include/MemoryModel/PersistentPointsToDS.h +0 -1
- package/SVF-osx/svf/include/MemoryModel/PointerAnalysis.h +0 -1
- package/SVF-osx/svf/include/MemoryModel/PointerAnalysisImpl.h +0 -1
- package/SVF-osx/svf/include/MemoryModel/PointsTo.h +0 -1
- package/SVF-osx/svf/include/SABER/DoubleFreeChecker.h +0 -1
- package/SVF-osx/svf/include/SABER/ProgSlice.h +0 -1
- package/SVF-osx/svf/include/SABER/SaberCondAllocator.h +0 -4
- package/SVF-osx/svf/include/SABER/SaberSVFGBuilder.h +0 -1
- package/SVF-osx/svf/include/SVFIR/SVFIR.h +0 -2
- package/SVF-osx/svf/include/SVFIR/SVFStatements.h +0 -2
- package/SVF-osx/svf/include/SVFIR/SVFType.h +0 -2
- package/SVF-osx/svf/include/SVFIR/SVFValue.h +0 -3
- package/SVF-osx/svf/include/SVFIR/SVFVariables.h +0 -5
- package/SVF-osx/svf/include/SVFIR/SymbolTableInfo.h +0 -5
- package/SVF-osx/svf/include/Util/CDGBuilder.h +0 -8
- package/SVF-osx/svf/include/Util/CallGraphBuilder.h +0 -2
- package/SVF-osx/svf/include/Util/Casting.h +1 -2
- package/SVF-osx/svf/include/Util/CommandLine.h +0 -1
- package/SVF-osx/svf/include/Util/CxtStmt.h +0 -4
- package/SVF-osx/svf/include/Util/DPItem.h +0 -2
- package/SVF-osx/svf/include/Util/NodeIDAllocator.h +2 -2
- package/SVF-osx/svf/include/Util/SCC.h +0 -2
- package/SVF-osx/svf/include/Util/SVFBugReport.h +0 -1
- package/SVF-osx/svf/include/Util/SVFStat.h +0 -1
- package/SVF-osx/svf/include/Util/SVFUtil.h +0 -1
- package/SVF-osx/svf/include/Util/ThreadAPI.h +0 -1
- package/SVF-osx/svf/include/Util/WorkList.h +0 -1
- package/SVF-osx/svf/include/Util/Z3Expr.h +0 -4
- package/SVF-osx/svf/include/Util/iterator.h +2 -2
- package/SVF-osx/svf/include/WPA/Andersen.h +0 -6
- package/SVF-osx/svf/include/WPA/AndersenPWC.h +0 -3
- package/SVF-osx/svf/include/WPA/WPAFSSolver.h +0 -5
- package/SVF-osx/svf/include/WPA/WPAPass.h +0 -2
- package/SVF-osx/svf/include/WPA/WPASolver.h +0 -2
- package/SVF-osx/svf/include/WPA/WPAStat.h +0 -1
- package/SVF-osx/svf-llvm/include/SVF-LLVM/BreakConstantExpr.h +0 -1
- package/SVF-osx/svf-llvm/include/SVF-LLVM/DCHG.h +0 -1
- package/SVF-osx/svf-llvm/include/SVF-LLVM/GEPTypeBridgeIterator.h +0 -3
- package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMModule.h +0 -1
- package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMUtil.h +0 -1
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +0 -1
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h +0 -1
- package/package.json +1 -1
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
#ifndef INCLUDE_UTIL_CASTING_H_
|
|
9
9
|
#define INCLUDE_UTIL_CASTING_H_
|
|
10
10
|
|
|
11
|
-
|
|
12
11
|
//===- llvm/Support/Casting.h - Allow flexible, checked, casts --*- C++ -*-===//
|
|
13
12
|
//
|
|
14
13
|
// The LLVM Compiler Infrastructure
|
|
@@ -382,7 +381,7 @@ inline typename cast_retty<X, Y *>::ret_type cast(Y *Val)
|
|
|
382
381
|
|
|
383
382
|
template <class X, class Y>
|
|
384
383
|
inline typename cast_retty<X, std::unique_ptr<Y>>::ret_type
|
|
385
|
-
cast(std::unique_ptr<Y> &&Val)
|
|
384
|
+
cast(std::unique_ptr<Y> &&Val)
|
|
386
385
|
{
|
|
387
386
|
assert(SVFUtil::isa<X>(Val.get()) && "cast<Ty>() argument of incompatible type!");
|
|
388
387
|
using ret_type = typename cast_retty<X, std::unique_ptr<Y>>::ret_type;
|
|
@@ -116,7 +116,6 @@ protected:
|
|
|
116
116
|
const SVFInstruction* inst;
|
|
117
117
|
};
|
|
118
118
|
|
|
119
|
-
|
|
120
119
|
/*!
|
|
121
120
|
* Context-sensitive thread statement <t,c,s>
|
|
122
121
|
*/
|
|
@@ -181,7 +180,6 @@ private:
|
|
|
181
180
|
NodeID tid;
|
|
182
181
|
};
|
|
183
182
|
|
|
184
|
-
|
|
185
183
|
/*!
|
|
186
184
|
* Context-sensitive thread <c,t>
|
|
187
185
|
*/
|
|
@@ -299,7 +297,6 @@ protected:
|
|
|
299
297
|
bool incycle;
|
|
300
298
|
};
|
|
301
299
|
|
|
302
|
-
|
|
303
300
|
/*!
|
|
304
301
|
* Context-sensitive procedure <c,m>
|
|
305
302
|
* c represent current context
|
|
@@ -385,7 +382,6 @@ protected:
|
|
|
385
382
|
const SVFFunction* fun;
|
|
386
383
|
};
|
|
387
384
|
|
|
388
|
-
|
|
389
385
|
/*!
|
|
390
386
|
* Context-sensitive procedure <t,c,m>
|
|
391
387
|
* t represent current thread during traversing
|
|
@@ -192,8 +192,8 @@ public:
|
|
|
192
192
|
|
|
193
193
|
// From all the candidates, returns the best mapping for pointsToSets (points-to set -> # occurrences).
|
|
194
194
|
static inline std::pair<hclust_fast_methods, std::vector<NodeID>> determineBestMapping(
|
|
195
|
-
|
|
196
|
-
|
|
195
|
+
const std::vector<std::pair<hclust_fast_methods, std::vector<NodeID>>> &candidates,
|
|
196
|
+
Map<PointsTo, unsigned> pointsToSets, const std::string &evalSubtitle, double &evalTime);
|
|
197
197
|
|
|
198
198
|
};
|
|
199
199
|
};
|
|
@@ -121,7 +121,6 @@ public:
|
|
|
121
121
|
_I(0)
|
|
122
122
|
{}
|
|
123
123
|
|
|
124
|
-
|
|
125
124
|
// Return a handle to the stack of nodes in topological
|
|
126
125
|
// order. This will be used to seed the initial solution
|
|
127
126
|
// and improve efficiency.
|
|
@@ -144,7 +143,6 @@ public:
|
|
|
144
143
|
return rep!= UINT_MAX ? rep : n ;
|
|
145
144
|
}
|
|
146
145
|
|
|
147
|
-
|
|
148
146
|
/// whether the node is in a cycle
|
|
149
147
|
inline bool isInCycle(NodeID n) const
|
|
150
148
|
{
|
|
@@ -93,7 +93,6 @@ public:
|
|
|
93
93
|
/// release z3 solver
|
|
94
94
|
static void releaseSolver();
|
|
95
95
|
|
|
96
|
-
|
|
97
96
|
/// null expression
|
|
98
97
|
static z3::expr nullExpr()
|
|
99
98
|
{
|
|
@@ -273,7 +272,6 @@ public:
|
|
|
273
272
|
/// output Z3 expression as a string
|
|
274
273
|
static std::string dumpStr(const Z3Expr &z3Expr);
|
|
275
274
|
|
|
276
|
-
|
|
277
275
|
/// get the number of subexpression of a Z3 expression
|
|
278
276
|
static u32_t getExprSize(const Z3Expr &z3Expr);
|
|
279
277
|
|
|
@@ -283,7 +281,6 @@ public:
|
|
|
283
281
|
return getContext().bool_val(true);
|
|
284
282
|
}
|
|
285
283
|
|
|
286
|
-
|
|
287
284
|
/// Return the unique false condition
|
|
288
285
|
static inline Z3Expr getFalseCond()
|
|
289
286
|
{
|
|
@@ -315,4 +312,3 @@ struct std::hash<SVF::Z3Expr>
|
|
|
315
312
|
};
|
|
316
313
|
|
|
317
314
|
#endif //Z3_EXAMPLE_Z3EXPR_H
|
|
318
|
-
|
|
@@ -352,7 +352,7 @@ struct pointee_iter
|
|
|
352
352
|
template <typename RangeT, typename WrappedIteratorT =
|
|
353
353
|
decltype(std::begin(std::declval<RangeT>()))>
|
|
354
354
|
iter_range<pointee_iter<WrappedIteratorT>>
|
|
355
|
-
make_pointee_range(RangeT &&Range)
|
|
355
|
+
make_pointee_range(RangeT &&Range)
|
|
356
356
|
{
|
|
357
357
|
using PointeeIteratorT = pointee_iter<WrappedIteratorT>;
|
|
358
358
|
return make_range(PointeeIteratorT(std::begin(std::forward<RangeT>(Range))),
|
|
@@ -388,7 +388,7 @@ public:
|
|
|
388
388
|
template <typename RangeT, typename WrappedIteratorT =
|
|
389
389
|
decltype(std::begin(std::declval<RangeT>()))>
|
|
390
390
|
iter_range<pointer_iterator<WrappedIteratorT>>
|
|
391
|
-
make_pointer_range(RangeT &&Range)
|
|
391
|
+
make_pointer_range(RangeT &&Range)
|
|
392
392
|
{
|
|
393
393
|
using PointerIteratorT = pointer_iterator<WrappedIteratorT>;
|
|
394
394
|
return make_range(PointerIteratorT(std::begin(std::forward<RangeT>(Range))),
|
|
@@ -156,7 +156,6 @@ protected:
|
|
|
156
156
|
class Andersen: public AndersenBase
|
|
157
157
|
{
|
|
158
158
|
|
|
159
|
-
|
|
160
159
|
public:
|
|
161
160
|
typedef SCCDetection<ConstraintGraph*> CGSCC;
|
|
162
161
|
typedef OrderedMap<CallSite, NodeID> CallSite2DummyValPN;
|
|
@@ -232,7 +231,6 @@ public:
|
|
|
232
231
|
return getPTDataTy()->unionPts(id,ptd);
|
|
233
232
|
}
|
|
234
233
|
|
|
235
|
-
|
|
236
234
|
void dumpTopLevelPtsTo();
|
|
237
235
|
|
|
238
236
|
void setDetectPWC(bool flag)
|
|
@@ -341,8 +339,6 @@ protected:
|
|
|
341
339
|
/// SCC detection
|
|
342
340
|
virtual NodeStack& SCCDetect();
|
|
343
341
|
|
|
344
|
-
|
|
345
|
-
|
|
346
342
|
/// Sanitize pts for field insensitive objects
|
|
347
343
|
void sanitizePts()
|
|
348
344
|
{
|
|
@@ -376,8 +372,6 @@ protected:
|
|
|
376
372
|
virtual void cluster(void) const;
|
|
377
373
|
};
|
|
378
374
|
|
|
379
|
-
|
|
380
|
-
|
|
381
375
|
/**
|
|
382
376
|
* Wave propagation with diff points-to set.
|
|
383
377
|
*/
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
#ifndef PROJECT_ANDERSENSFR_H
|
|
31
31
|
#define PROJECT_ANDERSENSFR_H
|
|
32
32
|
|
|
33
|
-
|
|
34
33
|
#include "WPA/Andersen.h"
|
|
35
34
|
#include "WPA/CSC.h"
|
|
36
35
|
#include "MemoryModel/PointsTo.h"
|
|
@@ -94,8 +93,6 @@ protected:
|
|
|
94
93
|
|
|
95
94
|
};
|
|
96
95
|
|
|
97
|
-
|
|
98
|
-
|
|
99
96
|
/*!
|
|
100
97
|
* Selective Cycle Detection with Stride-based Field Representation
|
|
101
98
|
*/
|
|
@@ -32,7 +32,6 @@
|
|
|
32
32
|
*
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
|
-
|
|
36
35
|
#ifndef WPAFSSOLVER_H_
|
|
37
36
|
#define WPAFSSOLVER_H_
|
|
38
37
|
|
|
@@ -98,8 +97,6 @@ protected:
|
|
|
98
97
|
}
|
|
99
98
|
};
|
|
100
99
|
|
|
101
|
-
|
|
102
|
-
|
|
103
100
|
/*!
|
|
104
101
|
* Solver based on SCC cycles.
|
|
105
102
|
*/
|
|
@@ -171,8 +168,6 @@ protected:
|
|
|
171
168
|
NodeID curSCCID; ///< index of current SCC.
|
|
172
169
|
};
|
|
173
170
|
|
|
174
|
-
|
|
175
|
-
|
|
176
171
|
/*!
|
|
177
172
|
* Only solve nodes which need to be analyzed.
|
|
178
173
|
*/
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
//
|
|
21
21
|
//===----------------------------------------------------------------------===//
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
/*
|
|
25
24
|
* WPASolver.h
|
|
26
25
|
*
|
|
@@ -172,7 +171,6 @@ protected:
|
|
|
172
171
|
/// print out statistics for i-th iteration
|
|
173
172
|
u32_t iterationForPrintStat;
|
|
174
173
|
|
|
175
|
-
|
|
176
174
|
/// Get node on the graph
|
|
177
175
|
inline GNODE* Node(NodeID id)
|
|
178
176
|
{
|
|
@@ -447,7 +447,6 @@ private:
|
|
|
447
447
|
return nullptr;
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
-
|
|
451
450
|
/// Creates an edge between from t1 to t2.
|
|
452
451
|
DCHEdge* addEdge(const DIType* t1, const DIType* t2, DCHEdge::GEdgeKind et);
|
|
453
452
|
/// Returns the edge between t1 and t2 if it exists, returns nullptr otherwise.
|
|
@@ -100,7 +100,6 @@ public:
|
|
|
100
100
|
return const_cast<Value*>(&**OpIt);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
|
|
104
103
|
generic_bridge_gep_type_iterator& operator++()
|
|
105
104
|
{
|
|
106
105
|
if ( CurTy.getInt() )
|
|
@@ -133,7 +132,6 @@ public:
|
|
|
133
132
|
return *this;
|
|
134
133
|
}
|
|
135
134
|
|
|
136
|
-
|
|
137
135
|
generic_bridge_gep_type_iterator operator++(int)
|
|
138
136
|
{
|
|
139
137
|
generic_bridge_gep_type_iterator tmp = *this;
|
|
@@ -143,7 +141,6 @@ public:
|
|
|
143
141
|
|
|
144
142
|
};
|
|
145
143
|
|
|
146
|
-
|
|
147
144
|
typedef generic_bridge_gep_type_iterator<> bridge_gep_iterator;
|
|
148
145
|
|
|
149
146
|
inline bridge_gep_iterator bridge_gep_begin(const User* GEP)
|