svf-lib 1.0.2643 → 1.0.2655

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.
Files changed (294) hide show
  1. package/.github/workflows/publish-svf-lib.yml +44 -12
  2. package/SVF-linux-aarch64/bin/ae +0 -0
  3. package/SVF-linux-aarch64/bin/cfl +0 -0
  4. package/SVF-linux-aarch64/bin/mta +0 -0
  5. package/SVF-linux-aarch64/bin/svf-ex +0 -0
  6. package/SVF-linux-aarch64/bin/wpa +0 -0
  7. package/SVF-linux-aarch64/include/AE/Core/AbstractState.h +1 -1
  8. package/SVF-linux-aarch64/include/AE/Core/ICFGWTO.h +4 -1
  9. package/SVF-linux-aarch64/include/AE/Core/NumericValue.h +2 -1
  10. package/SVF-linux-aarch64/include/AE/Core/RelExeState.h +1 -0
  11. package/SVF-linux-aarch64/include/AE/Core/RelationSolver.h +5 -1
  12. package/SVF-linux-aarch64/include/AE/Svfexe/AbsExtAPI.h +9 -3
  13. package/SVF-linux-aarch64/include/AE/Svfexe/SparseAbstractInterpretation.h +3 -1
  14. package/SVF-linux-aarch64/include/CFL/CFGNormalizer.h +2 -1
  15. package/SVF-linux-aarch64/include/CFL/CFGrammar.h +8 -4
  16. package/SVF-linux-aarch64/include/CFL/CFLAlias.h +3 -2
  17. package/SVF-linux-aarch64/include/CFL/CFLBase.h +4 -9
  18. package/SVF-linux-aarch64/include/CFL/CFLGramGraphChecker.h +3 -1
  19. package/SVF-linux-aarch64/include/CFL/CFLGraphBuilder.h +1 -0
  20. package/SVF-linux-aarch64/include/CFL/CFLSVFGBuilder.h +5 -0
  21. package/SVF-linux-aarch64/include/CFL/CFLSolver.h +2 -1
  22. package/SVF-linux-aarch64/include/CFL/CFLStat.h +2 -2
  23. package/SVF-linux-aarch64/include/CFL/CFLVF.h +5 -2
  24. package/SVF-linux-aarch64/include/CFL/GrammarBuilder.h +3 -1
  25. package/SVF-linux-aarch64/include/DDA/ContextDDA.h +1 -0
  26. package/SVF-linux-aarch64/include/DDA/DDAClient.h +2 -2
  27. package/SVF-linux-aarch64/include/DDA/DDAPass.h +5 -1
  28. package/SVF-linux-aarch64/include/DDA/DDAStat.h +2 -1
  29. package/SVF-linux-aarch64/include/DDA/DDAVFSolver.h +3 -1
  30. package/SVF-linux-aarch64/include/DDA/FlowDDA.h +2 -1
  31. package/SVF-linux-aarch64/include/Graphs/CDG.h +6 -0
  32. package/SVF-linux-aarch64/include/Graphs/ICFGNode.h +1 -0
  33. package/SVF-linux-aarch64/include/Graphs/IRGraph.h +2 -3
  34. package/SVF-linux-aarch64/include/Graphs/SCC.h +4 -3
  35. package/SVF-linux-aarch64/include/Graphs/WTO.h +2 -3
  36. package/SVF-linux-aarch64/include/MSSA/MSSAMuChi.h +2 -1
  37. package/SVF-linux-aarch64/include/MSSA/MemPartition.h +1 -0
  38. package/SVF-linux-aarch64/include/MSSA/MemRegion.h +6 -2
  39. package/SVF-linux-aarch64/include/MSSA/SVFGBuilder.h +1 -1
  40. package/SVF-linux-aarch64/include/MTA/MHP.h +1 -0
  41. package/SVF-linux-aarch64/include/MTA/MTA.h +1 -5
  42. package/SVF-linux-aarch64/include/MTA/TCT.h +3 -2
  43. package/SVF-linux-aarch64/include/MemoryModel/AbstractPointsToDS.h +0 -2
  44. package/SVF-linux-aarch64/include/MemoryModel/AccessPath.h +6 -2
  45. package/SVF-linux-aarch64/include/MemoryModel/MutablePointsToDS.h +0 -1
  46. package/SVF-linux-aarch64/include/MemoryModel/PersistentPointsToCache.h +1 -1
  47. package/SVF-linux-aarch64/include/MemoryModel/PersistentPointsToDS.h +0 -1
  48. package/SVF-linux-aarch64/include/MemoryModel/PointerAnalysis.h +2 -7
  49. package/SVF-linux-aarch64/include/MemoryModel/PointerAnalysisImpl.h +5 -1
  50. package/SVF-linux-aarch64/include/MemoryModel/PointsTo.h +2 -1
  51. package/SVF-linux-aarch64/include/MemoryModel/SVFLoop.h +4 -1
  52. package/SVF-linux-aarch64/include/SABER/ProgSlice.h +0 -1
  53. package/SVF-linux-aarch64/include/SABER/SaberCheckerAPI.h +1 -2
  54. package/SVF-linux-aarch64/include/SABER/SaberSVFGBuilder.h +5 -1
  55. package/SVF-linux-aarch64/include/SABER/SrcSnkDDA.h +1 -1
  56. package/SVF-linux-aarch64/include/SVF-LLVM/LLVMLoopAnalysis.h +0 -1
  57. package/SVF-linux-aarch64/include/SVF-LLVM/LLVMUtil.h +2 -0
  58. package/SVF-linux-aarch64/include/SVFIR/ObjTypeInfo.h +3 -2
  59. package/SVF-linux-aarch64/include/SVFIR/PAGBuilderFromFile.h +1 -0
  60. package/SVF-linux-aarch64/include/SVFIR/SVFIR.h +3 -1
  61. package/SVF-linux-aarch64/include/SVFIR/SVFStatements.h +1 -0
  62. package/SVF-linux-aarch64/include/SVFIR/SVFType.h +0 -59
  63. package/SVF-linux-aarch64/include/SVFIR/SVFValue.h +2 -3
  64. package/SVF-linux-aarch64/include/SVFIR/SVFVariables.h +7 -1
  65. package/SVF-linux-aarch64/include/Util/CDGBuilder.h +8 -2
  66. package/SVF-linux-aarch64/include/Util/CallGraphBuilder.h +0 -2
  67. package/SVF-linux-aarch64/include/Util/CoreBitVector.h +1 -1
  68. package/SVF-linux-aarch64/include/Util/CxtStmt.h +0 -2
  69. package/SVF-linux-aarch64/include/Util/DPItem.h +2 -1
  70. package/SVF-linux-aarch64/include/Util/ExtAPI.h +3 -4
  71. package/SVF-linux-aarch64/include/Util/GeneralType.h +52 -48
  72. package/SVF-linux-aarch64/include/Util/Hash.h +56 -0
  73. package/SVF-linux-aarch64/include/Util/NodeIDAllocator.h +1 -1
  74. package/SVF-linux-aarch64/include/Util/Options.h +0 -1
  75. package/SVF-linux-aarch64/include/Util/PTAStat.h +3 -4
  76. package/SVF-linux-aarch64/include/Util/SVFBugReport.h +7 -9
  77. package/SVF-linux-aarch64/include/Util/SVFLoopAndDomInfo.h +7 -4
  78. package/SVF-linux-aarch64/include/Util/SVFStat.h +1 -0
  79. package/SVF-linux-aarch64/include/Util/SVFUtil.h +5 -5
  80. package/SVF-linux-aarch64/include/Util/SparseBitVector.h +13 -0
  81. package/SVF-linux-aarch64/include/Util/ThreadAPI.h +1 -1
  82. package/SVF-linux-aarch64/include/Util/WorkList.h +2 -2
  83. package/SVF-linux-aarch64/include/Util/Z3Expr.h +1 -1
  84. package/SVF-linux-aarch64/include/WPA/Andersen.h +3 -3
  85. package/SVF-linux-aarch64/include/WPA/AndersenPWC.h +2 -1
  86. package/SVF-linux-aarch64/include/WPA/CSC.h +5 -5
  87. package/SVF-linux-aarch64/include/WPA/FlowSensitive.h +1 -2
  88. package/SVF-linux-aarch64/include/WPA/Steensgaard.h +5 -0
  89. package/SVF-linux-aarch64/include/WPA/TypeAnalysis.h +5 -0
  90. package/SVF-linux-aarch64/include/WPA/VersionedFlowSensitive.h +1 -4
  91. package/SVF-linux-aarch64/include/WPA/WPAFSSolver.h +1 -0
  92. package/SVF-linux-aarch64/include/WPA/WPAPass.h +5 -1
  93. package/SVF-linux-aarch64/include/WPA/WPASolver.h +1 -0
  94. package/SVF-linux-aarch64/include/WPA/WPAStat.h +1 -0
  95. package/SVF-linux-aarch64/lib/cmake/SVF/SVFTargets.cmake +1 -1
  96. package/SVF-linux-aarch64/lib/libSvfCore.so.3.4 +0 -0
  97. package/SVF-linux-aarch64/lib/libSvfLLVM.so.3.4 +0 -0
  98. package/SVF-linux-x86_64/bin/ae +0 -0
  99. package/SVF-linux-x86_64/bin/mta +0 -0
  100. package/SVF-linux-x86_64/bin/saber +0 -0
  101. package/SVF-linux-x86_64/bin/svf-ex +0 -0
  102. package/SVF-linux-x86_64/bin/wpa +0 -0
  103. package/SVF-linux-x86_64/include/AE/Core/AbstractState.h +1 -1
  104. package/SVF-linux-x86_64/include/AE/Core/ICFGWTO.h +4 -1
  105. package/SVF-linux-x86_64/include/AE/Core/NumericValue.h +2 -1
  106. package/SVF-linux-x86_64/include/AE/Core/RelExeState.h +1 -0
  107. package/SVF-linux-x86_64/include/AE/Core/RelationSolver.h +5 -1
  108. package/SVF-linux-x86_64/include/AE/Svfexe/AbsExtAPI.h +9 -3
  109. package/SVF-linux-x86_64/include/AE/Svfexe/SparseAbstractInterpretation.h +3 -1
  110. package/SVF-linux-x86_64/include/CFL/CFGNormalizer.h +2 -1
  111. package/SVF-linux-x86_64/include/CFL/CFGrammar.h +8 -4
  112. package/SVF-linux-x86_64/include/CFL/CFLAlias.h +3 -2
  113. package/SVF-linux-x86_64/include/CFL/CFLBase.h +4 -9
  114. package/SVF-linux-x86_64/include/CFL/CFLGramGraphChecker.h +3 -1
  115. package/SVF-linux-x86_64/include/CFL/CFLGraphBuilder.h +1 -0
  116. package/SVF-linux-x86_64/include/CFL/CFLSVFGBuilder.h +5 -0
  117. package/SVF-linux-x86_64/include/CFL/CFLSolver.h +2 -1
  118. package/SVF-linux-x86_64/include/CFL/CFLStat.h +2 -2
  119. package/SVF-linux-x86_64/include/CFL/CFLVF.h +5 -2
  120. package/SVF-linux-x86_64/include/CFL/GrammarBuilder.h +3 -1
  121. package/SVF-linux-x86_64/include/DDA/ContextDDA.h +1 -0
  122. package/SVF-linux-x86_64/include/DDA/DDAClient.h +2 -2
  123. package/SVF-linux-x86_64/include/DDA/DDAPass.h +5 -1
  124. package/SVF-linux-x86_64/include/DDA/DDAStat.h +2 -1
  125. package/SVF-linux-x86_64/include/DDA/DDAVFSolver.h +3 -1
  126. package/SVF-linux-x86_64/include/DDA/FlowDDA.h +2 -1
  127. package/SVF-linux-x86_64/include/Graphs/CDG.h +6 -0
  128. package/SVF-linux-x86_64/include/Graphs/ICFGNode.h +1 -0
  129. package/SVF-linux-x86_64/include/Graphs/IRGraph.h +2 -3
  130. package/SVF-linux-x86_64/include/Graphs/SCC.h +4 -3
  131. package/SVF-linux-x86_64/include/Graphs/WTO.h +2 -3
  132. package/SVF-linux-x86_64/include/MSSA/MSSAMuChi.h +2 -1
  133. package/SVF-linux-x86_64/include/MSSA/MemPartition.h +1 -0
  134. package/SVF-linux-x86_64/include/MSSA/MemRegion.h +6 -2
  135. package/SVF-linux-x86_64/include/MSSA/SVFGBuilder.h +1 -1
  136. package/SVF-linux-x86_64/include/MTA/MHP.h +1 -0
  137. package/SVF-linux-x86_64/include/MTA/MTA.h +1 -5
  138. package/SVF-linux-x86_64/include/MTA/TCT.h +3 -2
  139. package/SVF-linux-x86_64/include/MemoryModel/AbstractPointsToDS.h +0 -2
  140. package/SVF-linux-x86_64/include/MemoryModel/AccessPath.h +6 -2
  141. package/SVF-linux-x86_64/include/MemoryModel/MutablePointsToDS.h +0 -1
  142. package/SVF-linux-x86_64/include/MemoryModel/PersistentPointsToCache.h +1 -1
  143. package/SVF-linux-x86_64/include/MemoryModel/PersistentPointsToDS.h +0 -1
  144. package/SVF-linux-x86_64/include/MemoryModel/PointerAnalysis.h +2 -7
  145. package/SVF-linux-x86_64/include/MemoryModel/PointerAnalysisImpl.h +5 -1
  146. package/SVF-linux-x86_64/include/MemoryModel/PointsTo.h +2 -1
  147. package/SVF-linux-x86_64/include/MemoryModel/SVFLoop.h +4 -1
  148. package/SVF-linux-x86_64/include/SABER/ProgSlice.h +0 -1
  149. package/SVF-linux-x86_64/include/SABER/SaberCheckerAPI.h +1 -2
  150. package/SVF-linux-x86_64/include/SABER/SaberSVFGBuilder.h +5 -1
  151. package/SVF-linux-x86_64/include/SABER/SrcSnkDDA.h +1 -1
  152. package/SVF-linux-x86_64/include/SVF-LLVM/LLVMLoopAnalysis.h +0 -1
  153. package/SVF-linux-x86_64/include/SVF-LLVM/LLVMUtil.h +2 -0
  154. package/SVF-linux-x86_64/include/SVFIR/ObjTypeInfo.h +3 -2
  155. package/SVF-linux-x86_64/include/SVFIR/PAGBuilderFromFile.h +1 -0
  156. package/SVF-linux-x86_64/include/SVFIR/SVFIR.h +3 -1
  157. package/SVF-linux-x86_64/include/SVFIR/SVFStatements.h +1 -0
  158. package/SVF-linux-x86_64/include/SVFIR/SVFType.h +0 -59
  159. package/SVF-linux-x86_64/include/SVFIR/SVFValue.h +2 -3
  160. package/SVF-linux-x86_64/include/SVFIR/SVFVariables.h +7 -1
  161. package/SVF-linux-x86_64/include/Util/CDGBuilder.h +8 -2
  162. package/SVF-linux-x86_64/include/Util/CallGraphBuilder.h +0 -2
  163. package/SVF-linux-x86_64/include/Util/CoreBitVector.h +1 -1
  164. package/SVF-linux-x86_64/include/Util/CxtStmt.h +0 -2
  165. package/SVF-linux-x86_64/include/Util/DPItem.h +2 -1
  166. package/SVF-linux-x86_64/include/Util/ExtAPI.h +3 -4
  167. package/SVF-linux-x86_64/include/Util/GeneralType.h +52 -48
  168. package/SVF-linux-x86_64/include/Util/Hash.h +56 -0
  169. package/SVF-linux-x86_64/include/Util/NodeIDAllocator.h +1 -1
  170. package/SVF-linux-x86_64/include/Util/Options.h +0 -1
  171. package/SVF-linux-x86_64/include/Util/PTAStat.h +3 -4
  172. package/SVF-linux-x86_64/include/Util/SVFBugReport.h +7 -9
  173. package/SVF-linux-x86_64/include/Util/SVFLoopAndDomInfo.h +7 -4
  174. package/SVF-linux-x86_64/include/Util/SVFStat.h +1 -0
  175. package/SVF-linux-x86_64/include/Util/SVFUtil.h +5 -5
  176. package/SVF-linux-x86_64/include/Util/SparseBitVector.h +13 -0
  177. package/SVF-linux-x86_64/include/Util/ThreadAPI.h +1 -1
  178. package/SVF-linux-x86_64/include/Util/WorkList.h +2 -2
  179. package/SVF-linux-x86_64/include/Util/Z3Expr.h +1 -1
  180. package/SVF-linux-x86_64/include/WPA/Andersen.h +3 -3
  181. package/SVF-linux-x86_64/include/WPA/AndersenPWC.h +2 -1
  182. package/SVF-linux-x86_64/include/WPA/CSC.h +5 -5
  183. package/SVF-linux-x86_64/include/WPA/FlowSensitive.h +1 -2
  184. package/SVF-linux-x86_64/include/WPA/Steensgaard.h +5 -0
  185. package/SVF-linux-x86_64/include/WPA/TypeAnalysis.h +5 -0
  186. package/SVF-linux-x86_64/include/WPA/VersionedFlowSensitive.h +1 -4
  187. package/SVF-linux-x86_64/include/WPA/WPAFSSolver.h +1 -0
  188. package/SVF-linux-x86_64/include/WPA/WPAPass.h +5 -1
  189. package/SVF-linux-x86_64/include/WPA/WPASolver.h +1 -0
  190. package/SVF-linux-x86_64/include/WPA/WPAStat.h +1 -0
  191. package/SVF-linux-x86_64/lib/cmake/SVF/SVFTargets.cmake +1 -1
  192. package/SVF-linux-x86_64/lib/libSvfCore.so.3.4 +0 -0
  193. package/SVF-linux-x86_64/lib/libSvfLLVM.so.3.4 +0 -0
  194. package/SVF-osx/bin/ae +0 -0
  195. package/SVF-osx/bin/cfl +0 -0
  196. package/SVF-osx/bin/dvf +0 -0
  197. package/SVF-osx/bin/llvm2svf +0 -0
  198. package/SVF-osx/bin/mta +0 -0
  199. package/SVF-osx/bin/saber +0 -0
  200. package/SVF-osx/bin/svf-ex +0 -0
  201. package/SVF-osx/bin/wpa +0 -0
  202. package/SVF-osx/include/AE/Core/AbstractState.h +1 -1
  203. package/SVF-osx/include/AE/Core/ICFGWTO.h +4 -1
  204. package/SVF-osx/include/AE/Core/NumericValue.h +2 -1
  205. package/SVF-osx/include/AE/Core/RelExeState.h +1 -0
  206. package/SVF-osx/include/AE/Core/RelationSolver.h +5 -1
  207. package/SVF-osx/include/AE/Svfexe/AbsExtAPI.h +9 -3
  208. package/SVF-osx/include/AE/Svfexe/SparseAbstractInterpretation.h +3 -1
  209. package/SVF-osx/include/CFL/CFGNormalizer.h +2 -1
  210. package/SVF-osx/include/CFL/CFGrammar.h +8 -4
  211. package/SVF-osx/include/CFL/CFLAlias.h +3 -2
  212. package/SVF-osx/include/CFL/CFLBase.h +4 -9
  213. package/SVF-osx/include/CFL/CFLGramGraphChecker.h +3 -1
  214. package/SVF-osx/include/CFL/CFLGraphBuilder.h +1 -0
  215. package/SVF-osx/include/CFL/CFLSVFGBuilder.h +5 -0
  216. package/SVF-osx/include/CFL/CFLSolver.h +2 -1
  217. package/SVF-osx/include/CFL/CFLStat.h +2 -2
  218. package/SVF-osx/include/CFL/CFLVF.h +5 -2
  219. package/SVF-osx/include/CFL/GrammarBuilder.h +3 -1
  220. package/SVF-osx/include/DDA/ContextDDA.h +1 -0
  221. package/SVF-osx/include/DDA/DDAClient.h +2 -2
  222. package/SVF-osx/include/DDA/DDAPass.h +5 -1
  223. package/SVF-osx/include/DDA/DDAStat.h +2 -1
  224. package/SVF-osx/include/DDA/DDAVFSolver.h +3 -1
  225. package/SVF-osx/include/DDA/FlowDDA.h +2 -1
  226. package/SVF-osx/include/Graphs/CDG.h +6 -0
  227. package/SVF-osx/include/Graphs/ICFGNode.h +1 -0
  228. package/SVF-osx/include/Graphs/IRGraph.h +2 -3
  229. package/SVF-osx/include/Graphs/SCC.h +4 -3
  230. package/SVF-osx/include/Graphs/WTO.h +2 -3
  231. package/SVF-osx/include/MSSA/MSSAMuChi.h +2 -1
  232. package/SVF-osx/include/MSSA/MemPartition.h +1 -0
  233. package/SVF-osx/include/MSSA/MemRegion.h +6 -2
  234. package/SVF-osx/include/MSSA/SVFGBuilder.h +1 -1
  235. package/SVF-osx/include/MTA/MHP.h +1 -0
  236. package/SVF-osx/include/MTA/MTA.h +1 -5
  237. package/SVF-osx/include/MTA/TCT.h +3 -2
  238. package/SVF-osx/include/MemoryModel/AbstractPointsToDS.h +0 -2
  239. package/SVF-osx/include/MemoryModel/AccessPath.h +6 -2
  240. package/SVF-osx/include/MemoryModel/MutablePointsToDS.h +0 -1
  241. package/SVF-osx/include/MemoryModel/PersistentPointsToCache.h +1 -1
  242. package/SVF-osx/include/MemoryModel/PersistentPointsToDS.h +0 -1
  243. package/SVF-osx/include/MemoryModel/PointerAnalysis.h +2 -7
  244. package/SVF-osx/include/MemoryModel/PointerAnalysisImpl.h +5 -1
  245. package/SVF-osx/include/MemoryModel/PointsTo.h +2 -1
  246. package/SVF-osx/include/MemoryModel/SVFLoop.h +4 -1
  247. package/SVF-osx/include/SABER/ProgSlice.h +0 -1
  248. package/SVF-osx/include/SABER/SaberCheckerAPI.h +1 -2
  249. package/SVF-osx/include/SABER/SaberSVFGBuilder.h +5 -1
  250. package/SVF-osx/include/SABER/SrcSnkDDA.h +1 -1
  251. package/SVF-osx/include/SVF-LLVM/LLVMLoopAnalysis.h +0 -1
  252. package/SVF-osx/include/SVF-LLVM/LLVMUtil.h +2 -0
  253. package/SVF-osx/include/SVFIR/ObjTypeInfo.h +3 -2
  254. package/SVF-osx/include/SVFIR/PAGBuilderFromFile.h +1 -0
  255. package/SVF-osx/include/SVFIR/SVFIR.h +3 -1
  256. package/SVF-osx/include/SVFIR/SVFStatements.h +1 -0
  257. package/SVF-osx/include/SVFIR/SVFType.h +0 -59
  258. package/SVF-osx/include/SVFIR/SVFValue.h +2 -3
  259. package/SVF-osx/include/SVFIR/SVFVariables.h +7 -1
  260. package/SVF-osx/include/Util/CDGBuilder.h +8 -2
  261. package/SVF-osx/include/Util/CallGraphBuilder.h +0 -2
  262. package/SVF-osx/include/Util/CoreBitVector.h +1 -1
  263. package/SVF-osx/include/Util/CxtStmt.h +0 -2
  264. package/SVF-osx/include/Util/DPItem.h +2 -1
  265. package/SVF-osx/include/Util/ExtAPI.h +3 -4
  266. package/SVF-osx/include/Util/GeneralType.h +52 -48
  267. package/SVF-osx/include/Util/Hash.h +56 -0
  268. package/SVF-osx/include/Util/NodeIDAllocator.h +1 -1
  269. package/SVF-osx/include/Util/Options.h +0 -1
  270. package/SVF-osx/include/Util/PTAStat.h +3 -4
  271. package/SVF-osx/include/Util/SVFBugReport.h +7 -9
  272. package/SVF-osx/include/Util/SVFLoopAndDomInfo.h +7 -4
  273. package/SVF-osx/include/Util/SVFStat.h +1 -0
  274. package/SVF-osx/include/Util/SVFUtil.h +5 -5
  275. package/SVF-osx/include/Util/SparseBitVector.h +13 -0
  276. package/SVF-osx/include/Util/ThreadAPI.h +1 -1
  277. package/SVF-osx/include/Util/WorkList.h +2 -2
  278. package/SVF-osx/include/Util/Z3Expr.h +1 -1
  279. package/SVF-osx/include/WPA/Andersen.h +3 -3
  280. package/SVF-osx/include/WPA/AndersenPWC.h +2 -1
  281. package/SVF-osx/include/WPA/CSC.h +5 -5
  282. package/SVF-osx/include/WPA/FlowSensitive.h +1 -2
  283. package/SVF-osx/include/WPA/Steensgaard.h +5 -0
  284. package/SVF-osx/include/WPA/TypeAnalysis.h +5 -0
  285. package/SVF-osx/include/WPA/VersionedFlowSensitive.h +1 -4
  286. package/SVF-osx/include/WPA/WPAFSSolver.h +1 -0
  287. package/SVF-osx/include/WPA/WPAPass.h +5 -1
  288. package/SVF-osx/include/WPA/WPASolver.h +1 -0
  289. package/SVF-osx/include/WPA/WPAStat.h +1 -0
  290. package/SVF-osx/lib/cmake/SVF/SVFTargets.cmake +1 -1
  291. package/SVF-osx/lib/extapi.bc +2 -2
  292. package/SVF-osx/lib/libSvfCore.3.4.dylib +0 -0
  293. package/SVF-osx/lib/libSvfLLVM.3.4.dylib +0 -0
  294. package/package.json +1 -1
@@ -30,13 +30,14 @@
30
30
  #ifndef TCTNodeDetector_H_
31
31
  #define TCTNodeDetector_H_
32
32
 
33
+ #include <vector>
34
+
33
35
  #include "MemoryModel/PointerAnalysis.h"
34
36
  #include "Graphs/SCC.h"
35
37
  #include "Graphs/ThreadCallGraph.h"
36
38
  #include "Util/CxtStmt.h"
39
+ #include "Util/GeneralType.h"
37
40
  #include "Util/SVFUtil.h"
38
- #include <set>
39
- #include <vector>
40
41
 
41
42
  namespace SVF
42
43
  {
@@ -53,8 +53,6 @@
53
53
  #ifndef ABSTRACT_POINTSTO_H_
54
54
  #define ABSTRACT_POINTSTO_H_
55
55
 
56
- #include "SVFIR/SVFType.h"
57
-
58
56
  namespace SVF
59
57
  {
60
58
  /// Basic points-to data structure
@@ -33,13 +33,17 @@
33
33
  #ifndef AccessPath_H_
34
34
  #define AccessPath_H_
35
35
 
36
+ #include <utility>
37
+ #include <vector>
36
38
 
37
- #include "SVFIR/SVFValue.h"
38
-
39
+ #include "Util/GeneralType.h"
40
+ #include "Util/Hash.h"
39
41
 
40
42
  namespace SVF
41
43
  {
42
44
 
45
+ class SVFStructType;
46
+ class SVFType;
43
47
  class SVFVar;
44
48
  class ValVar;
45
49
 
@@ -39,7 +39,6 @@
39
39
  #include<fstream>
40
40
 
41
41
  #include "MemoryModel/AbstractPointsToDS.h"
42
- #include "SVFIR/SVFType.h"
43
42
  #include "Util/SVFUtil.h"
44
43
 
45
44
  namespace SVF
@@ -19,7 +19,7 @@
19
19
  #include <vector>
20
20
  #include <functional>
21
21
 
22
- #include "SVFIR/SVFType.h"
22
+ #include "Util/GeneralType.h"
23
23
 
24
24
  namespace SVF
25
25
  {
@@ -16,7 +16,6 @@
16
16
 
17
17
  #include "MemoryModel/AbstractPointsToDS.h"
18
18
  #include "MemoryModel/PersistentPointsToCache.h"
19
- #include "MemoryModel/PointsTo.h"
20
19
  #include "Util/SVFUtil.h"
21
20
 
22
21
  namespace SVF
@@ -34,13 +34,8 @@
34
34
  #include <signal.h>
35
35
 
36
36
  #include "Graphs/CHG.h"
37
- #include "Graphs/ThreadCallGraph.h"
37
+ #include "Graphs/CallGraph.h"
38
38
  #include "Graphs/SCC.h"
39
- #include "MemoryModel/AbstractPointsToDS.h"
40
- #include "MemoryModel/ConditionalPT.h"
41
- #include "MemoryModel/MutablePointsToDS.h"
42
- #include "MemoryModel/PersistentPointsToDS.h"
43
- #include "MemoryModel/PointsTo.h"
44
39
  #include "MemoryModel/PTATY.h"
45
40
  #include "SVFIR/SVFIR.h"
46
41
 
@@ -48,9 +43,9 @@ namespace SVF
48
43
  {
49
44
 
50
45
  class CommonCHGraph;
51
-
52
46
  class ICFG;
53
47
  class PTAStat;
48
+
54
49
  /*
55
50
  * Pointer Analysis Base Class
56
51
  */
@@ -30,9 +30,13 @@
30
30
  #ifndef INCLUDE_MEMORYMODEL_POINTERANALYSISIMPL_H_
31
31
  #define INCLUDE_MEMORYMODEL_POINTERANALYSISIMPL_H_
32
32
 
33
- #include <Graphs/ConsG.h>
33
+ #include "Graphs/ConsG.h"
34
34
  #include "MemoryModel/PTATY.h"
35
35
  #include "MemoryModel/PointerAnalysis.h"
36
+ #include "MemoryModel/AbstractPointsToDS.h"
37
+ #include "MemoryModel/MutablePointsToDS.h"
38
+ #include "MemoryModel/PersistentPointsToDS.h"
39
+ #include "MemoryModel/ConditionalPT.h"
36
40
 
37
41
  namespace SVF
38
42
  {
@@ -12,9 +12,10 @@
12
12
  #ifndef POINTSTO_H_
13
13
  #define POINTSTO_H_
14
14
 
15
+ #include <memory>
15
16
  #include <vector>
16
17
 
17
- #include "SVFIR/SVFType.h"
18
+ #include "Util/GeneralType.h"
18
19
  #include "Util/BitVector.h"
19
20
  #include "Util/CoreBitVector.h"
20
21
  #include "Util/SparseBitVector.h"
@@ -30,11 +30,14 @@
30
30
  #ifndef SVF_SVFLOOP_H
31
31
  #define SVF_SVFLOOP_H
32
32
 
33
- #include "SVFIR/SVFType.h"
33
+ #include "Util/GeneralType.h"
34
34
 
35
35
  namespace SVF
36
36
  {
37
37
 
38
+ class ICFGEdge;
39
+ class ICFGNode;
40
+
38
41
  class SVFLoop
39
42
  {
40
43
 
@@ -40,7 +40,6 @@
40
40
  #include "SABER/SaberCondAllocator.h"
41
41
  #include "Util/WorkList.h"
42
42
  #include "Graphs/SVFG.h"
43
- #include "Util/DPItem.h"
44
43
  #include "Util/SVFBugReport.h"
45
44
 
46
45
  namespace SVF
@@ -30,9 +30,8 @@
30
30
  #ifndef SABERCHECKERAPI_H_
31
31
  #define SABERCHECKERAPI_H_
32
32
 
33
- #include "Util/SVFUtil.h"
34
33
  #include "Graphs/ICFGNode.h"
35
- #include "SVFIR/SVFVariables.h" // add header
34
+ #include "SVFIR/SVFVariables.h"
36
35
 
37
36
  namespace SVF
38
37
  {
@@ -30,15 +30,19 @@
30
30
  #ifndef SABERSVFGBUILDER_H_
31
31
  #define SABERSVFGBUILDER_H_
32
32
 
33
+ #include "Graphs/SVFG.h"
33
34
  #include "MSSA/SVFGBuilder.h"
34
- #include "SVFIR/SVFValue.h"
35
+ #include "Util/GeneralType.h"
35
36
  #include "Util/WorkList.h"
36
37
 
37
38
 
38
39
  namespace SVF
39
40
  {
40
41
 
42
+ class BVDataPTAImpl;
43
+ class CallICFGNode;
41
44
  class SaberCondAllocator;
45
+ class ValVar;
42
46
 
43
47
  class SaberSVFGBuilder : public SVFGBuilder
44
48
  {
@@ -37,7 +37,7 @@
37
37
  #ifndef SRCSNKANALYSIS_H_
38
38
  #define SRCSNKANALYSIS_H_
39
39
 
40
- #include "Graphs/SVFGOPT.h"
40
+ #include "Graphs/SVFG.h"
41
41
  #include "SABER/ProgSlice.h"
42
42
  #include "SABER/SaberSVFGBuilder.h"
43
43
  #include "Util/GraphReachSolver.h"
@@ -31,7 +31,6 @@
31
31
  #define SVF_LLVMLOOPANALYSIS_H
32
32
 
33
33
  #include "SVFIR/SVFIR.h"
34
- #include "MemoryModel/SVFLoop.h"
35
34
  #include "SVF-LLVM/BasicTypes.h"
36
35
 
37
36
  namespace SVF
@@ -38,6 +38,8 @@
38
38
  namespace SVF
39
39
  {
40
40
 
41
+ class SVFBasicBlock;
42
+
41
43
  namespace LLVMUtil
42
44
  {
43
45
 
@@ -30,12 +30,13 @@
30
30
  #ifndef INCLUDE_SVFIR_OBJTYPEINFO_H_
31
31
  #define INCLUDE_SVFIR_OBJTYPEINFO_H_
32
32
 
33
+ #include "Util/GeneralType.h"
33
34
 
34
- #include "Util/SVFUtil.h"
35
- #include "MemoryModel/AccessPath.h"
36
35
  namespace SVF
37
36
  {
38
37
 
38
+ class SVFType;
39
+
39
40
  /*!
40
41
  * Type Info of an abstract memory object
41
42
  */
@@ -31,6 +31,7 @@
31
31
  #define INCLUDE_SVFIR_PAGBUILDERFROMFILE_H_
32
32
 
33
33
  #include "SVFIR/SVFIR.h"
34
+ #include "Util/GeneralType.h"
34
35
 
35
36
  namespace SVF
36
37
  {
@@ -30,7 +30,10 @@
30
30
  #ifndef INCLUDE_SVFIR_H_
31
31
  #define INCLUDE_SVFIR_H_
32
32
 
33
+ #include "Graphs/ICFG.h"
33
34
  #include "Graphs/IRGraph.h"
35
+ #include "Util/GeneralType.h"
36
+ #include "Util/SVFUtil.h"
34
37
 
35
38
  namespace SVF
36
39
  {
@@ -44,7 +47,6 @@ class SVFIR : public IRGraph
44
47
  friend class SVFIRBuilder;
45
48
  friend class ExternalPAG;
46
49
  friend class PAGBuilderFromFile;
47
- friend class TypeBasedHeapCloning;
48
50
  friend class BVDataPTAImpl;
49
51
  friend class GraphDBClient;
50
52
  friend class GraphDBSVFIRBuilder;
@@ -33,6 +33,7 @@
33
33
 
34
34
  #include "Graphs/GenericGraph.h"
35
35
  #include "MemoryModel/AccessPath.h"
36
+ #include "Util/GeneralType.h"
36
37
 
37
38
  namespace SVF
38
39
  {
@@ -30,10 +30,8 @@
30
30
  #ifndef INCLUDE_SVFIR_SVFTYPE_H_
31
31
  #define INCLUDE_SVFIR_SVFTYPE_H_
32
32
 
33
- #include "Util/SparseBitVector.h"
34
33
  #include "Util/GeneralType.h"
35
34
 
36
-
37
35
  namespace SVF
38
36
  {
39
37
  class SVFType;
@@ -557,21 +555,6 @@ public:
557
555
  void print(std::ostream& os) const override;
558
556
  };
559
557
 
560
- // TODO: be explicit that this is a pair of 32-bit unsigneds?
561
- template <> struct Hash<NodePair>
562
- {
563
- size_t operator()(const NodePair& p) const
564
- {
565
- // Make sure our assumptions are sound: use u32_t
566
- // and u64_t. If NodeID is not actually u32_t or size_t
567
- // is not u64_t we should be fine since we get a
568
- // consistent result.
569
- uint32_t first = (uint32_t)(p.first);
570
- uint32_t second = (uint32_t)(p.second);
571
- return ((uint64_t)(first) << 32) | (uint64_t)(second);
572
- }
573
- };
574
-
575
558
  #if !defined NDBUG && defined USE_SVF_DBOUT
576
559
  // TODO: This comes from the following link
577
560
  // https://github.com/llvm/llvm-project/blob/75e33f71c2dae584b13a7d1186ae0a038ba98838/llvm/include/llvm/Support/Debug.h#L64
@@ -642,46 +625,4 @@ enum AliasResult
642
625
 
643
626
  } // End namespace SVF
644
627
 
645
- template <> struct std::hash<SVF::NodePair>
646
- {
647
- size_t operator()(const SVF::NodePair& p) const
648
- {
649
- // Make sure our assumptions are sound: use u32_t
650
- // and u64_t. If NodeID is not actually u32_t or size_t
651
- // is not u64_t we should be fine since we get a
652
- // consistent result.
653
- uint32_t first = (uint32_t)(p.first);
654
- uint32_t second = (uint32_t)(p.second);
655
- return ((uint64_t)(first) << 32) | (uint64_t)(second);
656
- }
657
- };
658
-
659
- /// Specialise hash for SparseBitVectors.
660
- template <unsigned N> struct std::hash<SVF::SparseBitVector<N>>
661
- {
662
- size_t operator()(const SVF::SparseBitVector<N>& sbv) const
663
- {
664
- SVF::Hash<std::pair<std::pair<size_t, size_t>, size_t>> h;
665
- return h(std::make_pair(std::make_pair(sbv.count(), sbv.find_first()),
666
- sbv.find_last()));
667
- }
668
- };
669
-
670
- template <typename T> struct std::hash<std::vector<T>>
671
- {
672
- size_t operator()(const std::vector<T>& v) const
673
- {
674
- // TODO: repetition with CBV.
675
- size_t h = v.size();
676
-
677
- SVF::Hash<T> hf;
678
- for (const T& t : v)
679
- {
680
- h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);
681
- }
682
-
683
- return h;
684
- }
685
- };
686
-
687
628
  #endif /* INCLUDE_SVFIR_SVFTYPE_H_ */
@@ -32,13 +32,12 @@
32
32
  #ifndef INCLUDE_SVFIR_SVFVALUE_H_
33
33
  #define INCLUDE_SVFIR_SVFVALUE_H_
34
34
 
35
- #include "SVFIR/SVFType.h"
36
- #include "Graphs/GraphPrinter.h"
37
-
35
+ #include "Util/GeneralType.h"
38
36
 
39
37
  namespace SVF
40
38
  {
41
39
 
40
+ class SVFType;
42
41
 
43
42
  class SVFValue
44
43
  {
@@ -32,14 +32,20 @@
32
32
  #ifndef INCLUDE_SVFIR_SVFVARIABLE_H_
33
33
  #define INCLUDE_SVFIR_SVFVARIABLE_H_
34
34
 
35
+ #include "Graphs/BasicBlockG.h"
35
36
  #include "Graphs/GenericGraph.h"
36
37
  #include "SVFIR/ObjTypeInfo.h"
37
38
  #include "SVFIR/SVFStatements.h"
39
+ #include "Util/GeneralType.h"
40
+ #include "Util/SVFLoopAndDomInfo.h"
41
+ #include "Util/SVFUtil.h"
38
42
 
39
43
  namespace SVF
40
44
  {
41
45
 
46
+ class FunObjVar;
42
47
  class SVFVar;
48
+
43
49
  /*
44
50
  * Program variables in SVFIR (based on PAG nodes)
45
51
  * These represent variables in the program analysis graph
@@ -2322,4 +2328,4 @@ public:
2322
2328
 
2323
2329
  } // End namespace SVF
2324
2330
 
2325
- #endif /* INCLUDE_SVFIR_SVFVARIABLE_H_ */
2331
+ #endif /* INCLUDE_SVFIR_SVFVARIABLE_H_ */
@@ -30,11 +30,17 @@
30
30
  #define SVF_CDGBUILDER_H
31
31
 
32
32
  #include "Graphs/CDG.h"
33
- #include "SVFIR/SVFValue.h"
33
+ #include "Util/GeneralType.h"
34
34
 
35
35
  // control dependence builder
36
36
  namespace SVF
37
37
  {
38
+
39
+ class FunObjVar;
40
+ class ICFGNode;
41
+ class SVFBasicBlock;
42
+ class SVFLoopAndDomInfo;
43
+
38
44
  class CDGBuilder
39
45
  {
40
46
  public:
@@ -104,4 +110,4 @@ private:
104
110
  }
105
111
 
106
112
 
107
- #endif //SVF_CDGBUILDER_H
113
+ #endif //SVF_CDGBUILDER_H
@@ -31,8 +31,6 @@
31
31
  #ifndef INCLUDE_SVF_FE_CALLGRAPHBUILDER_H_
32
32
  #define INCLUDE_SVF_FE_CALLGRAPHBUILDER_H_
33
33
 
34
- #include "Graphs/ThreadCallGraph.h"
35
-
36
34
  namespace SVF
37
35
  {
38
36
 
@@ -15,7 +15,7 @@
15
15
  #include <assert.h>
16
16
  #include <vector>
17
17
 
18
- #include "SVFIR/SVFType.h"
18
+ #include "Util/GeneralType.h"
19
19
 
20
20
  namespace SVF
21
21
  {
@@ -30,8 +30,6 @@
30
30
  #ifndef INCLUDE_UTIL_CXTSTMT_H_
31
31
  #define INCLUDE_UTIL_CXTSTMT_H_
32
32
 
33
- #include "SVFIR/SVFValue.h"
34
-
35
33
  namespace SVF
36
34
  {
37
35
 
@@ -31,6 +31,7 @@
31
31
  #define DPITEM_H_
32
32
 
33
33
  #include "MemoryModel/ConditionalPT.h"
34
+ #include "Util/GeneralType.h"
34
35
  #include <algorithm> // std::sort
35
36
 
36
37
  namespace SVF
@@ -615,4 +616,4 @@ struct std::hash<SVF::ContextCond>
615
616
  return h(cc.getContexts());
616
617
  }
617
618
  };
618
- #endif /* DPITEM_H_ */
619
+ #endif /* DPITEM_H_ */
@@ -30,11 +30,10 @@
30
30
  #ifndef __ExtAPI_H
31
31
  #define __ExtAPI_H
32
32
 
33
- #include "SVFIR/SVFValue.h"
34
- #include <Util/config.h>
33
+ #include "Util/GeneralType.h"
34
+
35
35
  #include <string>
36
36
  #include <vector>
37
- #include <map>
38
37
 
39
38
  /// For a more detailed explanation of how External APIs are handled in SVF, please refer to the SVF Wiki: https://github.com/SVF-tools/SVF/wiki/Handling-External-APIs-with-extapi.c
40
39
 
@@ -115,4 +114,4 @@ private:
115
114
  };
116
115
  } // End namespace SVF
117
116
 
118
- #endif
117
+ #endif
@@ -38,57 +38,12 @@
38
38
  #include <unordered_map>
39
39
  #include <unordered_set>
40
40
  #include <vector>
41
- #include <memory>
41
+
42
+ #include "Util/Hash.h"
42
43
  #include "Util/SparseBitVector.h"
43
44
 
44
45
  namespace SVF
45
46
  {
46
- typedef std::ostream OutStream;
47
- typedef unsigned u32_t;
48
- typedef signed s32_t;
49
- typedef unsigned long long u64_t;
50
- typedef signed long long s64_t;
51
- typedef unsigned char u8_t;
52
- typedef signed char s8_t;
53
- typedef unsigned short u16_t;
54
- typedef signed short s16_t;
55
-
56
- typedef u32_t NodeID;
57
- typedef u32_t EdgeID;
58
- typedef unsigned CallSiteID;
59
- typedef unsigned ThreadID;
60
- typedef s64_t APOffset;
61
-
62
- typedef SparseBitVector<> NodeBS;
63
- typedef unsigned PointsToID;
64
-
65
- /// provide extra hash function for std::pair handling
66
- template <class T> struct Hash;
67
-
68
- template <class S, class T> struct Hash<std::pair<S, T>>
69
- {
70
- // Pairing function from: http://szudzik.com/ElegantPairing.pdf
71
- static size_t szudzik(size_t a, size_t b)
72
- {
73
- return a > b ? b * b + a : a * a + a + b;
74
- }
75
-
76
- size_t operator()(const std::pair<S, T>& t) const
77
- {
78
- Hash<decltype(t.first)> first;
79
- Hash<decltype(t.second)> second;
80
- return szudzik(first(t.first), second(t.second));
81
- }
82
- };
83
-
84
- template <class T> struct Hash
85
- {
86
- size_t operator()(const T& t) const
87
- {
88
- std::hash<T> h;
89
- return h(t);
90
- }
91
- };
92
47
 
93
48
  template <typename Key, typename Hash = Hash<Key>,
94
49
  typename KeyEqual = std::equal_to<Key>,
@@ -108,6 +63,25 @@ template <typename Key, typename Value, typename Hash = Hash<Key>,
108
63
  typename Allocator = std::allocator<std::pair<const Key, Value>>>
109
64
  using OrderedMap = std::map<Key, Value, Compare, Allocator>;
110
65
 
66
+ typedef std::ostream OutStream;
67
+ typedef unsigned u32_t;
68
+ typedef signed s32_t;
69
+ typedef unsigned long long u64_t;
70
+ typedef signed long long s64_t;
71
+ typedef unsigned char u8_t;
72
+ typedef signed char s8_t;
73
+ typedef unsigned short u16_t;
74
+ typedef signed short s16_t;
75
+
76
+ typedef u32_t NodeID;
77
+ typedef u32_t EdgeID;
78
+ typedef unsigned CallSiteID;
79
+ typedef unsigned ThreadID;
80
+ typedef s64_t APOffset;
81
+
82
+ typedef SparseBitVector<> NodeBS;
83
+ typedef unsigned PointsToID;
84
+
111
85
  typedef std::pair<NodeID, NodeID> NodePair;
112
86
  typedef OrderedSet<NodeID> OrderedNodeSet;
113
87
  typedef Set<NodeID> NodeSet;
@@ -124,4 +98,34 @@ template <typename Key, typename Value, typename Hash = Hash<Key>,
124
98
  typedef Set<Version> VersionSet;
125
99
  typedef std::pair<NodeID, Version> VersionedVar;
126
100
  typedef Set<VersionedVar> VersionedVarSet;
127
- }
101
+
102
+ // TODO: be explicit that this is a pair of 32-bit unsigneds?
103
+ template <> struct Hash<NodePair>
104
+ {
105
+ size_t operator()(const NodePair& p) const
106
+ {
107
+ // Make sure our assumptions are sound: use u32_t
108
+ // and u64_t. If NodeID is not actually u32_t or size_t
109
+ // is not u64_t we should be fine since we get a
110
+ // consistent result.
111
+ uint32_t first = (uint32_t)(p.first);
112
+ uint32_t second = (uint32_t)(p.second);
113
+ return ((uint64_t)(first) << 32) | (uint64_t)(second);
114
+ }
115
+ };
116
+
117
+ } // namespace SVF
118
+
119
+ template <> struct std::hash<SVF::NodePair>
120
+ {
121
+ size_t operator()(const SVF::NodePair& p) const
122
+ {
123
+ // Make sure our assumptions are sound: use u32_t
124
+ // and u64_t. If NodeID is not actually u32_t or size_t
125
+ // is not u64_t we should be fine since we get a
126
+ // consistent result.
127
+ uint32_t first = (uint32_t)(p.first);
128
+ uint32_t second = (uint32_t)(p.second);
129
+ return ((uint64_t)(first) << 32) | (uint64_t)(second);
130
+ }
131
+ };
@@ -0,0 +1,56 @@
1
+ #ifndef Hash_H
2
+ #define Hash_H
3
+
4
+ #include <vector>
5
+
6
+ namespace SVF
7
+ {
8
+
9
+ /// provide extra hash function for std::pair handling
10
+ template <class T> struct Hash;
11
+
12
+ template <class S, class T> struct Hash<std::pair<S, T>>
13
+ {
14
+ // Pairing function from: http://szudzik.com/ElegantPairing.pdf
15
+ static size_t szudzik(size_t a, size_t b)
16
+ {
17
+ return a > b ? b * b + a : a * a + a + b;
18
+ }
19
+
20
+ size_t operator()(const std::pair<S, T>& t) const
21
+ {
22
+ Hash<decltype(t.first)> first;
23
+ Hash<decltype(t.second)> second;
24
+ return szudzik(first(t.first), second(t.second));
25
+ }
26
+ };
27
+
28
+ template <class T> struct Hash
29
+ {
30
+ size_t operator()(const T& t) const
31
+ {
32
+ std::hash<T> h;
33
+ return h(t);
34
+ }
35
+ };
36
+
37
+ } // namespace SVF
38
+
39
+ template <typename T> struct std::hash<std::vector<T>>
40
+ {
41
+ size_t operator()(const std::vector<T>& v) const
42
+ {
43
+ // TODO: repetition with CBV.
44
+ size_t h = v.size();
45
+
46
+ SVF::Hash<T> hf;
47
+ for (const T& t : v)
48
+ {
49
+ h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);
50
+ }
51
+
52
+ return h;
53
+ }
54
+ };
55
+
56
+ #endif // Hash_H
@@ -4,8 +4,8 @@
4
4
  #define NODEIDALLOCATOR_H_
5
5
 
6
6
  #include "FastCluster/fastcluster.h"
7
- #include "SVFIR/SVFType.h"
8
7
  #include "MemoryModel/PointsTo.h"
8
+ #include "Util/GeneralType.h"
9
9
 
10
10
  namespace SVF
11
11
  {