svf-lib 1.0.1762 → 1.0.1764

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.
@@ -496,7 +496,7 @@ const Argument* getConstructorThisPtr(const Function* fun);
496
496
  const Value* getVCallThisPtr(const CallBase* cs);
497
497
  const Value* getVCallVtblPtr(const CallBase* cs);
498
498
  s32_t getVCallIdx(const CallBase* cs);
499
- std::string getClassNameFromType(const Type* ty);
499
+ std::string getClassNameFromType(const StructType* ty);
500
500
  std::string getClassNameOfThisPtr(const CallBase* cs);
501
501
  std::string getFunNameOfVCallSite(const CallBase* cs);
502
502
  bool VCallInCtorOrDtor(const CallBase* cs);
@@ -513,13 +513,10 @@ bool VCallInCtorOrDtor(const CallBase* cs);
513
513
  bool isSameThisPtrInConstructor(const Argument* thisPtr1,
514
514
  const Value* thisPtr2);
515
515
 
516
- template<typename T>
517
- std::string llvmToString(const T& val)
518
- {
519
- std::string str;
520
- llvm::raw_string_ostream(str) << val;
521
- return str;
522
- }
516
+ std::string dumpValue(const Value* val);
517
+
518
+ std::string dumpType(const Type* type);
519
+
523
520
 
524
521
  /**
525
522
  * See more: https://github.com/SVF-tools/SVF/pull/1191
@@ -90,7 +90,7 @@ protected:
90
90
  /// Analyse types of all flattened fields of this object
91
91
  void analyzeObjType(ObjTypeInfo* typeinfo, const Value* val);
92
92
  /// Analyse types of heap and static objects
93
- void analyzeHeapObjType(ObjTypeInfo* typeinfo, const Value* val);
93
+ u32_t analyzeHeapObjType(ObjTypeInfo* typeinfo, const Value* val);
94
94
  /// Analyse types of heap and static objects
95
95
  void analyzeStaticObjType(ObjTypeInfo* typeinfo, const Value* val);
96
96
 
@@ -67,7 +67,7 @@ private:
67
67
  static bool preProcessed;
68
68
  SymbolTableInfo* symInfo;
69
69
  SVFModule* svfModule; ///< Borrowed from singleton SVFModule::svfModule
70
- std::unique_ptr<LLVMContext> cxts;
70
+ std::unique_ptr<LLVMContext> owned_ctx;
71
71
  std::vector<std::unique_ptr<Module>> owned_modules;
72
72
  std::vector<std::reference_wrapper<Module>> modules;
73
73
 
@@ -111,8 +111,10 @@ public:
111
111
  llvmModuleSet = nullptr;
112
112
  }
113
113
 
114
- // The parameter of context should be the llvm context of the mod, the llvm context of mod and extapi module should be the same
115
- static SVFModule* buildSVFModule(Module& mod, std::unique_ptr<LLVMContext> context);
114
+ // Build an SVF module from a given LLVM Module instance (for use e.g. in a LLVM pass)
115
+ static SVFModule* buildSVFModule(Module& mod);
116
+
117
+ // Build an SVF module from the bitcode files provided in `moduleNameVec`
116
118
  static SVFModule* buildSVFModule(const std::vector<std::string>& moduleNameVec);
117
119
 
118
120
  inline SVFModule* getSVFModule()
@@ -356,8 +358,8 @@ private:
356
358
  std::vector<const Function*> getLLVMGlobalFunctions(const GlobalVariable* global);
357
359
 
358
360
  void loadModules(const std::vector<std::string>& moduleNameVec);
359
- // The llvm context of app module and extapi module should be the same
360
- void loadExtAPIModules(std::unique_ptr<LLVMContext> context = nullptr);
361
+ // Loads ExtAPI bitcode file; uses LLVMContext made while loading module bitcode files or from Module
362
+ void loadExtAPIModules();
361
363
  void addSVFMain();
362
364
 
363
365
  void createSVFDataStructure();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.1762",
3
+ "version": "1.0.1764",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {