svf-lib 1.0.1817 → 1.0.1819
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/svf/include/MemoryModel/PointerAnalysis.h +0 -9
- package/SVF-linux/svf/include/Util/SVFStat.h +3 -0
- 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 +0 -7
- 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 +0 -1
- 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 -10
- 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/PTAStat.h +0 -1
- 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 +3 -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
|
Binary file
|
|
@@ -48,7 +48,6 @@ namespace SVF
|
|
|
48
48
|
|
|
49
49
|
class CommonCHGraph;
|
|
50
50
|
|
|
51
|
-
class TypeSystem;
|
|
52
51
|
class SVFModule;
|
|
53
52
|
class ICFG;
|
|
54
53
|
class PTAStat;
|
|
@@ -156,8 +155,6 @@ protected:
|
|
|
156
155
|
ICFG* icfg;
|
|
157
156
|
/// CHGraph
|
|
158
157
|
CommonCHGraph *chgraph;
|
|
159
|
-
/// TypeSystem
|
|
160
|
-
TypeSystem *typeSystem;
|
|
161
158
|
|
|
162
159
|
public:
|
|
163
160
|
/// Get ICFG
|
|
@@ -433,12 +430,6 @@ public:
|
|
|
433
430
|
virtual void resolveCPPIndCalls(const CallICFGNode* cs,
|
|
434
431
|
const PointsTo& target,
|
|
435
432
|
CallEdgeMap& newEdges);
|
|
436
|
-
|
|
437
|
-
/// get TypeSystem
|
|
438
|
-
const TypeSystem *getTypeSystem() const
|
|
439
|
-
{
|
|
440
|
-
return typeSystem;
|
|
441
|
-
}
|
|
442
433
|
};
|
|
443
434
|
|
|
444
435
|
} // End namespace SVF
|
|
@@ -70,6 +70,9 @@ public:
|
|
|
70
70
|
/// Default call for getClk is unmarked, while MarkedClocksOnly is false by default.
|
|
71
71
|
static double getClk(bool mark = false);
|
|
72
72
|
|
|
73
|
+
/// SVF's general statistics are only printed once even if you run multiple anayses
|
|
74
|
+
static bool printGeneralStats;
|
|
75
|
+
|
|
73
76
|
NUMStatMap generalNumMap;
|
|
74
77
|
NUMStatMap PTNumStatMap;
|
|
75
78
|
TIMEStatMap timeStatMap;
|
|
Binary file
|
|
Binary file
|
|
@@ -63,7 +63,6 @@ public:
|
|
|
63
63
|
|
|
64
64
|
BoundedZ3Expr(BoundedZ3Expr &&z3Expr) : Z3Expr(z3Expr) {}
|
|
65
65
|
|
|
66
|
-
|
|
67
66
|
inline BoundedZ3Expr &operator=(BoundedZ3Expr &&rhs)
|
|
68
67
|
{
|
|
69
68
|
Z3Expr::operator=(rhs);
|
|
@@ -388,4 +387,3 @@ struct std::hash<SVF::BoundedZ3Expr>
|
|
|
388
387
|
}
|
|
389
388
|
};
|
|
390
389
|
#endif //SVF_BOUNDEDZ3EXPR_H
|
|
391
|
-
|
|
@@ -57,7 +57,6 @@ public:
|
|
|
57
57
|
public:
|
|
58
58
|
ConsExeState(): ExeState(ExeState::SingleValueK) {}
|
|
59
59
|
|
|
60
|
-
|
|
61
60
|
/// Constructor
|
|
62
61
|
ConsExeState(VarToValMap varToValMap, LocToValMap locToValMap) : ExeState(ExeState::SingleValueK), _varToVal(
|
|
63
62
|
SVFUtil::move(varToValMap)), _locToVal(SVFUtil::move(locToValMap)) {}
|
|
@@ -361,8 +360,6 @@ public:
|
|
|
361
360
|
|
|
362
361
|
public:
|
|
363
362
|
|
|
364
|
-
|
|
365
|
-
|
|
366
363
|
s64_t getNumber(u32_t lhs);
|
|
367
364
|
|
|
368
365
|
static inline SingleAbsValue getIntOneZ3Expr()
|
|
@@ -409,14 +406,11 @@ public:
|
|
|
409
406
|
/// Whether two var to value map is equivalent
|
|
410
407
|
static bool eqVarToValMap(const VarToValMap &pre, const VarToValMap &nxt);
|
|
411
408
|
|
|
412
|
-
|
|
413
409
|
/// Whether lhs is less than rhs
|
|
414
410
|
static bool lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs);
|
|
415
411
|
|
|
416
|
-
|
|
417
412
|
private:
|
|
418
413
|
|
|
419
|
-
|
|
420
414
|
static bool assign(SingleAbsValue &lhs, const SingleAbsValue &rhs);
|
|
421
415
|
|
|
422
416
|
inline bool store(u32_t objId, const SingleAbsValue &z3Expr)
|
|
@@ -446,6 +440,4 @@ struct std::hash<SVF::ConsExeState>
|
|
|
446
440
|
}
|
|
447
441
|
};
|
|
448
442
|
|
|
449
|
-
|
|
450
|
-
|
|
451
443
|
#endif // SVF_CONSEXESTATE_H
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
*
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
|
|
31
30
|
#ifndef Z3_EXAMPLE_EXESTATE_H
|
|
32
31
|
#define Z3_EXAMPLE_EXESTATE_H
|
|
33
32
|
|
|
@@ -90,7 +89,6 @@ public:
|
|
|
90
89
|
return *this;
|
|
91
90
|
}
|
|
92
91
|
|
|
93
|
-
|
|
94
92
|
protected:
|
|
95
93
|
VarToAddrs _varToAddrs{{0, getVirtualMemAddress(0)}}; ///< Map a variable (symbol) to its memory addresses
|
|
96
94
|
VarToAddrs _locToAddrs; ///< Map a memory address to its stored memory addresses
|
|
@@ -115,7 +113,6 @@ public:
|
|
|
115
113
|
return _locToAddrs.find(id) != _locToAddrs.end();
|
|
116
114
|
}
|
|
117
115
|
|
|
118
|
-
|
|
119
116
|
inline virtual const VarToAddrs &getVarToAddrs() const
|
|
120
117
|
{
|
|
121
118
|
return _varToAddrs;
|
|
@@ -148,8 +145,6 @@ public:
|
|
|
148
145
|
return _kind;
|
|
149
146
|
}
|
|
150
147
|
|
|
151
|
-
|
|
152
|
-
|
|
153
148
|
public:
|
|
154
149
|
inline virtual void storeAddrs(u32_t addr, const Addrs &vaddrs)
|
|
155
150
|
{
|
|
@@ -285,11 +280,8 @@ public:
|
|
|
285
280
|
return AddressValue::getInternalID(idx);
|
|
286
281
|
}
|
|
287
282
|
|
|
288
|
-
|
|
289
283
|
}; // end class ExeState
|
|
290
284
|
|
|
291
|
-
|
|
292
|
-
|
|
293
285
|
} // end namespace SVF
|
|
294
286
|
|
|
295
287
|
template<>
|
|
@@ -77,7 +77,6 @@ public:
|
|
|
77
77
|
|
|
78
78
|
virtual ~IntervalESBase() = default;
|
|
79
79
|
|
|
80
|
-
|
|
81
80
|
IntervalESBase &operator=(const IntervalESBase &rhs)
|
|
82
81
|
{
|
|
83
82
|
if (rhs != *this)
|
|
@@ -217,7 +216,6 @@ public:
|
|
|
217
216
|
/// domain meet with other, important! other widen this.
|
|
218
217
|
void meetWith(const IntervalESBase &other);
|
|
219
218
|
|
|
220
|
-
|
|
221
219
|
/// Return int value from an expression if it is a numeral, otherwise return an approximate value
|
|
222
220
|
inline s32_t Interval2NumValue(const IntervalValue &e) const
|
|
223
221
|
{
|
|
@@ -337,7 +335,6 @@ public:
|
|
|
337
335
|
return true;
|
|
338
336
|
}
|
|
339
337
|
|
|
340
|
-
|
|
341
338
|
static bool lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs)
|
|
342
339
|
{
|
|
343
340
|
if (lhs.empty()) return !rhs.empty();
|
|
@@ -383,7 +380,6 @@ public:
|
|
|
383
380
|
return !(*this >= rhs);
|
|
384
381
|
}
|
|
385
382
|
|
|
386
|
-
|
|
387
383
|
bool operator>=(const IntervalESBase &rhs) const
|
|
388
384
|
{
|
|
389
385
|
return geqVarToValMap(_varToItvVal, rhs.getVarToVal()) && geqVarToValMap(_locToItvVal, rhs.getLocToVal());
|
|
@@ -397,7 +393,6 @@ public:
|
|
|
397
393
|
_varToAddrs.clear();
|
|
398
394
|
}
|
|
399
395
|
|
|
400
|
-
|
|
401
396
|
protected:
|
|
402
397
|
void printTable(const VarToValMap &table, std::ostream &oss) const;
|
|
403
398
|
|
|
@@ -426,7 +421,6 @@ public:
|
|
|
426
421
|
|
|
427
422
|
virtual ~IntervalExeState() = default;
|
|
428
423
|
|
|
429
|
-
|
|
430
424
|
IntervalExeState &operator=(const IntervalExeState &rhs)
|
|
431
425
|
{
|
|
432
426
|
IntervalESBase::operator=(rhs);
|
|
@@ -628,7 +622,6 @@ public:
|
|
|
628
622
|
return !(*this >= rhs);
|
|
629
623
|
}
|
|
630
624
|
|
|
631
|
-
|
|
632
625
|
bool operator>=(const IntervalExeState &rhs) const
|
|
633
626
|
{
|
|
634
627
|
return geqVarToValMap(_varToItvVal, rhs.getVarToVal()) && geqVarToValMap(_locToItvVal, rhs._locToItvVal);
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
*
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
|
|
31
30
|
#ifndef Z3_EXAMPLE_IntervalValue_H
|
|
32
31
|
#define Z3_EXAMPLE_IntervalValue_H
|
|
33
32
|
|
|
@@ -321,7 +320,6 @@ public:
|
|
|
321
320
|
}
|
|
322
321
|
}
|
|
323
322
|
|
|
324
|
-
|
|
325
323
|
/// Equality comparison
|
|
326
324
|
bool equals(const IntervalValue &other) const
|
|
327
325
|
{
|
|
@@ -679,7 +677,6 @@ inline IntervalValue operator<(const IntervalValue &lhs, const IntervalValue &rh
|
|
|
679
677
|
}
|
|
680
678
|
}
|
|
681
679
|
|
|
682
|
-
|
|
683
680
|
// Compare two IntervalValues for greater than or equal to
|
|
684
681
|
inline IntervalValue operator>=(const IntervalValue &lhs, const IntervalValue &rhs)
|
|
685
682
|
{
|
|
@@ -174,7 +174,6 @@ public:
|
|
|
174
174
|
return _n.geq(rhs._n).simplify().is_true();
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
|
|
178
177
|
/// Reload operator
|
|
179
178
|
//{%
|
|
180
179
|
friend NumericLiteral operator==(const NumericLiteral &lhs, const NumericLiteral &rhs)
|
|
@@ -434,7 +433,6 @@ public:
|
|
|
434
433
|
|
|
435
434
|
//%}
|
|
436
435
|
|
|
437
|
-
|
|
438
436
|
}; // end class NumericLiteral
|
|
439
437
|
} // end namespace SVF
|
|
440
438
|
|
|
@@ -86,7 +86,6 @@ public:
|
|
|
86
86
|
/// Return the offset expression of a GepStmt
|
|
87
87
|
IntervalValue getItvOfFlattenedElemIndex(const GepStmt *gep);
|
|
88
88
|
|
|
89
|
-
|
|
90
89
|
static z3::context &getContext()
|
|
91
90
|
{
|
|
92
91
|
return Z3Expr::getContext();
|
|
@@ -94,7 +93,6 @@ public:
|
|
|
94
93
|
|
|
95
94
|
void applySummary(IntervalExeState &es);
|
|
96
95
|
|
|
97
|
-
|
|
98
96
|
/// Init ObjVar
|
|
99
97
|
void initObjVar(const ObjVar *objVar, u32_t varId);
|
|
100
98
|
|
|
@@ -109,7 +107,6 @@ public:
|
|
|
109
107
|
return globalNulladdrs;
|
|
110
108
|
}
|
|
111
109
|
|
|
112
|
-
|
|
113
110
|
/// whether the variable is in varToVal table
|
|
114
111
|
inline bool inVarToValTable(u32_t id) const
|
|
115
112
|
{
|
|
@@ -122,7 +119,6 @@ public:
|
|
|
122
119
|
return _es.inVarToAddrsTable(id);
|
|
123
120
|
}
|
|
124
121
|
|
|
125
|
-
|
|
126
122
|
/// whether the memory address stores a interval value
|
|
127
123
|
inline bool inLocToValTable(u32_t id) const
|
|
128
124
|
{
|
|
@@ -135,7 +135,6 @@ public:
|
|
|
135
135
|
return (getExpr() >= rhs.getExpr()).simplify().is_true();
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
|
|
139
138
|
/// Reload operator
|
|
140
139
|
//{%
|
|
141
140
|
friend SingleAbsValue operator==(const SingleAbsValue &lhs, const SingleAbsValue &rhs)
|
|
@@ -473,5 +472,4 @@ struct std::hash<SVF::SingleAbsValue>
|
|
|
473
472
|
}
|
|
474
473
|
};
|
|
475
474
|
|
|
476
|
-
|
|
477
475
|
#endif //SVF_SINGLEABSVALUE_H
|
|
@@ -83,7 +83,6 @@ public:
|
|
|
83
83
|
return *this;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
|
|
87
86
|
/// Move Constructor
|
|
88
87
|
SymState(SymState &&rhs) noexcept: _exeState(SVFUtil::move(rhs._exeState)),
|
|
89
88
|
_typeState(SVFUtil::move(rhs._typeState)),
|
|
@@ -111,7 +110,6 @@ public:
|
|
|
111
110
|
return _keyNodesSet;
|
|
112
111
|
}
|
|
113
112
|
|
|
114
|
-
|
|
115
113
|
void insertKeyNode(NodeID id)
|
|
116
114
|
{
|
|
117
115
|
if (_keyNodesSet.empty())
|
|
@@ -203,8 +201,6 @@ public:
|
|
|
203
201
|
|
|
204
202
|
} // end namespace SVF
|
|
205
203
|
|
|
206
|
-
|
|
207
|
-
|
|
208
204
|
/// Specialise hash for SymState
|
|
209
205
|
template<>
|
|
210
206
|
struct std::hash<SVF::SymState>
|
|
@@ -39,7 +39,6 @@
|
|
|
39
39
|
#include "SVFIR/SVFValue.h"
|
|
40
40
|
#include "Graphs/CFBasicBlockG.h"
|
|
41
41
|
|
|
42
|
-
|
|
43
42
|
namespace SVF
|
|
44
43
|
{
|
|
45
44
|
|
|
@@ -333,7 +332,6 @@ private:
|
|
|
333
332
|
|
|
334
333
|
}; // end class CFBasicBlockGWTOComp
|
|
335
334
|
|
|
336
|
-
|
|
337
335
|
/*!
|
|
338
336
|
* WTO node for CFBasicBlockG
|
|
339
337
|
*/
|
|
@@ -379,7 +377,6 @@ public:
|
|
|
379
377
|
|
|
380
378
|
}; // end class CFBasicBlockGWTONode
|
|
381
379
|
|
|
382
|
-
|
|
383
380
|
/*!
|
|
384
381
|
* WTO cycle for CFBasicBlockG
|
|
385
382
|
*/
|
|
@@ -457,7 +454,6 @@ public:
|
|
|
457
454
|
|
|
458
455
|
}; // end class CFBasicBlockGWTOCycle
|
|
459
456
|
|
|
460
|
-
|
|
461
457
|
/*!
|
|
462
458
|
* Weak topological order for CFBasicBlockG
|
|
463
459
|
*/
|
|
@@ -550,7 +546,6 @@ public:
|
|
|
550
546
|
return it->second;
|
|
551
547
|
}
|
|
552
548
|
|
|
553
|
-
|
|
554
549
|
/// Get the wto-cycle-depth of the given node
|
|
555
550
|
const CFBasicBlockGWTOCycleDepth &getWTOCycleDepth(const CFBasicBlockNode *n) const
|
|
556
551
|
{
|
|
@@ -127,7 +127,6 @@ public:
|
|
|
127
127
|
}
|
|
128
128
|
};
|
|
129
129
|
|
|
130
|
-
|
|
131
130
|
struct SymbolVectorHash
|
|
132
131
|
{
|
|
133
132
|
size_t operator()(const std::vector<Symbol> &v) const
|
|
@@ -156,7 +155,6 @@ public:
|
|
|
156
155
|
typedef std::vector<Symbol> Production;
|
|
157
156
|
typedef SymbolSet<Production> Productions;
|
|
158
157
|
|
|
159
|
-
|
|
160
158
|
inline Map<std::string, Kind>& getNonterminals()
|
|
161
159
|
{
|
|
162
160
|
return this->nonterminals;
|
|
@@ -364,7 +362,6 @@ public:
|
|
|
364
362
|
return it->second;
|
|
365
363
|
}
|
|
366
364
|
|
|
367
|
-
|
|
368
365
|
const Symbol& getLHSSymbol(const Production& prod) const
|
|
369
366
|
{
|
|
370
367
|
return prod.at(0);
|
|
@@ -384,7 +381,6 @@ public:
|
|
|
384
381
|
|
|
385
382
|
void dump(std::string fileName) const;
|
|
386
383
|
|
|
387
|
-
|
|
388
384
|
const inline u32_t num_generator()
|
|
389
385
|
{
|
|
390
386
|
return newTerminalSubscript++;
|
|
@@ -118,7 +118,6 @@ public:
|
|
|
118
118
|
/// get callsite id from return, return 0 if it is a spurious return edge
|
|
119
119
|
CallSiteID getCSIDAtRet(CxtLocDPItem& dpm, const SVFGEdge* edge);
|
|
120
120
|
|
|
121
|
-
|
|
122
121
|
/// Pop recursive callsites
|
|
123
122
|
inline virtual void popRecursiveCallSites(CxtLocDPItem& dpm)
|
|
124
123
|
{
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
//
|
|
21
21
|
//===----------------------------------------------------------------------===//
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
/*
|
|
25
24
|
* @file: DDAClient.h
|
|
26
25
|
* @author: yesen
|
|
@@ -30,7 +29,6 @@
|
|
|
30
29
|
*
|
|
31
30
|
*/
|
|
32
31
|
|
|
33
|
-
|
|
34
32
|
#ifndef DDACLIENT_H_
|
|
35
33
|
#define DDACLIENT_H_
|
|
36
34
|
|
|
@@ -118,7 +116,6 @@ private:
|
|
|
118
116
|
bool solveAll; ///< TRUE if all top level pointers are being queried
|
|
119
117
|
};
|
|
120
118
|
|
|
121
|
-
|
|
122
119
|
/**
|
|
123
120
|
* DDA client with function pointers as query candidates.
|
|
124
121
|
*/
|
|
@@ -136,8 +133,6 @@ public:
|
|
|
136
133
|
virtual void performStat(PointerAnalysis* pta);
|
|
137
134
|
};
|
|
138
135
|
|
|
139
|
-
|
|
140
|
-
|
|
141
136
|
/**
|
|
142
137
|
* DDA client with function pointers as query candidates.
|
|
143
138
|
*/
|
|
@@ -79,7 +79,6 @@ public:
|
|
|
79
79
|
}
|
|
80
80
|
//@}
|
|
81
81
|
|
|
82
|
-
|
|
83
82
|
private:
|
|
84
83
|
Set<BranchCondition> brConditions;
|
|
85
84
|
};
|
|
@@ -114,7 +113,6 @@ public:
|
|
|
114
113
|
return _icfgNode;
|
|
115
114
|
}
|
|
116
115
|
|
|
117
|
-
|
|
118
116
|
private:
|
|
119
117
|
const ICFGNode *_icfgNode;
|
|
120
118
|
};
|
|
@@ -142,7 +140,6 @@ private:
|
|
|
142
140
|
|
|
143
141
|
}
|
|
144
142
|
|
|
145
|
-
|
|
146
143
|
public:
|
|
147
144
|
/// Singleton design here to make sure we only have one instance during any analysis
|
|
148
145
|
//@{
|
|
@@ -376,7 +376,6 @@ public:
|
|
|
376
376
|
return hasGNode(id);
|
|
377
377
|
}
|
|
378
378
|
|
|
379
|
-
|
|
380
379
|
bool hasCFBasicBlockEdge(CFBasicBlockNode *src, CFBasicBlockNode *dst, ICFGEdge *icfgEdge)
|
|
381
380
|
{
|
|
382
381
|
CFBasicBlockEdge edge(src, dst, icfgEdge);
|
|
@@ -436,7 +435,6 @@ public:
|
|
|
436
435
|
_totalCFBasicBlockNode--;
|
|
437
436
|
}
|
|
438
437
|
|
|
439
|
-
|
|
440
438
|
/// Remove node from nodeID
|
|
441
439
|
inline bool removeCFBBNode(NodeID id)
|
|
442
440
|
{
|
|
@@ -468,7 +466,6 @@ public:
|
|
|
468
466
|
|
|
469
467
|
}
|
|
470
468
|
|
|
471
|
-
|
|
472
469
|
namespace SVF
|
|
473
470
|
{
|
|
474
471
|
/* !
|
|
@@ -73,7 +73,6 @@ protected:
|
|
|
73
73
|
CHGKind kind;
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
-
|
|
77
76
|
typedef GenericEdge<CHNode> GenericCHEdgeTy;
|
|
78
77
|
class CHEdge: public GenericCHEdgeTy
|
|
79
78
|
{
|
|
@@ -314,7 +313,6 @@ public:
|
|
|
314
313
|
return chg->getKind() == Standard;
|
|
315
314
|
}
|
|
316
315
|
|
|
317
|
-
|
|
318
316
|
private:
|
|
319
317
|
SVFModule* svfMod;
|
|
320
318
|
u32_t classNum;
|
|
@@ -350,8 +348,8 @@ struct GenericGraphTraits<SVF::CHNode*>
|
|
|
350
348
|
/// for inverse traversal.
|
|
351
349
|
template <>
|
|
352
350
|
struct GenericGraphTraits<Inverse<SVF::CHNode*>>
|
|
353
|
-
|
|
354
|
-
|
|
351
|
+
: public GenericGraphTraits<
|
|
352
|
+
Inverse<SVF::GenericNode<SVF::CHNode, SVF::CHEdge>*>>
|
|
355
353
|
{
|
|
356
354
|
};
|
|
357
355
|
|
|
@@ -86,7 +86,6 @@ public:
|
|
|
86
86
|
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
-
|
|
90
89
|
/*!
|
|
91
90
|
* Copy edge
|
|
92
91
|
*/
|
|
@@ -117,7 +116,6 @@ public:
|
|
|
117
116
|
AddrCGEdge(ConstraintNode* s, ConstraintNode* d, EdgeID id);
|
|
118
117
|
};
|
|
119
118
|
|
|
120
|
-
|
|
121
119
|
/*!
|
|
122
120
|
* Copy edge
|
|
123
121
|
*/
|
|
@@ -150,7 +148,6 @@ public:
|
|
|
150
148
|
}
|
|
151
149
|
};
|
|
152
150
|
|
|
153
|
-
|
|
154
151
|
/*!
|
|
155
152
|
* Store edge
|
|
156
153
|
*/
|
|
@@ -184,7 +181,6 @@ public:
|
|
|
184
181
|
}
|
|
185
182
|
};
|
|
186
183
|
|
|
187
|
-
|
|
188
184
|
/*!
|
|
189
185
|
* Load edge
|
|
190
186
|
*/
|
|
@@ -218,7 +214,6 @@ public:
|
|
|
218
214
|
}
|
|
219
215
|
};
|
|
220
216
|
|
|
221
|
-
|
|
222
217
|
/*!
|
|
223
218
|
* Gep edge
|
|
224
219
|
*/
|
|
@@ -172,7 +172,6 @@ public:
|
|
|
172
172
|
static void addCustomGraphFeatures(const GraphType &, GraphWriter &) {}
|
|
173
173
|
};
|
|
174
174
|
|
|
175
|
-
|
|
176
175
|
/// DOTGraphTraits - Template class that can be specialized to customize how
|
|
177
176
|
/// graphs are converted to 'dot' graphs. When specializing, you may inherit
|
|
178
177
|
/// from DefaultDOTGraphTraits if you don't need to override everything.
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
//
|
|
21
21
|
//===----------------------------------------------------------------------===//
|
|
22
22
|
|
|
23
|
-
|
|
24
23
|
/*
|
|
25
24
|
* GraphPrinter.h
|
|
26
25
|
*
|
|
@@ -106,6 +105,4 @@ public:
|
|
|
106
105
|
|
|
107
106
|
} // End namespace llvm
|
|
108
107
|
|
|
109
|
-
|
|
110
|
-
|
|
111
108
|
#endif /* INCLUDE_GRAPHS_GRAPHPRINTER_H_ */
|