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,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
  {
@@ -3,7 +3,6 @@
3
3
  #ifndef OPTIONS_H_
4
4
  #define OPTIONS_H_
5
5
 
6
- #include <sstream>
7
6
  #include "Util/CommandLine.h"
8
7
  #include "Util/SVFStat.h"
9
8
  #include "MemoryModel/PTATY.h"
@@ -30,13 +30,12 @@
30
30
  #ifndef ANDERSENSTAT_H_
31
31
  #define ANDERSENSTAT_H_
32
32
 
33
- #include "SVFIR/SVFValue.h"
34
- #include "MemoryModel/PointsTo.h"
35
- #include "Util/SVFStat.h"
36
33
  #include <iostream>
37
- #include <map>
38
34
  #include <string>
39
35
 
36
+ #include "Util/SVFStat.h"
37
+ #include "Util/GeneralType.h"
38
+
40
39
  namespace SVF
41
40
  {
42
41
 
@@ -27,15 +27,11 @@
27
27
  #ifndef SVF_BUGRECODER_H
28
28
  #define SVF_BUGRECODER_H
29
29
 
30
- #include <vector>
31
- #include "SVFIR/SVFValue.h"
32
- #include "SVFIR/SVFVariables.h"
33
- #include "SVFIR/SVFStatements.h"
34
- #include "Graphs/ICFGNode.h"
35
30
  #include <string>
36
- #include <map>
31
+ #include <vector>
32
+
37
33
  #include "Util/cJSON.h"
38
- #include <set>
34
+ #include "Util/GeneralType.h"
39
35
 
40
36
  #define BRANCHFLAGMASK 0x00000010
41
37
  #define EVENTTYPEMASK 0x0000000f
@@ -43,6 +39,8 @@
43
39
  namespace SVF
44
40
  {
45
41
 
42
+ class ICFGNode;
43
+
46
44
  /*!
47
45
  * Bug Detector Recoder
48
46
  */
@@ -84,7 +82,7 @@ public:
84
82
 
85
83
  public:
86
84
  enum BugType {FULLBUFOVERFLOW, PARTIALBUFOVERFLOW, NEVERFREE, PARTIALLEAK, DOUBLEFREE, FILENEVERCLOSE, FILEPARTIALCLOSE, FULLNULLPTRDEREFERENCE, PARTIALNULLPTRDEREFERENCE};
87
- static const std::map<GenericBug::BugType, std::string> BugType2Str;
85
+ static const OrderedMap<GenericBug::BugType, std::string> BugType2Str;
88
86
 
89
87
  protected:
90
88
  BugType bugType;
@@ -424,4 +422,4 @@ public:
424
422
  };
425
423
  }
426
424
 
427
- #endif
425
+ #endif
@@ -31,13 +31,16 @@
31
31
  #ifndef SVFLOOPANDDOMINFO_H
32
32
  #define SVFLOOPANDDOMINFO_H
33
33
 
34
- #include "SVFIR/SVFType.h"
35
- #include "Graphs/GraphPrinter.h"
36
- #include "Util/Casting.h"
37
- #include "Graphs/BasicBlockG.h"
34
+ #include <algorithm>
35
+ #include <vector>
36
+
37
+ #include "Util/GeneralType.h"
38
38
 
39
39
  namespace SVF
40
40
  {
41
+
42
+ class SVFBasicBlock;
43
+
41
44
  class SVFLoopAndDomInfo
42
45
  {
43
46
 
@@ -31,6 +31,7 @@
31
31
  #define SVF_SVFSTAT_H
32
32
 
33
33
  #include "MemoryModel/PointsTo.h"
34
+ #include "Util/GeneralType.h"
34
35
 
35
36
  namespace SVF
36
37
  {
@@ -30,12 +30,12 @@
30
30
  #ifndef AnalysisUtil_H_
31
31
  #define AnalysisUtil_H_
32
32
 
33
- #include "FastCluster/fastcluster.h"
34
- #include "SVFIR/SVFValue.h"
35
- #include "Util/SVFLoopAndDomInfo.h"
36
- #include "Util/ExtAPI.h"
37
- #include "MemoryModel/PointsTo.h"
38
33
  #include <time.h>
34
+
35
+ #include "MemoryModel/PointsTo.h"
36
+ #include "Util/Casting.h"
37
+ #include "Util/ExtAPI.h"
38
+ #include "Util/GeneralType.h"
39
39
  #include "Util/NodeIDAllocator.h"
40
40
  #include "Util/ThreadAPI.h"
41
41
 
@@ -16,6 +16,8 @@
16
16
  #include <iterator>
17
17
  #include <list>
18
18
 
19
+ #include "Util/Hash.h"
20
+
19
21
  // Appease GCC?
20
22
  #ifdef __has_builtin
21
23
  # define HAS_CLZ __has_builtin(__builtin_clz)
@@ -1249,4 +1251,15 @@ void dump(const SparseBitVector<ElementSize> &LHS, std::ostream &out)
1249
1251
 
1250
1252
  } // End namespace SVF
1251
1253
 
1254
+ /// Specialise hash for SparseBitVectors.
1255
+ template <unsigned N> struct std::hash<SVF::SparseBitVector<N>>
1256
+ {
1257
+ size_t operator()(const SVF::SparseBitVector<N>& sbv) const
1258
+ {
1259
+ SVF::Hash<std::pair<std::pair<size_t, size_t>, size_t>> h;
1260
+ return h(std::make_pair(std::make_pair(sbv.count(), sbv.find_first()),
1261
+ sbv.find_last()));
1262
+ }
1263
+ };
1264
+
1252
1265
  #endif // SPARSEBITVECTOR_H
@@ -30,7 +30,7 @@
30
30
  #ifndef THREADAPI_H_
31
31
  #define THREADAPI_H_
32
32
 
33
- #include "SVFIR/SVFValue.h"
33
+ #include "Util/GeneralType.h"
34
34
 
35
35
  namespace SVF
36
36
  {
@@ -36,8 +36,6 @@
36
36
  #ifndef WORKLIST_H_
37
37
  #define WORKLIST_H_
38
38
 
39
- #include "SVFIR/SVFValue.h"
40
-
41
39
  #include <assert.h>
42
40
  #include <cstdlib>
43
41
  #include <vector>
@@ -45,6 +43,8 @@
45
43
  #include <list>
46
44
  #include <set>
47
45
 
46
+ #include "Util/GeneralType.h"
47
+
48
48
  namespace SVF
49
49
  {
50
50
 
@@ -30,7 +30,7 @@
30
30
  #define Z3_EXAMPLE_Z3EXPR_H
31
31
 
32
32
  #include "z3++.h"
33
- #include "SVFIR/SVFType.h"
33
+ #include "Util/GeneralType.h"
34
34
 
35
35
  namespace SVF
36
36
  {
@@ -37,17 +37,17 @@
37
37
 
38
38
  #include "MemoryModel/PTATY.h"
39
39
  #include "MemoryModel/PointerAnalysisImpl.h"
40
- #include "WPA/WPAStat.h"
40
+ #include "MemoryModel/PointsTo.h"
41
41
  #include "WPA/WPASolver.h"
42
- #include "SVFIR/SVFIR.h"
43
42
  #include "Graphs/ConsG.h"
43
+ #include "Util/GeneralType.h"
44
44
  #include "Util/Options.h"
45
45
 
46
46
  namespace SVF
47
47
  {
48
48
 
49
-
50
49
  class ThreadCallGraph;
50
+ class SVFIR;
51
51
 
52
52
  /*!
53
53
  * Abstract class of inclusion-based Pointer Analysis
@@ -34,11 +34,12 @@
34
34
  #include "WPA/Andersen.h"
35
35
  #include "WPA/CSC.h"
36
36
  #include "MemoryModel/PTATY.h"
37
- #include "MemoryModel/PointsTo.h"
38
37
 
39
38
  namespace SVF
40
39
  {
41
40
 
41
+ class PointsTo;
42
+
42
43
  /*!
43
44
  * Selective Cycle Detection Based Andersen Analysis
44
45
  */
@@ -30,17 +30,17 @@
30
30
  #ifndef PROJECT_CSC_H
31
31
  #define PROJECT_CSC_H
32
32
 
33
- #include "Graphs/ConsG.h"
33
+ #include <limits.h>
34
+
34
35
  #include "Graphs/SCC.h"
35
- #include "SVFIR/SVFValue.h" // for NodeBS
36
+ #include "Util/GeneralType.h"
36
37
  #include "Util/WorkList.h"
37
- #include <limits.h>
38
- #include <map>
39
- #include <stack>
40
38
 
41
39
  namespace SVF
42
40
  {
43
41
 
42
+ class ConstraintGraph;
43
+
44
44
  typedef SCCDetection<ConstraintGraph *> CGSCC;
45
45
 
46
46
  /*!
@@ -30,8 +30,7 @@
30
30
  #ifndef FLOWSENSITIVEANALYSIS_H_
31
31
  #define FLOWSENSITIVEANALYSIS_H_
32
32
 
33
- #include "FastCluster/fastcluster.h"
34
- #include "Graphs/SVFGOPT.h"
33
+ #include "Graphs/SVFG.h"
35
34
  #include "MemoryModel/PointerAnalysisImpl.h"
36
35
  #include "MSSA/SVFGBuilder.h"
37
36
  #include "WPA/WPAFSSolver.h"
@@ -9,9 +9,14 @@
9
9
  #define INCLUDE_WPA_STEENSGAARD_H_
10
10
 
11
11
  #include "WPA/Andersen.h"
12
+ #include "Util/GeneralType.h"
12
13
 
13
14
  namespace SVF
14
15
  {
16
+
17
+ class ConstraintGraph;
18
+ class SVFIR;
19
+
15
20
  /*!
16
21
  * Equivalence-based Pointer Analysis
17
22
  */