svf-lib 1.0.749 → 1.0.753
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/SABER/PathCondAllocator.h +4 -0
- package/SVF-linux/include/Util/Conditions.h +10 -0
- package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
- package/SVF-osx/Release-build/lib/libSvf.a +0 -0
- package/SVF-osx/include/SABER/PathCondAllocator.h +4 -0
- package/SVF-osx/include/Util/Conditions.h +10 -0
- package/SVF-osx/include/Util/ExtAPI.h +9 -0
- package/SVF-osx/include/Util/Options.h +3 -1
- package/SVF-osx/include/Util/SVFModule.h +2 -7
- package/SVF-osx/include/Util/ThreadAPI.h +9 -0
- package/package.json +1 -1
|
Binary file
|
|
@@ -287,6 +287,15 @@ public:
|
|
|
287
287
|
assert(condToInstMap.find(cond)==condToInstMap.end() && "this should be a fresh condition");
|
|
288
288
|
condToInstMap[cond] = inst;
|
|
289
289
|
}
|
|
290
|
+
|
|
291
|
+
inline void setNegCondInst(const CondExpr *cond, const Instruction *inst) {
|
|
292
|
+
setCondInst(cond, inst);
|
|
293
|
+
negConds.set(cond->getId());
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
inline bool isNegCond(const CondExpr *cond) const {
|
|
297
|
+
return negConds.test(cond->getId());
|
|
298
|
+
}
|
|
290
299
|
//@}
|
|
291
300
|
|
|
292
301
|
private:
|
|
@@ -298,6 +307,7 @@ private:
|
|
|
298
307
|
BranchCondToCondExprMap branchCondToCondExpr; ///< map branch condition to its Condition wrapper
|
|
299
308
|
CondToTermInstMap condToInstMap; ///< map condition to llvm instruction
|
|
300
309
|
BranchCondManager branchCondManager; ///< branch condition manager
|
|
310
|
+
NodeBS negConds;
|
|
301
311
|
};
|
|
302
312
|
|
|
303
313
|
} // End namespace SVF
|
|
Binary file
|
|
Binary file
|
|
@@ -287,6 +287,15 @@ public:
|
|
|
287
287
|
assert(condToInstMap.find(cond)==condToInstMap.end() && "this should be a fresh condition");
|
|
288
288
|
condToInstMap[cond] = inst;
|
|
289
289
|
}
|
|
290
|
+
|
|
291
|
+
inline void setNegCondInst(const CondExpr *cond, const Instruction *inst) {
|
|
292
|
+
setCondInst(cond, inst);
|
|
293
|
+
negConds.set(cond->getId());
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
inline bool isNegCond(const CondExpr *cond) const {
|
|
297
|
+
return negConds.test(cond->getId());
|
|
298
|
+
}
|
|
290
299
|
//@}
|
|
291
300
|
|
|
292
301
|
private:
|
|
@@ -298,6 +307,7 @@ private:
|
|
|
298
307
|
BranchCondToCondExprMap branchCondToCondExpr; ///< map branch condition to its Condition wrapper
|
|
299
308
|
CondToTermInstMap condToInstMap; ///< map condition to llvm instruction
|
|
300
309
|
BranchCondManager branchCondManager; ///< branch condition manager
|
|
310
|
+
NodeBS negConds;
|
|
301
311
|
};
|
|
302
312
|
|
|
303
313
|
} // End namespace SVF
|
|
@@ -120,6 +120,15 @@ public:
|
|
|
120
120
|
return extAPI;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
+
static void destory()
|
|
124
|
+
{
|
|
125
|
+
if (extAPI != nullptr)
|
|
126
|
+
{
|
|
127
|
+
delete extAPI;
|
|
128
|
+
extAPI = nullptr;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
123
132
|
//Return the extf_t of (F).
|
|
124
133
|
extf_t get_type(const SVFFunction* F) const
|
|
125
134
|
{
|
|
@@ -243,13 +243,15 @@ public:
|
|
|
243
243
|
// TypeAnalysis.cpp
|
|
244
244
|
static const llvm::cl::opt<bool> GenICFG;
|
|
245
245
|
|
|
246
|
-
//WPAPass.cpp
|
|
246
|
+
// WPAPass.cpp
|
|
247
247
|
static const llvm::cl::opt<bool> AnderSVFG;
|
|
248
248
|
static const llvm::cl::opt<bool> SABERFULLSVFG;
|
|
249
249
|
static const llvm::cl::opt<bool> PrintAliases;
|
|
250
250
|
static llvm::cl::bits<PointerAnalysis::PTATY> PASelected;
|
|
251
251
|
static llvm::cl::bits<WPAPass::AliasCheckRule> AliasRule;
|
|
252
252
|
|
|
253
|
+
// DOTGraphTraits
|
|
254
|
+
static const llvm::cl::opt<bool> ShowHiddenNode;
|
|
253
255
|
};
|
|
254
256
|
} // namespace SVF
|
|
255
257
|
|
|
@@ -75,14 +75,9 @@ public:
|
|
|
75
75
|
{
|
|
76
76
|
for (auto * f : FunctionSet)
|
|
77
77
|
delete f;
|
|
78
|
-
|
|
79
|
-
auto * extAPI = ExtAPI::getExtAPI();
|
|
80
|
-
delete extAPI;
|
|
81
|
-
extAPI = nullptr;
|
|
82
78
|
NodeIDAllocator::unset();
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
threadAPI = nullptr;
|
|
79
|
+
ThreadAPI::destroy();
|
|
80
|
+
ExtAPI::destory();
|
|
86
81
|
}
|
|
87
82
|
|
|
88
83
|
static inline void setPagFromTXT(std::string txt)
|
|
@@ -108,6 +108,15 @@ public:
|
|
|
108
108
|
return tdAPI;
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
static void destroy()
|
|
112
|
+
{
|
|
113
|
+
if(tdAPI != nullptr)
|
|
114
|
+
{
|
|
115
|
+
delete tdAPI;
|
|
116
|
+
tdAPI = nullptr;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
111
120
|
/// Return the callee/callsite/func
|
|
112
121
|
//@{
|
|
113
122
|
const SVFFunction* getCallee(const Instruction *inst) const;
|