svf-lib 1.0.1618 → 1.0.1620
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/svf/include/Util/ExtAPI.json +20 -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 -3
- package/SVF-osx/svf/include/AbstractExecution/ConsExeState.h +0 -8
- package/SVF-osx/svf/include/AbstractExecution/ExeState.h +0 -4
- package/SVF-osx/svf/include/AbstractExecution/IntervalExeState.h +0 -6
- 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/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/CFBasicBlockG.h +0 -2
- package/SVF-osx/svf/include/Graphs/CFLGraph.h +0 -1
- package/SVF-osx/svf/include/Graphs/CHG.h +0 -2
- 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/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/SaberCondAllocator.h +0 -4
- 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/SVFValue.h +0 -2
- package/SVF-osx/svf/include/SVFIR/SVFVariables.h +0 -5
- package/SVF-osx/svf/include/SVFIR/SymbolTableInfo.h +0 -4
- package/SVF-osx/svf/include/Util/CallGraphBuilder.h +0 -2
- package/SVF-osx/svf/include/Util/Casting.h +0 -1
- 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/ExtAPI.json +20 -0
- 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 +1 -2
- package/SVF-osx/svf/include/Util/SparseBitVector.h +1 -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/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/SVFIRBuilder.h +0 -1
- package/package.json +1 -1
|
@@ -3435,6 +3435,16 @@
|
|
|
3435
3435
|
"dst": "Ret"
|
|
3436
3436
|
}
|
|
3437
3437
|
},
|
|
3438
|
+
"_ZnwmRKSt9nothrow_t": {
|
|
3439
|
+
"return": "i8*",
|
|
3440
|
+
"arguments": "(i64, const std::nothrow_t&)",
|
|
3441
|
+
"type": "EFT_ALLOC",
|
|
3442
|
+
"overwrite_app_function": 1,
|
|
3443
|
+
"AddrStmt": {
|
|
3444
|
+
"src": "Obj",
|
|
3445
|
+
"dst": "Ret"
|
|
3446
|
+
}
|
|
3447
|
+
},
|
|
3438
3448
|
"_Znam": {
|
|
3439
3449
|
"return": "i8*",
|
|
3440
3450
|
"arguments": "(i64)",
|
|
@@ -3445,6 +3455,16 @@
|
|
|
3445
3455
|
"dst": "Ret"
|
|
3446
3456
|
}
|
|
3447
3457
|
},
|
|
3458
|
+
"_ZnamRKSt9nothrow_t": {
|
|
3459
|
+
"return": "i8*",
|
|
3460
|
+
"arguments": "(i64, const std::nothrow_t&)",
|
|
3461
|
+
"type": "EFT_ALLOC",
|
|
3462
|
+
"overwrite_app_function": 1,
|
|
3463
|
+
"AddrStmt": {
|
|
3464
|
+
"src": "Obj",
|
|
3465
|
+
"dst": "Ret"
|
|
3466
|
+
}
|
|
3467
|
+
},
|
|
3448
3468
|
"_Znaj": {
|
|
3449
3469
|
"return": "i8*",
|
|
3450
3470
|
"arguments": "(i32)",
|
|
Binary file
|
|
Binary file
|
|
@@ -55,7 +55,6 @@ public:
|
|
|
55
55
|
|
|
56
56
|
BoundedZ3Expr(const BoundedZ3Expr &z3Expr) : Z3Expr(z3Expr) {}
|
|
57
57
|
|
|
58
|
-
|
|
59
58
|
inline BoundedZ3Expr &operator=(const BoundedZ3Expr &rhs)
|
|
60
59
|
{
|
|
61
60
|
Z3Expr::operator=(rhs);
|
|
@@ -64,7 +63,6 @@ public:
|
|
|
64
63
|
|
|
65
64
|
BoundedZ3Expr(BoundedZ3Expr &&z3Expr) : Z3Expr(z3Expr) {}
|
|
66
65
|
|
|
67
|
-
|
|
68
66
|
inline BoundedZ3Expr &operator=(BoundedZ3Expr &&rhs)
|
|
69
67
|
{
|
|
70
68
|
Z3Expr::operator=(rhs);
|
|
@@ -389,4 +387,3 @@ struct std::hash<SVF::BoundedZ3Expr>
|
|
|
389
387
|
}
|
|
390
388
|
};
|
|
391
389
|
#endif //SVF_BOUNDEDZ3EXPR_H
|
|
392
|
-
|
|
@@ -61,7 +61,6 @@ protected:
|
|
|
61
61
|
public:
|
|
62
62
|
ConsExeState(): ExeState(ExeState::SingleValueK) {}
|
|
63
63
|
|
|
64
|
-
|
|
65
64
|
/// Constructor
|
|
66
65
|
ConsExeState(VarToValMap varToValMap, LocToValMap locToValMap) : ExeState(ExeState::SingleValueK), _varToVal(
|
|
67
66
|
SVFUtil::move(varToValMap)), _locToVal(SVFUtil::move(locToValMap)) {}
|
|
@@ -346,12 +345,10 @@ public:
|
|
|
346
345
|
return _locToVal;
|
|
347
346
|
}
|
|
348
347
|
|
|
349
|
-
|
|
350
348
|
s64_t getNumber(u32_t lhs);
|
|
351
349
|
|
|
352
350
|
public:
|
|
353
351
|
|
|
354
|
-
|
|
355
352
|
static inline SingleAbsValue getIntOneZ3Expr()
|
|
356
353
|
{
|
|
357
354
|
return getContext().int_val(1);
|
|
@@ -404,14 +401,11 @@ public:
|
|
|
404
401
|
/// Whether two var to value map is equivalent
|
|
405
402
|
static bool eqVarToValMap(const VarToValMap &pre, const VarToValMap &nxt);
|
|
406
403
|
|
|
407
|
-
|
|
408
404
|
/// Whether lhs is less than rhs
|
|
409
405
|
static bool lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs);
|
|
410
406
|
|
|
411
|
-
|
|
412
407
|
private:
|
|
413
408
|
|
|
414
|
-
|
|
415
409
|
static bool assign(SingleAbsValue &lhs, const SingleAbsValue &rhs);
|
|
416
410
|
|
|
417
411
|
inline bool store(u32_t objId, const SingleAbsValue &z3Expr)
|
|
@@ -441,6 +435,4 @@ struct std::hash<SVF::ConsExeState>
|
|
|
441
435
|
}
|
|
442
436
|
};
|
|
443
437
|
|
|
444
|
-
|
|
445
|
-
|
|
446
438
|
#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
|
|
|
@@ -272,11 +271,8 @@ public:
|
|
|
272
271
|
return AddressValue::getInternalID(idx);
|
|
273
272
|
}
|
|
274
273
|
|
|
275
|
-
|
|
276
274
|
}; // end class ExeState
|
|
277
275
|
|
|
278
|
-
|
|
279
|
-
|
|
280
276
|
} // end namespace SVF
|
|
281
277
|
|
|
282
278
|
template<>
|
|
@@ -69,7 +69,6 @@ protected:
|
|
|
69
69
|
/// key: nodeID value: Domain Value
|
|
70
70
|
LocToValMap _locToItvVal;
|
|
71
71
|
|
|
72
|
-
|
|
73
72
|
public:
|
|
74
73
|
/// default constructor, default pc is true
|
|
75
74
|
IntervalExeState() : ExeState(ExeState::IntervalK) {}
|
|
@@ -198,7 +197,6 @@ public:
|
|
|
198
197
|
|
|
199
198
|
virtual ~IntervalExeState() = default;
|
|
200
199
|
|
|
201
|
-
|
|
202
200
|
/// get var2val map
|
|
203
201
|
const VarToValMap &getVarToVal() const
|
|
204
202
|
{
|
|
@@ -256,7 +254,6 @@ public:
|
|
|
256
254
|
/// domain meet with other varToValMap
|
|
257
255
|
void meetWith(VarToValMap *other);
|
|
258
256
|
|
|
259
|
-
|
|
260
257
|
/// Return int value from an expression if it is a numeral, otherwise return an approximate value
|
|
261
258
|
inline s32_t Interval2NumValue(const IntervalValue &e) const
|
|
262
259
|
{
|
|
@@ -390,7 +387,6 @@ public:
|
|
|
390
387
|
return true;
|
|
391
388
|
}
|
|
392
389
|
|
|
393
|
-
|
|
394
390
|
static bool lessThanVarToValMap(const VarToValMap &lhs, const VarToValMap &rhs)
|
|
395
391
|
{
|
|
396
392
|
if (lhs.empty()) return !rhs.empty();
|
|
@@ -434,7 +430,6 @@ public:
|
|
|
434
430
|
return !(*this >= rhs);
|
|
435
431
|
}
|
|
436
432
|
|
|
437
|
-
|
|
438
433
|
bool operator>=(const IntervalExeState &rhs) const
|
|
439
434
|
{
|
|
440
435
|
return geqVarToValMap(_varToItvVal, rhs.getVarToVal()) && geqVarToValMap(_locToItvVal, rhs.getLocToVal());
|
|
@@ -448,7 +443,6 @@ public:
|
|
|
448
443
|
_varToVAddrs.clear();
|
|
449
444
|
}
|
|
450
445
|
|
|
451
|
-
|
|
452
446
|
private:
|
|
453
447
|
void printTable(const VarToValMap &table, std::ostream &oss) const;
|
|
454
448
|
|
|
@@ -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
|
{
|
|
@@ -653,7 +651,6 @@ inline IntervalValue operator<(const IntervalValue &lhs, const IntervalValue &rh
|
|
|
653
651
|
}
|
|
654
652
|
}
|
|
655
653
|
|
|
656
|
-
|
|
657
654
|
/// Greater than IntervalValues
|
|
658
655
|
inline IntervalValue operator>=(const IntervalValue &lhs, const IntervalValue &rhs)
|
|
659
656
|
{
|
|
@@ -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
|
#endif //Z3_EXAMPLE_Number_H
|
|
@@ -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
|
*/
|
|
@@ -549,7 +545,6 @@ public:
|
|
|
549
545
|
return it->second;
|
|
550
546
|
}
|
|
551
547
|
|
|
552
|
-
|
|
553
548
|
/// Get the wto-cycle-depth of the given node
|
|
554
549
|
const CFBasicBlockGWTOCycleDepth &getWTOCycleDepth(const CFBasicBlockNode *n) const
|
|
555
550
|
{
|
|
@@ -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
|
*/
|
|
@@ -45,7 +45,6 @@ class CFBasicBlockEdge : public GenericCFBasicBlockEdgeTy
|
|
|
45
45
|
public:
|
|
46
46
|
CFBasicBlockEdge(CFBasicBlockNode *src, CFBasicBlockNode *dst) : GenericCFBasicBlockEdgeTy(src, dst, 0) {}
|
|
47
47
|
|
|
48
|
-
|
|
49
48
|
friend std::ostream &operator<<(std::ostream &o, const CFBasicBlockEdge &edge)
|
|
50
49
|
{
|
|
51
50
|
o << edge.toString();
|
|
@@ -191,7 +190,6 @@ public:
|
|
|
191
190
|
};
|
|
192
191
|
}
|
|
193
192
|
|
|
194
|
-
|
|
195
193
|
namespace SVF
|
|
196
194
|
{
|
|
197
195
|
/* !
|
|
@@ -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;
|
|
@@ -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_ */
|
|
@@ -94,7 +94,6 @@ public:
|
|
|
94
94
|
return bb;
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
|
|
98
97
|
/// Overloading operator << for dumping ICFG node ID
|
|
99
98
|
//@{
|
|
100
99
|
friend OutStream &operator<<(OutStream &o, const ICFGNode &node)
|
|
@@ -254,7 +253,6 @@ public:
|
|
|
254
253
|
//@}
|
|
255
254
|
};
|
|
256
255
|
|
|
257
|
-
|
|
258
256
|
/*!
|
|
259
257
|
* Function entry ICFGNode containing a set of FormalParmVFGNodes of a function
|
|
260
258
|
*/
|
|
@@ -480,7 +478,6 @@ public:
|
|
|
480
478
|
virtual const std::string toString() const;
|
|
481
479
|
};
|
|
482
480
|
|
|
483
|
-
|
|
484
481
|
/*!
|
|
485
482
|
* Return ICFGNode containing (at most one) ActualRetVFGNode at a callsite
|
|
486
483
|
*/
|
|
@@ -123,7 +123,6 @@ public:
|
|
|
123
123
|
else if (SVFUtil::isa<FunExitICFGNode>(node))
|
|
124
124
|
numOfExitNodes++;
|
|
125
125
|
|
|
126
|
-
|
|
127
126
|
ICFGEdge::ICFGEdgeSetTy::iterator edgeIt =
|
|
128
127
|
it->second->OutEdgeBegin();
|
|
129
128
|
ICFGEdge::ICFGEdgeSetTy::iterator edgeEit =
|
|
@@ -161,4 +160,3 @@ public:
|
|
|
161
160
|
} // End namespace SVF
|
|
162
161
|
|
|
163
162
|
#endif /* INCLUDE_UTIL_ICFGSTAT_H_ */
|
|
164
|
-
|
|
@@ -41,7 +41,6 @@ namespace SVF
|
|
|
41
41
|
class PTACallGraphNode;
|
|
42
42
|
class SVFModule;
|
|
43
43
|
|
|
44
|
-
|
|
45
44
|
/*
|
|
46
45
|
* Call Graph edge representing a calling relation between two functions
|
|
47
46
|
* Multiple calls from function A to B are merged into one call edge
|
|
@@ -58,7 +57,6 @@ public:
|
|
|
58
57
|
CallRetEdge,TDForkEdge,TDJoinEdge,HareParForEdge
|
|
59
58
|
};
|
|
60
59
|
|
|
61
|
-
|
|
62
60
|
private:
|
|
63
61
|
CallInstSet directCalls;
|
|
64
62
|
CallInstSet indirectCalls;
|
|
@@ -198,7 +196,6 @@ public:
|
|
|
198
196
|
/// Return TRUE if this function can be reached from main.
|
|
199
197
|
bool isReachableFromProgEntry() const;
|
|
200
198
|
|
|
201
|
-
|
|
202
199
|
/// Overloading operator << for dumping ICFG node ID
|
|
203
200
|
//@{
|
|
204
201
|
friend OutStream& operator<< (OutStream &o, const PTACallGraphNode &node)
|
|
@@ -57,7 +57,6 @@ typedef PHIVFGNode PHISVFGNode;
|
|
|
57
57
|
typedef IntraPHIVFGNode IntraPHISVFGNode;
|
|
58
58
|
typedef InterPHIVFGNode InterPHISVFGNode;
|
|
59
59
|
|
|
60
|
-
|
|
61
60
|
/*!
|
|
62
61
|
* Sparse value flow graph
|
|
63
62
|
* Each node stands for a definition, each edge stands for value flow relations
|
|
@@ -345,7 +344,6 @@ protected:
|
|
|
345
344
|
}
|
|
346
345
|
//@}
|
|
347
346
|
|
|
348
|
-
|
|
349
347
|
/// Given a PAGNode, set/get its def SVFG node (definition of top level pointers)
|
|
350
348
|
//@{
|
|
351
349
|
inline void setDef(const PAGNode* pagNode, const SVFGNode* node)
|