svf-lib 1.0.1883 → 1.0.1885
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/bin/ae +0 -0
- package/SVF-linux/Release-build/bin/cfl +0 -0
- package/SVF-linux/Release-build/bin/dvf +0 -0
- package/SVF-linux/Release-build/bin/llvm2svf +0 -0
- package/SVF-linux/Release-build/bin/mta +0 -0
- package/SVF-linux/Release-build/bin/saber +0 -0
- package/SVF-linux/Release-build/bin/svf-ex +0 -0
- package/SVF-linux/Release-build/bin/wpa +0 -0
- package/SVF-linux/Release-build/include/SVF-LLVM/CppUtil.h +0 -4
- package/SVF-linux/Release-build/include/SVF-LLVM/LLVMModule.h +11 -1
- package/SVF-linux/Release-build/include/SVF-LLVM/ObjTypeInference.h +2 -2
- package/SVF-linux/Release-build/lib/libSvfLLVM.a +0 -0
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -148,15 +148,11 @@ bool isTemplateFunc(const Function *foo);
|
|
|
148
148
|
/// whether foo is a cpp dyncast function
|
|
149
149
|
bool isDynCast(const Function *foo);
|
|
150
150
|
|
|
151
|
-
/// whether foo is a cpp heap allocation (new)
|
|
152
|
-
bool isNewAlloc(const Function *foo);
|
|
153
|
-
|
|
154
151
|
/// extract class name from cpp dyncast function
|
|
155
152
|
std::string extractClsNameFromDynCast(const CallBase* callBase);
|
|
156
153
|
|
|
157
154
|
const Type *cppClsNameToType(const std::string &className);
|
|
158
155
|
|
|
159
|
-
std::string typeToClsName(const Type *ty);
|
|
160
156
|
|
|
161
157
|
|
|
162
158
|
/// Constants pertaining to CTir, for C and C++.
|
|
@@ -328,7 +328,17 @@ public:
|
|
|
328
328
|
|
|
329
329
|
Module* getMainLLVMModule() const
|
|
330
330
|
{
|
|
331
|
-
|
|
331
|
+
assert(!empty() && "empty LLVM module!!");
|
|
332
|
+
for (size_t i = 0; i < getModuleNum(); ++i)
|
|
333
|
+
{
|
|
334
|
+
Module& module = getModuleRef(i);
|
|
335
|
+
if (module.getName().str() != ExtAPI::getExtAPI()->getExtBcPath())
|
|
336
|
+
{
|
|
337
|
+
return &module;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
assert(false && "no main module found!");
|
|
341
|
+
return nullptr;
|
|
332
342
|
}
|
|
333
343
|
|
|
334
344
|
LLVMContext& getContext() const
|
|
@@ -48,7 +48,7 @@ public:
|
|
|
48
48
|
typedef Map<const Value *, const Type *> ValueToType;
|
|
49
49
|
typedef std::pair<const Value *, bool> ValueBoolPair;
|
|
50
50
|
typedef Map<const Value *, Set<std::string>> ValueToClassNames;
|
|
51
|
-
typedef Map<const Value *, Set<const
|
|
51
|
+
typedef Map<const Value *, Set<const CallBase *>> ObjToClsNameSources;
|
|
52
52
|
|
|
53
53
|
|
|
54
54
|
private:
|
|
@@ -122,7 +122,7 @@ protected:
|
|
|
122
122
|
Set<const Value *> &bwFindAllocOrClsNameSources(const Value *startValue);
|
|
123
123
|
|
|
124
124
|
/// forward find class name sources starting from an allocation
|
|
125
|
-
Set<const
|
|
125
|
+
Set<const CallBase *> &fwFindClsNameSources(const Value *startValue);
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
128
|
#endif //SVF_OBJTYPEINFERENCE_H
|
|
Binary file
|