svf-lib 1.0.1374 → 1.0.1376

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 (679) hide show
  1. package/SVF-linux/Release-build/{lib/libSvf.a → svf-llvm/libSvfLLVM.a} +0 -0
  2. package/SVF-linux/{include → svf/include}/AbstractExecution/AbstractValue.h +0 -0
  3. package/SVF-linux/{include → svf/include}/AbstractExecution/AddressValue.h +0 -0
  4. package/SVF-linux/{include → svf/include}/AbstractExecution/ExeState.h +0 -0
  5. package/SVF-linux/{include → svf/include}/AbstractExecution/IntervalExeState.h +0 -0
  6. package/SVF-linux/{include → svf/include}/AbstractExecution/IntervalValue.h +0 -0
  7. package/SVF-linux/{include → svf/include}/AbstractExecution/NumericLiteral.h +0 -0
  8. package/SVF-linux/{include → svf/include}/AbstractExecution/RelExeState.h +0 -0
  9. package/SVF-linux/{include → svf/include}/AbstractExecution/RelationSolver.h +0 -0
  10. package/SVF-linux/{include → svf/include}/AbstractExecution/SVFIR2ItvExeState.h +0 -0
  11. package/SVF-linux/{include → svf/include}/AbstractExecution/WTO.h +0 -0
  12. package/SVF-linux/{include → svf/include}/CFL/CFGNormalizer.h +0 -0
  13. package/SVF-linux/{include → svf/include}/CFL/CFLAlias.h +0 -0
  14. package/SVF-linux/{include → svf/include}/CFL/CFLBase.h +0 -0
  15. package/SVF-linux/{include → svf/include}/CFL/CFLData.h +0 -0
  16. package/SVF-linux/{include → svf/include}/CFL/CFLDataBuilder.h +0 -0
  17. package/SVF-linux/{include → svf/include}/CFL/CFLGramGraphChecker.h +0 -0
  18. package/SVF-linux/{include → svf/include}/CFL/CFLGrammar.h +0 -0
  19. package/SVF-linux/{include → svf/include}/CFL/CFLGrammar.txt +0 -0
  20. package/SVF-linux/{include → svf/include}/CFL/CFLGrammarDev.txt +0 -0
  21. package/SVF-linux/{include → svf/include}/CFL/CFLGraphBuilder.h +0 -0
  22. package/SVF-linux/{include → svf/include}/CFL/CFLSolver.h +0 -0
  23. package/SVF-linux/{include → svf/include}/CFL/CFLStat.h +0 -0
  24. package/SVF-linux/{include → svf/include}/CFL/CFLVF.h +0 -0
  25. package/SVF-linux/{include → svf/include}/CFL/GrammarBuilder.h +0 -0
  26. package/SVF-linux/{include → svf/include}/CFL/PEGGrammar.txt +0 -0
  27. package/SVF-linux/{include → svf/include}/CFL/VFG.txt +0 -0
  28. package/SVF-linux/{include → svf/include}/CUDD/cudd.h +0 -0
  29. package/SVF-linux/{include → svf/include}/CUDD/cuddInt.h +0 -0
  30. package/SVF-linux/{include → svf/include}/CUDD/epd.h +0 -0
  31. package/SVF-linux/{include → svf/include}/CUDD/mtr.h +0 -0
  32. package/SVF-linux/{include → svf/include}/CUDD/mtrInt.h +0 -0
  33. package/SVF-linux/{include → svf/include}/CUDD/st.h +0 -0
  34. package/SVF-linux/{include → svf/include}/CUDD/util.h +0 -0
  35. package/SVF-linux/{include → svf/include}/DDA/ContextDDA.h +0 -0
  36. package/SVF-linux/{include → svf/include}/DDA/DDAClient.h +0 -0
  37. package/SVF-linux/{include → svf/include}/DDA/DDAPass.h +0 -0
  38. package/SVF-linux/{include → svf/include}/DDA/DDAStat.h +0 -0
  39. package/SVF-linux/{include → svf/include}/DDA/DDAVFSolver.h +0 -0
  40. package/SVF-linux/{include → svf/include}/DDA/FlowDDA.h +0 -0
  41. package/SVF-linux/{include → svf/include}/FastCluster/LICENSE.TXT +0 -0
  42. package/SVF-linux/{include → svf/include}/FastCluster/fastcluster.h +0 -0
  43. package/SVF-linux/{include → svf/include}/Graphs/CFLGraph.h +0 -0
  44. package/SVF-linux/{include → svf/include}/Graphs/CHG.h +0 -0
  45. package/SVF-linux/{include → svf/include}/Graphs/ConsG.h +0 -0
  46. package/SVF-linux/{include → svf/include}/Graphs/ConsGEdge.h +0 -0
  47. package/SVF-linux/{include → svf/include}/Graphs/ConsGNode.h +0 -0
  48. package/SVF-linux/{include → svf/include}/Graphs/DOTGraphTraits.h +0 -0
  49. package/SVF-linux/{include → svf/include}/Graphs/ExternalPAG.h +0 -0
  50. package/SVF-linux/{include → svf/include}/Graphs/GenericGraph.h +0 -0
  51. package/SVF-linux/{include → svf/include}/Graphs/GraphPrinter.h +0 -0
  52. package/SVF-linux/{include → svf/include}/Graphs/GraphTraits.h +0 -0
  53. package/SVF-linux/{include → svf/include}/Graphs/GraphWriter.h +0 -0
  54. package/SVF-linux/{include → svf/include}/Graphs/ICFG.h +0 -0
  55. package/SVF-linux/{include → svf/include}/Graphs/ICFGEdge.h +0 -0
  56. package/SVF-linux/{include → svf/include}/Graphs/ICFGNode.h +0 -0
  57. package/SVF-linux/{include → svf/include}/Graphs/ICFGStat.h +0 -0
  58. package/SVF-linux/{include → svf/include}/Graphs/IRGraph.h +0 -0
  59. package/SVF-linux/{include → svf/include}/Graphs/OfflineConsG.h +0 -0
  60. package/SVF-linux/{include → svf/include}/Graphs/PAG.h +0 -0
  61. package/SVF-linux/{include → svf/include}/Graphs/PAGEdge.h +0 -0
  62. package/SVF-linux/{include → svf/include}/Graphs/PAGNode.h +0 -0
  63. package/SVF-linux/{include → svf/include}/Graphs/PTACallGraph.h +0 -0
  64. package/SVF-linux/{include → svf/include}/Graphs/SVFG.h +0 -0
  65. package/SVF-linux/{include → svf/include}/Graphs/SVFGEdge.h +0 -0
  66. package/SVF-linux/{include → svf/include}/Graphs/SVFGNode.h +0 -0
  67. package/SVF-linux/{include → svf/include}/Graphs/SVFGOPT.h +0 -0
  68. package/SVF-linux/{include → svf/include}/Graphs/SVFGStat.h +0 -0
  69. package/SVF-linux/{include → svf/include}/Graphs/ThreadCallGraph.h +0 -0
  70. package/SVF-linux/{include → svf/include}/Graphs/VFG.h +0 -0
  71. package/SVF-linux/{include → svf/include}/Graphs/VFGEdge.h +0 -0
  72. package/SVF-linux/{include → svf/include}/Graphs/VFGNode.h +0 -0
  73. package/SVF-linux/{include → svf/include}/MSSA/MSSAMuChi.h +0 -0
  74. package/SVF-linux/{include → svf/include}/MSSA/MemPartition.h +0 -0
  75. package/SVF-linux/{include → svf/include}/MSSA/MemRegion.h +0 -0
  76. package/SVF-linux/{include → svf/include}/MSSA/MemSSA.h +0 -0
  77. package/SVF-linux/{include → svf/include}/MSSA/SVFGBuilder.h +0 -0
  78. package/SVF-linux/{include → svf/include}/MTA/FSMPTA.h +0 -0
  79. package/SVF-linux/{include → svf/include}/MTA/LockAnalysis.h +0 -0
  80. package/SVF-linux/{include → svf/include}/MTA/LockResultValidator.h +0 -0
  81. package/SVF-linux/{include → svf/include}/MTA/MHP.h +0 -0
  82. package/SVF-linux/{include → svf/include}/MTA/MTA.h +0 -0
  83. package/SVF-linux/{include → svf/include}/MTA/MTAAnnotator.h +0 -0
  84. package/SVF-linux/{include → svf/include}/MTA/MTAResultValidator.h +0 -0
  85. package/SVF-linux/{include → svf/include}/MTA/MTAStat.h +0 -0
  86. package/SVF-linux/{include → svf/include}/MTA/PCG.h +0 -0
  87. package/SVF-linux/{include → svf/include}/MTA/TCT.h +0 -0
  88. package/SVF-linux/{include → svf/include}/MemoryModel/AbstractPointsToDS.h +0 -0
  89. package/SVF-linux/{include → svf/include}/MemoryModel/ConditionalPT.h +0 -0
  90. package/SVF-linux/{include → svf/include}/MemoryModel/LocationSet.h +0 -0
  91. package/SVF-linux/{include → svf/include}/MemoryModel/MemModel.h +0 -0
  92. package/SVF-linux/{include → svf/include}/MemoryModel/MutablePointsToDS.h +0 -0
  93. package/SVF-linux/{include → svf/include}/MemoryModel/PAGBuilderFromFile.h +0 -0
  94. package/SVF-linux/{include → svf/include}/MemoryModel/PTAStat.h +0 -0
  95. package/SVF-linux/{include → svf/include}/MemoryModel/PTAType.h +0 -0
  96. package/SVF-linux/{include → svf/include}/MemoryModel/PersistentPointsToCache.h +0 -0
  97. package/SVF-linux/{include → svf/include}/MemoryModel/PersistentPointsToDS.h +0 -0
  98. package/SVF-linux/{include → svf/include}/MemoryModel/PointerAnalysis.h +0 -0
  99. package/SVF-linux/{include → svf/include}/MemoryModel/PointerAnalysisImpl.h +0 -0
  100. package/SVF-linux/{include → svf/include}/MemoryModel/PointsTo.h +0 -0
  101. package/SVF-linux/{include → svf/include}/MemoryModel/PointsToDFDS.h +0 -0
  102. package/SVF-linux/{include → svf/include}/MemoryModel/PointsToDS.h +0 -0
  103. package/SVF-linux/{include → svf/include}/MemoryModel/SVFIR.h +0 -0
  104. package/SVF-linux/{include → svf/include}/MemoryModel/SVFLoop.h +0 -0
  105. package/SVF-linux/{include → svf/include}/MemoryModel/SVFStatements.h +0 -0
  106. package/SVF-linux/{include → svf/include}/MemoryModel/SVFSymbols.h +0 -0
  107. package/SVF-linux/{include → svf/include}/MemoryModel/SVFVariables.h +0 -0
  108. package/SVF-linux/{include → svf/include}/MemoryModel/SymbolTableInfo.h +0 -0
  109. package/SVF-linux/{include → svf/include}/SABER/DoubleFreeChecker.h +0 -0
  110. package/SVF-linux/{include → svf/include}/SABER/FileChecker.h +0 -0
  111. package/SVF-linux/{include → svf/include}/SABER/LeakChecker.h +0 -0
  112. package/SVF-linux/{include → svf/include}/SABER/PathCondAllocator.h +0 -0
  113. package/SVF-linux/{include → svf/include}/SABER/ProgSlice.h +0 -0
  114. package/SVF-linux/{include → svf/include}/SABER/SaberAnnotator.h +0 -0
  115. package/SVF-linux/{include → svf/include}/SABER/SaberCheckerAPI.h +0 -0
  116. package/SVF-linux/{include → svf/include}/SABER/SaberCondAllocator.h +0 -0
  117. package/SVF-linux/{include → svf/include}/SABER/SaberSVFGBuilder.h +0 -0
  118. package/SVF-linux/{include → svf/include}/SABER/SrcSnkDDA.h +0 -0
  119. package/SVF-linux/{include → svf/include}/SABER/SrcSnkSolver.h +0 -0
  120. package/SVF-linux/{include → svf/include}/SVFIR/PAGBuilderFromFile.h +0 -0
  121. package/SVF-linux/{include → svf/include}/SVFIR/SVFIR.h +0 -0
  122. package/SVF-linux/{include → svf/include}/SVFIR/SVFModule.h +0 -0
  123. package/SVF-linux/{include → svf/include}/SVFIR/SVFStatements.h +0 -0
  124. package/SVF-linux/{include → svf/include}/SVFIR/SVFType.h +0 -0
  125. package/SVF-linux/{include → svf/include}/SVFIR/SVFValue.h +0 -0
  126. package/SVF-linux/{include → svf/include}/SVFIR/SVFVariables.h +0 -0
  127. package/SVF-linux/{include → svf/include}/SVFIR/SymbolTableInfo.h +0 -0
  128. package/SVF-linux/{include → svf/include}/Util/Annotator.h +0 -0
  129. package/SVF-linux/{include → svf/include}/Util/BDDExpr.h +0 -0
  130. package/SVF-linux/{include → svf/include}/Util/BasicTypes.h +0 -0
  131. package/SVF-linux/{include → svf/include}/Util/BitVector.h +0 -0
  132. package/SVF-linux/{include → svf/include}/Util/CFLSolver.h +0 -0
  133. package/SVF-linux/{include → svf/include}/Util/CallGraphBuilder.h +0 -0
  134. package/SVF-linux/{include → svf/include}/Util/Casting.h +0 -0
  135. package/SVF-linux/{include → svf/include}/Util/CommandLine.h +0 -0
  136. package/SVF-linux/{include → svf/include}/Util/Conditions.h +0 -0
  137. package/SVF-linux/{include → svf/include}/Util/CoreBitVector.h +0 -0
  138. package/SVF-linux/{include → svf/include}/Util/CppUtil.h +0 -0
  139. package/SVF-linux/{include → svf/include}/Util/CxtStmt.h +0 -0
  140. package/SVF-linux/{include → svf/include}/Util/DPItem.h +0 -0
  141. package/SVF-linux/{include → svf/include}/Util/ExeState.h +0 -0
  142. package/SVF-linux/{include → svf/include}/Util/ExtAPI.h +0 -0
  143. package/SVF-linux/{include → svf/include}/Util/ExtAPI.json +0 -0
  144. package/SVF-linux/{include → svf/include}/Util/GraphReachSolver.h +0 -0
  145. package/SVF-linux/{include → svf/include}/Util/IRAnnotator.h +0 -0
  146. package/SVF-linux/{include → svf/include}/Util/NodeIDAllocator.h +0 -0
  147. package/SVF-linux/{include → svf/include}/Util/Options.h +0 -0
  148. package/SVF-linux/{include → svf/include}/Util/PTAStat.h +0 -0
  149. package/SVF-linux/{include → svf/include}/Util/PathCondAllocator.h +0 -0
  150. package/SVF-linux/{include → svf/include}/Util/PathDPItem.h +0 -0
  151. package/SVF-linux/{include → svf/include}/Util/SCC.h +0 -0
  152. package/SVF-linux/{include → svf/include}/Util/SVFBasicTypes.h +0 -0
  153. package/SVF-linux/{include → svf/include}/Util/SVFInstruction.h +0 -0
  154. package/SVF-linux/{include → svf/include}/Util/SVFModule.h +0 -0
  155. package/SVF-linux/{include → svf/include}/Util/SVFStat.h +0 -0
  156. package/SVF-linux/{include → svf/include}/Util/SVFUtil.h +0 -0
  157. package/SVF-linux/{include → svf/include}/Util/SparseBitVector.h +0 -0
  158. package/SVF-linux/{include → svf/include}/Util/SymState.h +0 -0
  159. package/SVF-linux/{include → svf/include}/Util/ThreadAPI.h +0 -0
  160. package/SVF-linux/{include → svf/include}/Util/TypeBasedHeapCloning.h +0 -0
  161. package/SVF-linux/{include → svf/include}/Util/WorkList.h +0 -0
  162. package/SVF-linux/{include → svf/include}/Util/Z3Expr.h +0 -0
  163. package/SVF-linux/{include → svf/include}/Util/cJSON.h +0 -0
  164. package/SVF-linux/{include → svf/include}/Util/config.h +0 -0
  165. package/SVF-linux/{include → svf/include}/Util/iterator.h +0 -0
  166. package/SVF-linux/{include → svf/include}/Util/iterator_range.h +0 -0
  167. package/SVF-linux/{include → svf/include}/WPA/Andersen.h +0 -0
  168. package/SVF-linux/{include → svf/include}/WPA/AndersenPWC.h +0 -0
  169. package/SVF-linux/{include → svf/include}/WPA/AndersenSFR.h +0 -0
  170. package/SVF-linux/{include → svf/include}/WPA/CSC.h +0 -0
  171. package/SVF-linux/{include → svf/include}/WPA/FlowSensitive.h +0 -0
  172. package/SVF-linux/{include → svf/include}/WPA/FlowSensitiveTBHC.h +0 -0
  173. package/SVF-linux/{include → svf/include}/WPA/Steensgaard.h +0 -0
  174. package/SVF-linux/{include → svf/include}/WPA/TypeAnalysis.h +0 -0
  175. package/SVF-linux/{include → svf/include}/WPA/TypeBasedHeapCloning.h +0 -0
  176. package/SVF-linux/{include → svf/include}/WPA/VersionedFlowSensitive.h +0 -0
  177. package/SVF-linux/{include → svf/include}/WPA/WPAFSSolver.h +0 -0
  178. package/SVF-linux/{include → svf/include}/WPA/WPAPass.h +0 -0
  179. package/SVF-linux/{include → svf/include}/WPA/WPASolver.h +0 -0
  180. package/SVF-linux/{include → svf/include}/WPA/WPAStat.h +0 -0
  181. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/AbstractValue.h +0 -0
  182. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/AddressValue.h +0 -0
  183. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/ExeState.h +0 -0
  184. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/IntervalExeState.h +0 -0
  185. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/IntervalValue.h +0 -0
  186. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/NumericLiteral.h +0 -0
  187. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/RelExeState.h +0 -0
  188. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/RelationSolver.h +0 -0
  189. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/SVFIR2ItvExeState.h +0 -0
  190. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/WTO.h +0 -0
  191. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFGNormalizer.h +0 -0
  192. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLAlias.h +0 -0
  193. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLBase.h +0 -0
  194. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLData.h +0 -0
  195. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLDataBuilder.h +0 -0
  196. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGramGraphChecker.h +0 -0
  197. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGrammar.h +0 -0
  198. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGrammar.txt +0 -0
  199. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGraphBuilder.h +0 -0
  200. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLSolver.h +0 -0
  201. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLStat.h +0 -0
  202. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLVF.h +0 -0
  203. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/GrammarBuilder.h +0 -0
  204. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/PEGGrammar.txt +0 -0
  205. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/VFG.txt +0 -0
  206. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/ContextDDA.h +0 -0
  207. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAClient.h +0 -0
  208. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAPass.h +0 -0
  209. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAStat.h +0 -0
  210. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAVFSolver.h +0 -0
  211. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/FlowDDA.h +0 -0
  212. package/{SVF-osx → SVF-linux/svf/include}/include/FastCluster/LICENSE.TXT +0 -0
  213. package/{SVF-osx → SVF-linux/svf/include}/include/FastCluster/fastcluster.h +0 -0
  214. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/CFLGraph.h +0 -0
  215. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/CHG.h +0 -0
  216. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsG.h +0 -0
  217. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsGEdge.h +0 -0
  218. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsGNode.h +0 -0
  219. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/DOTGraphTraits.h +0 -0
  220. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GenericGraph.h +0 -0
  221. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphPrinter.h +0 -0
  222. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphTraits.h +0 -0
  223. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphWriter.h +0 -0
  224. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFG.h +0 -0
  225. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGEdge.h +0 -0
  226. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGNode.h +0 -0
  227. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGStat.h +0 -0
  228. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/IRGraph.h +0 -0
  229. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/PTACallGraph.h +0 -0
  230. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFG.h +0 -0
  231. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGEdge.h +0 -0
  232. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGNode.h +0 -0
  233. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGOPT.h +0 -0
  234. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGStat.h +0 -0
  235. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ThreadCallGraph.h +0 -0
  236. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFG.h +0 -0
  237. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFGEdge.h +0 -0
  238. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFGNode.h +0 -0
  239. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MSSAMuChi.h +0 -0
  240. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemPartition.h +0 -0
  241. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemRegion.h +0 -0
  242. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemSSA.h +0 -0
  243. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/SVFGBuilder.h +0 -0
  244. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/FSMPTA.h +0 -0
  245. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/LockAnalysis.h +0 -0
  246. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MHP.h +0 -0
  247. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTA.h +0 -0
  248. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTAResultValidator.h +0 -0
  249. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTAStat.h +0 -0
  250. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/PCG.h +0 -0
  251. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/TCT.h +0 -0
  252. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/AbstractPointsToDS.h +0 -0
  253. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/ConditionalPT.h +0 -0
  254. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/LocationSet.h +0 -0
  255. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/MutablePointsToDS.h +0 -0
  256. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PersistentPointsToCache.h +0 -0
  257. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PersistentPointsToDS.h +0 -0
  258. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointerAnalysis.h +0 -0
  259. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointerAnalysisImpl.h +0 -0
  260. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointsTo.h +0 -0
  261. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/SVFLoop.h +0 -0
  262. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/DoubleFreeChecker.h +0 -0
  263. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/FileChecker.h +0 -0
  264. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/LeakChecker.h +0 -0
  265. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/ProgSlice.h +0 -0
  266. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberCheckerAPI.h +0 -0
  267. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberCondAllocator.h +0 -0
  268. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberSVFGBuilder.h +0 -0
  269. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SrcSnkDDA.h +0 -0
  270. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SrcSnkSolver.h +0 -0
  271. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/PAGBuilderFromFile.h +0 -0
  272. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFIR.h +0 -0
  273. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFModule.h +0 -0
  274. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFStatements.h +0 -0
  275. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFType.h +0 -0
  276. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFValue.h +0 -0
  277. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFVariables.h +0 -0
  278. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SymbolTableInfo.h +0 -0
  279. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Annotator.h +0 -0
  280. package/{SVF-osx → SVF-linux/svf/include}/include/Util/BitVector.h +0 -0
  281. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CallGraphBuilder.h +0 -0
  282. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Casting.h +0 -0
  283. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CommandLine.h +0 -0
  284. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CoreBitVector.h +0 -0
  285. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CppUtil.h +0 -0
  286. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CxtStmt.h +0 -0
  287. package/{SVF-osx → SVF-linux/svf/include}/include/Util/DPItem.h +0 -0
  288. package/{SVF-osx → SVF-linux/svf/include}/include/Util/ExtAPI.h +0 -0
  289. package/{SVF-osx → SVF-linux/svf/include}/include/Util/ExtAPI.json +0 -0
  290. package/{SVF-osx → SVF-linux/svf/include}/include/Util/GraphReachSolver.h +0 -0
  291. package/{SVF-osx → SVF-linux/svf/include}/include/Util/NodeIDAllocator.h +0 -0
  292. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Options.h +0 -0
  293. package/{SVF-osx → SVF-linux/svf/include}/include/Util/PTAStat.h +0 -0
  294. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SCC.h +0 -0
  295. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SVFStat.h +0 -0
  296. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SVFUtil.h +0 -0
  297. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SparseBitVector.h +0 -0
  298. package/{SVF-osx → SVF-linux/svf/include}/include/Util/ThreadAPI.h +0 -0
  299. package/{SVF-osx → SVF-linux/svf/include}/include/Util/WorkList.h +0 -0
  300. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Z3Expr.h +0 -0
  301. package/{SVF-osx → SVF-linux/svf/include}/include/Util/cJSON.h +0 -0
  302. package/{SVF-osx → SVF-linux/svf/include}/include/Util/iterator.h +0 -0
  303. package/{SVF-osx → SVF-linux/svf/include}/include/Util/iterator_range.h +0 -0
  304. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/Andersen.h +0 -0
  305. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/AndersenPWC.h +0 -0
  306. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/CSC.h +0 -0
  307. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/FlowSensitive.h +0 -0
  308. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/Steensgaard.h +0 -0
  309. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/TypeAnalysis.h +0 -0
  310. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/VersionedFlowSensitive.h +0 -0
  311. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAFSSolver.h +0 -0
  312. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAPass.h +0 -0
  313. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPASolver.h +0 -0
  314. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAStat.h +0 -0
  315. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/BasicTypes.h +0 -0
  316. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/BreakConstantExpr.h +0 -0
  317. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/CHGBuilder.h +0 -0
  318. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/CPPUtil.h +0 -0
  319. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/DCHG.h +0 -0
  320. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
  321. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/ICFGBuilder.h +0 -0
  322. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/IRAnnotator.h +0 -0
  323. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
  324. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMModule.h +0 -0
  325. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMUtil.h +0 -0
  326. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/BasicTypes.h +0 -0
  327. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/BreakConstantExpr.h +0 -0
  328. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/CHGBuilder.h +0 -0
  329. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/DCHG.h +0 -0
  330. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
  331. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/ICFGBuilder.h +0 -0
  332. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
  333. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMModule.h +0 -0
  334. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMUtil.h +0 -0
  335. package/SVF-linux/{include → svf-llvm/include/SVF-LLVM}/SVF-LLVM/SVFIRBuilder.h +0 -0
  336. package/SVF-linux/{include → svf-llvm/include/SVF-LLVM}/SVF-LLVM/SymbolTableBuilder.h +0 -0
  337. package/{SVF-osx → SVF-linux/svf-llvm}/include/SVF-LLVM/SVFIRBuilder.h +0 -0
  338. package/{SVF-osx → SVF-linux/svf-llvm}/include/SVF-LLVM/SymbolTableBuilder.h +0 -0
  339. package/SVF-osx/Release-build/{lib/libSvf.a → svf-llvm/libSvfLLVM.a} +0 -0
  340. package/SVF-osx/svf/include/AbstractExecution/AbstractValue.h +79 -0
  341. package/SVF-osx/svf/include/AbstractExecution/AddressValue.h +210 -0
  342. package/SVF-osx/svf/include/AbstractExecution/ExeState.h +223 -0
  343. package/SVF-osx/svf/include/AbstractExecution/IntervalExeState.h +425 -0
  344. package/SVF-osx/svf/include/AbstractExecution/IntervalValue.h +868 -0
  345. package/SVF-osx/svf/include/AbstractExecution/NumericLiteral.h +406 -0
  346. package/SVF-osx/svf/include/AbstractExecution/RelExeState.h +225 -0
  347. package/SVF-osx/svf/include/AbstractExecution/RelationSolver.h +68 -0
  348. package/SVF-osx/svf/include/AbstractExecution/SVFIR2ItvExeState.h +186 -0
  349. package/SVF-osx/svf/include/AbstractExecution/WTO.h +845 -0
  350. package/SVF-osx/svf/include/CFL/CFGNormalizer.h +84 -0
  351. package/SVF-osx/svf/include/CFL/CFLAlias.h +176 -0
  352. package/SVF-osx/svf/include/CFL/CFLBase.h +115 -0
  353. package/SVF-osx/svf/include/CFL/CFLData.h +316 -0
  354. package/SVF-osx/svf/include/CFL/CFLDataBuilder.h +91 -0
  355. package/SVF-osx/svf/include/CFL/CFLGramGraphChecker.h +74 -0
  356. package/SVF-osx/svf/include/CFL/CFLGrammar.h +468 -0
  357. package/SVF-osx/svf/include/CFL/CFLGrammar.txt +15 -0
  358. package/SVF-osx/{include → svf/include}/CFL/CFLGrammarDev.txt +0 -0
  359. package/SVF-osx/svf/include/CFL/CFLGraphBuilder.h +193 -0
  360. package/SVF-osx/svf/include/CFL/CFLSolver.h +136 -0
  361. package/SVF-osx/svf/include/CFL/CFLStat.h +67 -0
  362. package/SVF-osx/svf/include/CFL/CFLVF.h +65 -0
  363. package/SVF-osx/svf/include/CFL/GrammarBuilder.h +100 -0
  364. package/SVF-osx/svf/include/CFL/PEGGrammar.txt +11 -0
  365. package/SVF-osx/svf/include/CFL/VFG.txt +7 -0
  366. package/SVF-osx/{include → svf/include}/CUDD/cudd.h +0 -0
  367. package/SVF-osx/{include → svf/include}/CUDD/cuddInt.h +0 -0
  368. package/SVF-osx/{include → svf/include}/CUDD/epd.h +0 -0
  369. package/SVF-osx/{include → svf/include}/CUDD/mtr.h +0 -0
  370. package/SVF-osx/{include → svf/include}/CUDD/mtrInt.h +0 -0
  371. package/SVF-osx/{include → svf/include}/CUDD/st.h +0 -0
  372. package/SVF-osx/{include → svf/include}/CUDD/util.h +0 -0
  373. package/SVF-osx/svf/include/DDA/ContextDDA.h +230 -0
  374. package/SVF-osx/svf/include/DDA/DDAClient.h +168 -0
  375. package/SVF-osx/svf/include/DDA/DDAPass.h +99 -0
  376. package/SVF-osx/svf/include/DDA/DDAStat.h +138 -0
  377. package/SVF-osx/svf/include/DDA/DDAVFSolver.h +789 -0
  378. package/SVF-osx/svf/include/DDA/FlowDDA.h +178 -0
  379. package/SVF-osx/svf/include/FastCluster/LICENSE.TXT +13 -0
  380. package/SVF-osx/svf/include/FastCluster/fastcluster.h +80 -0
  381. package/SVF-osx/svf/include/Graphs/CFLGraph.h +215 -0
  382. package/SVF-osx/svf/include/Graphs/CHG.h +351 -0
  383. package/SVF-osx/svf/include/Graphs/ConsG.h +408 -0
  384. package/SVF-osx/svf/include/Graphs/ConsGEdge.h +353 -0
  385. package/SVF-osx/svf/include/Graphs/ConsGNode.h +391 -0
  386. package/SVF-osx/svf/include/Graphs/DOTGraphTraits.h +188 -0
  387. package/SVF-osx/{include → svf/include}/Graphs/ExternalPAG.h +0 -0
  388. package/SVF-osx/svf/include/Graphs/GenericGraph.h +620 -0
  389. package/SVF-osx/svf/include/Graphs/GraphPrinter.h +111 -0
  390. package/SVF-osx/svf/include/Graphs/GraphTraits.h +150 -0
  391. package/SVF-osx/svf/include/Graphs/GraphWriter.h +380 -0
  392. package/SVF-osx/svf/include/Graphs/ICFG.h +331 -0
  393. package/SVF-osx/svf/include/Graphs/ICFGEdge.h +264 -0
  394. package/SVF-osx/svf/include/Graphs/ICFGNode.h +523 -0
  395. package/SVF-osx/svf/include/Graphs/ICFGStat.h +164 -0
  396. package/SVF-osx/svf/include/Graphs/IRGraph.h +243 -0
  397. package/SVF-osx/{include → svf/include}/Graphs/OfflineConsG.h +0 -0
  398. package/SVF-osx/{include → svf/include}/Graphs/PAG.h +0 -0
  399. package/SVF-osx/{include → svf/include}/Graphs/PAGEdge.h +0 -0
  400. package/SVF-osx/{include → svf/include}/Graphs/PAGNode.h +0 -0
  401. package/SVF-osx/svf/include/Graphs/PTACallGraph.h +471 -0
  402. package/SVF-osx/svf/include/Graphs/SVFG.h +490 -0
  403. package/SVF-osx/svf/include/Graphs/SVFGEdge.h +237 -0
  404. package/SVF-osx/svf/include/Graphs/SVFGNode.h +513 -0
  405. package/SVF-osx/svf/include/Graphs/SVFGOPT.h +362 -0
  406. package/SVF-osx/svf/include/Graphs/SVFGStat.h +273 -0
  407. package/SVF-osx/svf/include/Graphs/ThreadCallGraph.h +422 -0
  408. package/SVF-osx/svf/include/Graphs/VFG.h +664 -0
  409. package/SVF-osx/svf/include/Graphs/VFGEdge.h +295 -0
  410. package/SVF-osx/svf/include/Graphs/VFGNode.h +1197 -0
  411. package/SVF-osx/svf/include/MSSA/MSSAMuChi.h +722 -0
  412. package/SVF-osx/svf/include/MSSA/MemPartition.h +169 -0
  413. package/SVF-osx/svf/include/MSSA/MemRegion.h +491 -0
  414. package/SVF-osx/svf/include/MSSA/MemSSA.h +452 -0
  415. package/SVF-osx/svf/include/MSSA/SVFGBuilder.h +98 -0
  416. package/SVF-osx/svf/include/MTA/FSMPTA.h +270 -0
  417. package/SVF-osx/svf/include/MTA/LockAnalysis.h +517 -0
  418. package/SVF-osx/{include → svf/include}/MTA/LockResultValidator.h +0 -0
  419. package/SVF-osx/svf/include/MTA/MHP.h +565 -0
  420. package/SVF-osx/svf/include/MTA/MTA.h +101 -0
  421. package/SVF-osx/{include → svf/include}/MTA/MTAAnnotator.h +0 -0
  422. package/SVF-osx/svf/include/MTA/MTAResultValidator.h +448 -0
  423. package/SVF-osx/svf/include/MTA/MTAStat.h +74 -0
  424. package/SVF-osx/svf/include/MTA/PCG.h +229 -0
  425. package/SVF-osx/svf/include/MTA/TCT.h +599 -0
  426. package/SVF-osx/svf/include/MemoryModel/AbstractPointsToDS.h +316 -0
  427. package/SVF-osx/svf/include/MemoryModel/ConditionalPT.h +878 -0
  428. package/SVF-osx/svf/include/MemoryModel/LocationSet.h +148 -0
  429. package/SVF-osx/{include → svf/include}/MemoryModel/MemModel.h +0 -0
  430. package/SVF-osx/svf/include/MemoryModel/MutablePointsToDS.h +1025 -0
  431. package/SVF-osx/{include → svf/include}/MemoryModel/PAGBuilderFromFile.h +0 -0
  432. package/SVF-osx/{include → svf/include}/MemoryModel/PTAStat.h +0 -0
  433. package/SVF-osx/{include → svf/include}/MemoryModel/PTAType.h +0 -0
  434. package/SVF-osx/svf/include/MemoryModel/PersistentPointsToCache.h +463 -0
  435. package/SVF-osx/svf/include/MemoryModel/PersistentPointsToDS.h +955 -0
  436. package/SVF-osx/svf/include/MemoryModel/PointerAnalysis.h +452 -0
  437. package/SVF-osx/svf/include/MemoryModel/PointerAnalysisImpl.h +590 -0
  438. package/SVF-osx/svf/include/MemoryModel/PointsTo.h +255 -0
  439. package/SVF-osx/{include → svf/include}/MemoryModel/PointsToDFDS.h +0 -0
  440. package/SVF-osx/{include → svf/include}/MemoryModel/PointsToDS.h +0 -0
  441. package/SVF-osx/{include → svf/include}/MemoryModel/SVFIR.h +0 -0
  442. package/SVF-osx/svf/include/MemoryModel/SVFLoop.h +164 -0
  443. package/SVF-osx/{include → svf/include}/MemoryModel/SVFStatements.h +0 -0
  444. package/SVF-osx/{include → svf/include}/MemoryModel/SVFSymbols.h +0 -0
  445. package/SVF-osx/{include → svf/include}/MemoryModel/SVFVariables.h +0 -0
  446. package/SVF-osx/{include → svf/include}/MemoryModel/SymbolTableInfo.h +0 -0
  447. package/SVF-osx/svf/include/SABER/DoubleFreeChecker.h +76 -0
  448. package/SVF-osx/svf/include/SABER/FileChecker.h +82 -0
  449. package/SVF-osx/svf/include/SABER/LeakChecker.h +124 -0
  450. package/SVF-osx/{include → svf/include}/SABER/PathCondAllocator.h +0 -0
  451. package/SVF-osx/svf/include/SABER/ProgSlice.h +313 -0
  452. package/SVF-osx/{include → svf/include}/SABER/SaberAnnotator.h +0 -0
  453. package/SVF-osx/svf/include/SABER/SaberCheckerAPI.h +166 -0
  454. package/SVF-osx/svf/include/SABER/SaberCondAllocator.h +310 -0
  455. package/SVF-osx/svf/include/SABER/SaberSVFGBuilder.h +104 -0
  456. package/SVF-osx/svf/include/SABER/SrcSnkDDA.h +321 -0
  457. package/SVF-osx/svf/include/SABER/SrcSnkSolver.h +186 -0
  458. package/SVF-osx/svf/include/SVFIR/PAGBuilderFromFile.h +80 -0
  459. package/SVF-osx/svf/include/SVFIR/SVFIR.h +659 -0
  460. package/SVF-osx/svf/include/SVFIR/SVFModule.h +233 -0
  461. package/SVF-osx/svf/include/SVFIR/SVFStatements.h +1136 -0
  462. package/SVF-osx/svf/include/SVFIR/SVFType.h +527 -0
  463. package/SVF-osx/svf/include/SVFIR/SVFValue.h +1120 -0
  464. package/SVF-osx/svf/include/SVFIR/SVFVariables.h +721 -0
  465. package/SVF-osx/svf/include/SVFIR/SymbolTableInfo.h +597 -0
  466. package/SVF-osx/svf/include/Util/Annotator.h +180 -0
  467. package/SVF-osx/{include → svf/include}/Util/BDDExpr.h +0 -0
  468. package/SVF-osx/{include → svf/include}/Util/BasicTypes.h +0 -0
  469. package/SVF-osx/svf/include/Util/BitVector.h +55 -0
  470. package/SVF-osx/{include → svf/include}/Util/CFLSolver.h +0 -0
  471. package/SVF-osx/svf/include/Util/CallGraphBuilder.h +74 -0
  472. package/SVF-osx/svf/include/Util/Casting.h +426 -0
  473. package/SVF-osx/svf/include/Util/CommandLine.h +530 -0
  474. package/SVF-osx/{include → svf/include}/Util/Conditions.h +0 -0
  475. package/SVF-osx/svf/include/Util/CoreBitVector.h +214 -0
  476. package/SVF-osx/svf/include/Util/CppUtil.h +81 -0
  477. package/SVF-osx/svf/include/Util/CxtStmt.h +501 -0
  478. package/SVF-osx/svf/include/Util/DPItem.h +618 -0
  479. package/SVF-osx/{include → svf/include}/Util/ExeState.h +0 -0
  480. package/SVF-osx/svf/include/Util/ExtAPI.h +339 -0
  481. package/SVF-osx/svf/include/Util/ExtAPI.json +5707 -0
  482. package/SVF-osx/svf/include/Util/GraphReachSolver.h +186 -0
  483. package/SVF-osx/{include → svf/include}/Util/IRAnnotator.h +0 -0
  484. package/SVF-osx/svf/include/Util/NodeIDAllocator.h +194 -0
  485. package/SVF-osx/svf/include/Util/Options.h +266 -0
  486. package/SVF-osx/svf/include/Util/PTAStat.h +65 -0
  487. package/SVF-osx/{include → svf/include}/Util/PathCondAllocator.h +0 -0
  488. package/SVF-osx/{include → svf/include}/Util/PathDPItem.h +0 -0
  489. package/SVF-osx/svf/include/Util/SCC.h +354 -0
  490. package/SVF-osx/{include → svf/include}/Util/SVFBasicTypes.h +0 -0
  491. package/SVF-osx/{include → svf/include}/Util/SVFInstruction.h +0 -0
  492. package/SVF-osx/{include → svf/include}/Util/SVFModule.h +0 -0
  493. package/SVF-osx/svf/include/Util/SVFStat.h +100 -0
  494. package/SVF-osx/svf/include/Util/SVFUtil.h +660 -0
  495. package/SVF-osx/svf/include/Util/SparseBitVector.h +1202 -0
  496. package/SVF-osx/{include → svf/include}/Util/SymState.h +0 -0
  497. package/SVF-osx/svf/include/Util/ThreadAPI.h +330 -0
  498. package/SVF-osx/{include → svf/include}/Util/TypeBasedHeapCloning.h +0 -0
  499. package/SVF-osx/svf/include/Util/WorkList.h +317 -0
  500. package/SVF-osx/svf/include/Util/Z3Expr.h +318 -0
  501. package/SVF-osx/svf/include/Util/cJSON.h +300 -0
  502. package/SVF-osx/{include → svf/include}/Util/config.h +0 -0
  503. package/SVF-osx/svf/include/Util/iterator.h +407 -0
  504. package/SVF-osx/svf/include/Util/iterator_range.h +76 -0
  505. package/SVF-osx/svf/include/WPA/Andersen.h +416 -0
  506. package/SVF-osx/svf/include/WPA/AndersenPWC.h +160 -0
  507. package/SVF-osx/{include → svf/include}/WPA/AndersenSFR.h +0 -0
  508. package/SVF-osx/svf/include/WPA/CSC.h +95 -0
  509. package/SVF-osx/svf/include/WPA/FlowSensitive.h +317 -0
  510. package/SVF-osx/{include → svf/include}/WPA/FlowSensitiveTBHC.h +0 -0
  511. package/SVF-osx/svf/include/WPA/Steensgaard.h +126 -0
  512. package/SVF-osx/svf/include/WPA/TypeAnalysis.h +83 -0
  513. package/SVF-osx/{include → svf/include}/WPA/TypeBasedHeapCloning.h +0 -0
  514. package/SVF-osx/svf/include/WPA/VersionedFlowSensitive.h +287 -0
  515. package/SVF-osx/svf/include/WPA/WPAFSSolver.h +254 -0
  516. package/SVF-osx/svf/include/WPA/WPAPass.h +119 -0
  517. package/SVF-osx/svf/include/WPA/WPASolver.h +205 -0
  518. package/SVF-osx/svf/include/WPA/WPAStat.h +222 -0
  519. package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +79 -0
  520. package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +210 -0
  521. package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +223 -0
  522. package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +425 -0
  523. package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +868 -0
  524. package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +406 -0
  525. package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +225 -0
  526. package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +68 -0
  527. package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +186 -0
  528. package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +845 -0
  529. package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +84 -0
  530. package/SVF-osx/svf/include/include/CFL/CFLAlias.h +176 -0
  531. package/SVF-osx/svf/include/include/CFL/CFLBase.h +115 -0
  532. package/SVF-osx/svf/include/include/CFL/CFLData.h +316 -0
  533. package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +91 -0
  534. package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +74 -0
  535. package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +468 -0
  536. package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +15 -0
  537. package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +193 -0
  538. package/SVF-osx/svf/include/include/CFL/CFLSolver.h +136 -0
  539. package/SVF-osx/svf/include/include/CFL/CFLStat.h +67 -0
  540. package/SVF-osx/svf/include/include/CFL/CFLVF.h +65 -0
  541. package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +100 -0
  542. package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +11 -0
  543. package/SVF-osx/svf/include/include/CFL/VFG.txt +7 -0
  544. package/SVF-osx/svf/include/include/DDA/ContextDDA.h +230 -0
  545. package/SVF-osx/svf/include/include/DDA/DDAClient.h +168 -0
  546. package/SVF-osx/svf/include/include/DDA/DDAPass.h +99 -0
  547. package/SVF-osx/svf/include/include/DDA/DDAStat.h +138 -0
  548. package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +789 -0
  549. package/SVF-osx/svf/include/include/DDA/FlowDDA.h +178 -0
  550. package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +13 -0
  551. package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +80 -0
  552. package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +215 -0
  553. package/SVF-osx/svf/include/include/Graphs/CHG.h +351 -0
  554. package/SVF-osx/svf/include/include/Graphs/ConsG.h +408 -0
  555. package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +353 -0
  556. package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +391 -0
  557. package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +188 -0
  558. package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +620 -0
  559. package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +111 -0
  560. package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +150 -0
  561. package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +380 -0
  562. package/SVF-osx/svf/include/include/Graphs/ICFG.h +331 -0
  563. package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +264 -0
  564. package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +523 -0
  565. package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +164 -0
  566. package/SVF-osx/svf/include/include/Graphs/IRGraph.h +243 -0
  567. package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +471 -0
  568. package/SVF-osx/svf/include/include/Graphs/SVFG.h +490 -0
  569. package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +237 -0
  570. package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +513 -0
  571. package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +362 -0
  572. package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +273 -0
  573. package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +422 -0
  574. package/SVF-osx/svf/include/include/Graphs/VFG.h +664 -0
  575. package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +295 -0
  576. package/SVF-osx/svf/include/include/Graphs/VFGNode.h +1197 -0
  577. package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +722 -0
  578. package/SVF-osx/svf/include/include/MSSA/MemPartition.h +169 -0
  579. package/SVF-osx/svf/include/include/MSSA/MemRegion.h +491 -0
  580. package/SVF-osx/svf/include/include/MSSA/MemSSA.h +452 -0
  581. package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +98 -0
  582. package/SVF-osx/svf/include/include/MTA/FSMPTA.h +270 -0
  583. package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +517 -0
  584. package/SVF-osx/svf/include/include/MTA/MHP.h +565 -0
  585. package/SVF-osx/svf/include/include/MTA/MTA.h +101 -0
  586. package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +448 -0
  587. package/SVF-osx/svf/include/include/MTA/MTAStat.h +74 -0
  588. package/SVF-osx/svf/include/include/MTA/PCG.h +229 -0
  589. package/SVF-osx/svf/include/include/MTA/TCT.h +599 -0
  590. package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +316 -0
  591. package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +878 -0
  592. package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +148 -0
  593. package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +1025 -0
  594. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +463 -0
  595. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +955 -0
  596. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +452 -0
  597. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +590 -0
  598. package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +255 -0
  599. package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +164 -0
  600. package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +76 -0
  601. package/SVF-osx/svf/include/include/SABER/FileChecker.h +82 -0
  602. package/SVF-osx/svf/include/include/SABER/LeakChecker.h +124 -0
  603. package/SVF-osx/svf/include/include/SABER/ProgSlice.h +313 -0
  604. package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +166 -0
  605. package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +310 -0
  606. package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +104 -0
  607. package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +321 -0
  608. package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +186 -0
  609. package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +80 -0
  610. package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +659 -0
  611. package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +233 -0
  612. package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +1136 -0
  613. package/SVF-osx/svf/include/include/SVFIR/SVFType.h +527 -0
  614. package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +1120 -0
  615. package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +721 -0
  616. package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +597 -0
  617. package/SVF-osx/svf/include/include/Util/Annotator.h +180 -0
  618. package/SVF-osx/svf/include/include/Util/BitVector.h +55 -0
  619. package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +74 -0
  620. package/SVF-osx/svf/include/include/Util/Casting.h +426 -0
  621. package/SVF-osx/svf/include/include/Util/CommandLine.h +530 -0
  622. package/SVF-osx/svf/include/include/Util/CoreBitVector.h +214 -0
  623. package/SVF-osx/svf/include/include/Util/CppUtil.h +81 -0
  624. package/SVF-osx/svf/include/include/Util/CxtStmt.h +501 -0
  625. package/SVF-osx/svf/include/include/Util/DPItem.h +618 -0
  626. package/SVF-osx/svf/include/include/Util/ExtAPI.h +339 -0
  627. package/SVF-osx/svf/include/include/Util/ExtAPI.json +5707 -0
  628. package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +186 -0
  629. package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +194 -0
  630. package/SVF-osx/svf/include/include/Util/Options.h +266 -0
  631. package/SVF-osx/svf/include/include/Util/PTAStat.h +65 -0
  632. package/SVF-osx/svf/include/include/Util/SCC.h +354 -0
  633. package/SVF-osx/svf/include/include/Util/SVFStat.h +100 -0
  634. package/SVF-osx/svf/include/include/Util/SVFUtil.h +660 -0
  635. package/SVF-osx/svf/include/include/Util/SparseBitVector.h +1202 -0
  636. package/SVF-osx/svf/include/include/Util/ThreadAPI.h +330 -0
  637. package/SVF-osx/svf/include/include/Util/WorkList.h +317 -0
  638. package/SVF-osx/svf/include/include/Util/Z3Expr.h +318 -0
  639. package/SVF-osx/svf/include/include/Util/cJSON.h +300 -0
  640. package/SVF-osx/svf/include/include/Util/iterator.h +407 -0
  641. package/SVF-osx/svf/include/include/Util/iterator_range.h +76 -0
  642. package/SVF-osx/svf/include/include/WPA/Andersen.h +416 -0
  643. package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +160 -0
  644. package/SVF-osx/svf/include/include/WPA/CSC.h +95 -0
  645. package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +317 -0
  646. package/SVF-osx/svf/include/include/WPA/Steensgaard.h +126 -0
  647. package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +83 -0
  648. package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +287 -0
  649. package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +254 -0
  650. package/SVF-osx/svf/include/include/WPA/WPAPass.h +119 -0
  651. package/SVF-osx/svf/include/include/WPA/WPASolver.h +205 -0
  652. package/SVF-osx/svf/include/include/WPA/WPAStat.h +222 -0
  653. package/SVF-osx/svf-llvm/include/SVF-LLVM/BasicTypes.h +250 -0
  654. package/SVF-osx/svf-llvm/include/SVF-LLVM/BreakConstantExpr.h +94 -0
  655. package/SVF-osx/svf-llvm/include/SVF-LLVM/CHGBuilder.h +73 -0
  656. package/SVF-osx/{include → svf-llvm/include}/SVF-LLVM/CPPUtil.h +0 -0
  657. package/SVF-osx/svf-llvm/include/SVF-LLVM/DCHG.h +484 -0
  658. package/SVF-osx/svf-llvm/include/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
  659. package/SVF-osx/svf-llvm/include/SVF-LLVM/ICFGBuilder.h +106 -0
  660. package/SVF-osx/{include → svf-llvm/include}/SVF-LLVM/IRAnnotator.h +0 -0
  661. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMLoopAnalysis.h +61 -0
  662. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMModule.h +360 -0
  663. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMUtil.h +466 -0
  664. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +250 -0
  665. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +94 -0
  666. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +73 -0
  667. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +484 -0
  668. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
  669. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +106 -0
  670. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +61 -0
  671. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +360 -0
  672. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +466 -0
  673. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +417 -0
  674. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +110 -0
  675. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +417 -0
  676. package/SVF-osx/svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h +110 -0
  677. package/package.json +1 -1
  678. package/SVF-linux/Release-build/lib/CUDD/libCudd.a +0 -0
  679. package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
@@ -0,0 +1,317 @@
1
+ //===- FlowSensitive.h -- Flow-sensitive pointer analysis---------------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-2017> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
23
+ /*
24
+ * FlowSensitiveAnalysis.h
25
+ *
26
+ * Created on: Oct 28, 2013
27
+ * Author: Yulei Sui
28
+ */
29
+
30
+ #ifndef FLOWSENSITIVEANALYSIS_H_
31
+ #define FLOWSENSITIVEANALYSIS_H_
32
+
33
+ #include "FastCluster/fastcluster.h"
34
+ #include "Graphs/SVFGOPT.h"
35
+ #include "MemoryModel/PointerAnalysisImpl.h"
36
+ #include "MSSA/SVFGBuilder.h"
37
+ #include "WPA/WPAFSSolver.h"
38
+
39
+ namespace SVF
40
+ {
41
+
42
+ class AndersenWaveDiff;
43
+ class SVFModule;
44
+
45
+ /*!
46
+ * Flow sensitive whole program pointer analysis
47
+ */
48
+ typedef WPAFSSolver<SVFG*> WPASVFGFSSolver;
49
+ class FlowSensitive : public WPASVFGFSSolver, public BVDataPTAImpl
50
+ {
51
+ friend class FlowSensitiveStat;
52
+ protected:
53
+ typedef SVFG::SVFGEdgeSetTy SVFGEdgeSetTy;
54
+
55
+ public:
56
+ typedef BVDataPTAImpl::MutDFPTDataTy MutDFPTDataTy;
57
+ typedef BVDataPTAImpl::MutDFPTDataTy::DFPtsMap DFInOutMap;
58
+ typedef BVDataPTAImpl::MutDFPTDataTy::PtsMap PtsMap;
59
+
60
+ /// Constructor
61
+ explicit FlowSensitive(SVFIR* _pag, PTATY type = FSSPARSE_WPA) : WPASVFGFSSolver(), BVDataPTAImpl(_pag, type)
62
+ {
63
+ svfg = nullptr;
64
+ solveTime = sccTime = processTime = propagationTime = updateTime = 0;
65
+ addrTime = copyTime = gepTime = loadTime = storeTime = phiTime = 0;
66
+ updateCallGraphTime = directPropaTime = indirectPropaTime = 0;
67
+ numOfProcessedAddr = numOfProcessedCopy = numOfProcessedGep = 0;
68
+ numOfProcessedLoad = numOfProcessedStore = 0;
69
+ numOfProcessedPhi = numOfProcessedActualParam = numOfProcessedFormalRet = 0;
70
+ numOfProcessedMSSANode = 0;
71
+ maxSCCSize = numOfSCC = numOfNodesInSCC = 0;
72
+ iterationForPrintStat = OnTheFlyIterBudgetForStat;
73
+ }
74
+
75
+ /// Destructor
76
+ ~FlowSensitive() override = default;
77
+
78
+ /// Create signle instance of flow-sensitive pointer analysis
79
+ static FlowSensitive* createFSWPA(SVFIR* _pag)
80
+ {
81
+ if (fspta == nullptr)
82
+ {
83
+ fspta = std::unique_ptr<FlowSensitive>(new FlowSensitive(_pag));
84
+ fspta->analyze();
85
+ }
86
+ return fspta.get();
87
+ }
88
+
89
+ /// Release flow-sensitive pointer analysis
90
+ static void releaseFSWPA()
91
+ {
92
+ fspta = nullptr;
93
+ }
94
+
95
+ /// We start from here
96
+ virtual bool runOnModule(SVFModule*)
97
+ {
98
+ return false;
99
+ }
100
+
101
+ /// Flow sensitive analysis
102
+ void analyze() override;
103
+
104
+ /// Initialize analysis
105
+ void initialize() override;
106
+
107
+ /// Finalize analysis
108
+ void finalize() override;
109
+
110
+ /// Get PTA name
111
+ const std::string PTAName() const override
112
+ {
113
+ return "FlowSensitive";
114
+ }
115
+
116
+ /// Methods for support type inquiry through isa, cast, and dyn_cast
117
+ //@{
118
+ static inline bool classof(const FlowSensitive *)
119
+ {
120
+ return true;
121
+ }
122
+ static inline bool classof(const PointerAnalysis *pta)
123
+ {
124
+ return pta->getAnalysisTy() == FSSPARSE_WPA;
125
+ }
126
+ //@}
127
+
128
+ /// Return SVFG
129
+ inline SVFG* getSVFG() const
130
+ {
131
+ return svfg;
132
+ }
133
+
134
+ protected:
135
+ /// SCC detection
136
+ NodeStack& SCCDetect() override;
137
+
138
+ /// Propagation
139
+ //@{
140
+ /// Propagate points-to information from an edge's src node to its dst node.
141
+ bool propFromSrcToDst(SVFGEdge* edge) override;
142
+ /// Propagate points-to information along a DIRECT SVFG edge.
143
+ virtual bool propAlongDirectEdge(const DirectSVFGEdge* edge);
144
+ /// Propagate points-to information along an INDIRECT SVFG edge.
145
+ virtual bool propAlongIndirectEdge(const IndirectSVFGEdge* edge);
146
+ /// Propagate points-to information of a certain variable from src to dst.
147
+ virtual bool propVarPtsFromSrcToDst(NodeID var, const SVFGNode* src, const SVFGNode* dst);
148
+ /// Propagate points-to information from an actual-param to a formal-param.
149
+ /// Not necessary if SVFGOPT is used instead of original SVFG.
150
+ virtual bool propagateFromAPToFP(const ActualParmSVFGNode* ap, const SVFGNode* dst);
151
+ /// Propagate points-to information from a formal-ret to an actual-ret.
152
+ /// Not necessary if SVFGOPT is used instead of original SVFG.
153
+ virtual bool propagateFromFRToAR(const FormalRetSVFGNode* fr, const SVFGNode* dst);
154
+ /// Handle weak updates
155
+ virtual bool weakUpdateOutFromIn(const SVFGNode* node)
156
+ {
157
+ return getDFPTDataTy()->updateAllDFOutFromIn(node->getId(),0,false);
158
+ }
159
+ /// Handle strong updates
160
+ virtual bool strongUpdateOutFromIn(const SVFGNode* node, NodeID singleton)
161
+ {
162
+ return getDFPTDataTy()->updateAllDFOutFromIn(node->getId(),singleton,true);
163
+ }
164
+ //@}
165
+
166
+ /// Propagation between newly connected SVFG nodes during updateCallGraph.
167
+ /// Can only be used during updateCallGraph.
168
+ //@{
169
+ bool propVarPtsAfterCGUpdated(NodeID var, const SVFGNode* src, const SVFGNode* dst);
170
+
171
+ virtual inline bool propDFOutToIn(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar)
172
+ {
173
+ return getDFPTDataTy()->updateAllDFInFromOut(srcStmt->getId(), srcVar, dstStmt->getId(),dstVar);
174
+ }
175
+ virtual inline bool propDFInToIn(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar)
176
+ {
177
+ return getDFPTDataTy()->updateAllDFInFromIn(srcStmt->getId(), srcVar, dstStmt->getId(),dstVar);
178
+ }
179
+ //@}
180
+
181
+ /// Update data-flow points-to data
182
+ //@{
183
+ inline bool updateOutFromIn(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar)
184
+ {
185
+ return getDFPTDataTy()->updateDFOutFromIn(srcStmt->getId(),srcVar, dstStmt->getId(),dstVar);
186
+ }
187
+ virtual inline bool updateInFromIn(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar)
188
+ {
189
+ return getDFPTDataTy()->updateDFInFromIn(srcStmt->getId(),srcVar, dstStmt->getId(),dstVar);
190
+ }
191
+ virtual inline bool updateInFromOut(const SVFGNode* srcStmt, NodeID srcVar, const SVFGNode* dstStmt, NodeID dstVar)
192
+ {
193
+ return getDFPTDataTy()->updateDFInFromOut(srcStmt->getId(),srcVar, dstStmt->getId(),dstVar);
194
+ }
195
+
196
+ virtual inline bool unionPtsFromIn(const SVFGNode* stmt, NodeID srcVar, NodeID dstVar)
197
+ {
198
+ return getDFPTDataTy()->updateTLVPts(stmt->getId(),srcVar,dstVar);
199
+ }
200
+ virtual inline bool unionPtsFromTop(const SVFGNode* stmt, NodeID srcVar, NodeID dstVar)
201
+ {
202
+ return getDFPTDataTy()->updateATVPts(srcVar,stmt->getId(),dstVar);
203
+ }
204
+
205
+ inline void clearAllDFOutVarFlag(const SVFGNode* stmt)
206
+ {
207
+ getDFPTDataTy()->clearAllDFOutUpdatedVar(stmt->getId());
208
+ }
209
+ //@}
210
+
211
+ /// Handle various constraints
212
+ //@{
213
+ void processNode(NodeID nodeId) override;
214
+ bool processSVFGNode(SVFGNode* node);
215
+ virtual bool processAddr(const AddrSVFGNode* addr);
216
+ virtual bool processCopy(const CopySVFGNode* copy);
217
+ virtual bool processPhi(const PHISVFGNode* phi);
218
+ virtual bool processGep(const GepSVFGNode* edge);
219
+ virtual bool processLoad(const LoadSVFGNode* load);
220
+ virtual bool processStore(const StoreSVFGNode* store);
221
+ //@}
222
+
223
+ /// Update call graph
224
+ //@{
225
+ /// Update call graph.
226
+ bool updateCallGraph(const CallSiteToFunPtrMap& callsites) override;
227
+ /// Connect nodes in SVFG.
228
+ void connectCallerAndCallee(const CallEdgeMap& newEdges, SVFGEdgeSetTy& edges);
229
+ /// Update nodes connected during updating call graph.
230
+ virtual void updateConnectedNodes(const SVFGEdgeSetTy& edges);
231
+ //@}
232
+
233
+ /// Return TRUE if this is a strong update STORE statement.
234
+ bool isStrongUpdate(const SVFGNode* node, NodeID& singleton);
235
+
236
+ /// Fills may/noAliases for the location/pointer pairs in cmp.
237
+ virtual void countAliases(Set<std::pair<NodeID, NodeID>> cmp, unsigned *mayAliases, unsigned *noAliases);
238
+
239
+ SVFG* svfg;
240
+ ///Get points-to set for a node from data flow IN/OUT set at a statement.
241
+ //@{
242
+ inline const PointsTo& getDFInPtsSet(const SVFGNode* stmt, const NodeID node)
243
+ {
244
+ return getDFPTDataTy()->getDFInPtsSet(stmt->getId(),node);
245
+ }
246
+ inline const PointsTo& getDFOutPtsSet(const SVFGNode* stmt, const NodeID node)
247
+ {
248
+ return getDFPTDataTy()->getDFOutPtsSet(stmt->getId(),node);
249
+ }
250
+ //@}
251
+
252
+ /// Get IN/OUT data flow map.
253
+ /// May only be called when the backing is MUTABLE.
254
+ ///@{
255
+ inline const DFInOutMap& getDFInputMap() const
256
+ {
257
+ return getMutDFPTDataTy()->getDFIn();
258
+ }
259
+ inline const DFInOutMap& getDFOutputMap() const
260
+ {
261
+ return getMutDFPTDataTy()->getDFOut();
262
+ }
263
+ ///@}
264
+
265
+ /// Performs clustering based on ander, setting the global best mapping
266
+ /// accordingly.
267
+ virtual void cluster(void);
268
+ /// Sets the global best mapping as a plain mapping, i.e. n -> n.
269
+ virtual void plainMap(void) const;
270
+
271
+ static std::unique_ptr<FlowSensitive> fspta;
272
+ SVFGBuilder memSSA;
273
+ AndersenWaveDiff *ander;
274
+
275
+ /// Save candidate mappings for evaluation's sake.
276
+ std::vector<std::pair<hclust_fast_methods, std::vector<NodeID>>> candidateMappings;
277
+
278
+ /// Statistics.
279
+ //@{
280
+ u32_t numOfProcessedAddr; /// Number of processed Addr node
281
+ u32_t numOfProcessedCopy; /// Number of processed Copy node
282
+ u32_t numOfProcessedGep; /// Number of processed Gep node
283
+ u32_t numOfProcessedPhi; /// Number of processed Phi node
284
+ u32_t numOfProcessedLoad; /// Number of processed Load node
285
+ u32_t numOfProcessedStore; /// Number of processed Store node
286
+ u32_t numOfProcessedActualParam; /// Number of processed actual param node
287
+ u32_t numOfProcessedFormalRet; /// Number of processed formal ret node
288
+ u32_t numOfProcessedMSSANode; /// Number of processed mssa node
289
+
290
+ u32_t maxSCCSize;
291
+ u32_t numOfSCC;
292
+ u32_t numOfNodesInSCC;
293
+
294
+ double solveTime; ///< time of solve.
295
+ double sccTime; ///< time of SCC detection.
296
+ double processTime; ///< time of processNode.
297
+ double propagationTime; ///< time of points-to propagation.
298
+ double directPropaTime; ///< time of points-to propagation of address-taken objects
299
+ double indirectPropaTime; ///< time of points-to propagation of top-level pointers
300
+ double updateTime; ///< time of strong/weak updates.
301
+ double addrTime; ///< time of handling address edges
302
+ double copyTime; ///< time of handling copy edges
303
+ double gepTime; ///< time of handling gep edges
304
+ double loadTime; ///< time of load edges
305
+ double storeTime; ///< time of store edges
306
+ double phiTime; ///< time of phi nodes.
307
+ double updateCallGraphTime; ///< time of updating call graph
308
+
309
+ NodeBS svfgHasSU;
310
+ //@}
311
+
312
+ void svfgStat();
313
+ };
314
+
315
+ } // End namespace SVF
316
+
317
+ #endif /* FLOWSENSITIVEANALYSIS_H_ */
@@ -0,0 +1,126 @@
1
+ /*
2
+ * Steensgaard.h
3
+ *
4
+ * Created on: 2 Feb. 2021
5
+ * Author: Yulei Sui
6
+ */
7
+
8
+ #ifndef INCLUDE_WPA_STEENSGAARD_H_
9
+ #define INCLUDE_WPA_STEENSGAARD_H_
10
+
11
+ #include "WPA/Andersen.h"
12
+
13
+ namespace SVF
14
+ {
15
+ /*!
16
+ * Equivalence-based Pointer Analysis
17
+ */
18
+ typedef WPASolver<ConstraintGraph*> WPAConstraintSolver;
19
+
20
+ class Steensgaard: public AndersenBase
21
+ {
22
+
23
+ public:
24
+
25
+ typedef Map<NodeID, NodeID> NodeToEquivClassMap;
26
+ typedef Map<NodeID, Set<NodeID>> NodeToSubsMap;
27
+
28
+ /// Constructor
29
+ Steensgaard(SVFIR* _pag)
30
+ : AndersenBase(_pag, Steensgaard_WPA, true)
31
+ {
32
+ }
33
+
34
+ /// Create an singleton instance
35
+ static Steensgaard* createSteensgaard(SVFIR* _pag)
36
+ {
37
+ if(steens==nullptr)
38
+ {
39
+ steens = new Steensgaard(_pag);
40
+ steens->analyze();
41
+ return steens;
42
+ }
43
+ return steens;
44
+ }
45
+ static void releaseSteensgaard()
46
+ {
47
+ if (steens)
48
+ delete steens;
49
+ steens = nullptr;
50
+ }
51
+
52
+ virtual void solveWorklist();
53
+
54
+ void processAllAddr();
55
+
56
+ void ecUnion(NodeID id, NodeID ec);
57
+
58
+ /// Methods for support type inquiry through isa, cast, and dyn_cast:
59
+ //@{
60
+ static inline bool classof(const Steensgaard *)
61
+ {
62
+ return true;
63
+ }
64
+ static inline bool classof(const AndersenBase *pta)
65
+ {
66
+ return (pta->getAnalysisTy() == Steensgaard_WPA);
67
+ }
68
+ static inline bool classof(const PointerAnalysis *pta)
69
+ {
70
+ return (pta->getAnalysisTy() == Steensgaard_WPA);
71
+ }
72
+ //@}
73
+
74
+ /// Operation of points-to set
75
+ virtual inline const PointsTo& getPts(NodeID id)
76
+ {
77
+ return getPTDataTy()->getPts(getEC(id));
78
+ }
79
+ /// pts(id) = pts(id) U target
80
+ virtual inline bool unionPts(NodeID id, const PointsTo& target)
81
+ {
82
+ id = getEC(id);
83
+ return getPTDataTy()->unionPts(id, target);
84
+ }
85
+ /// pts(id) = pts(id) U pts(ptd)
86
+ virtual inline bool unionPts(NodeID id, NodeID ptd)
87
+ {
88
+ id = getEC(id);
89
+ ptd = getEC(ptd);
90
+ return getPTDataTy()->unionPts(id,ptd);
91
+ }
92
+
93
+ /// API for equivalence class operations
94
+ /// Every constraint node maps to an unique equivalence class EC
95
+ /// An equivalence class has a set of sub constraint nodes.
96
+ inline NodeID getEC(NodeID id) const
97
+ {
98
+ NodeToEquivClassMap::const_iterator it = nodeToECMap.find(id);
99
+ if(it==nodeToECMap.end())
100
+ return id;
101
+ else
102
+ return it->second;
103
+ }
104
+ void setEC(NodeID node, NodeID rep);
105
+
106
+ inline Set<NodeID>& getSubNodes(NodeID id)
107
+ {
108
+ nodeToSubsMap[id].insert(id);
109
+ return nodeToSubsMap[id];
110
+ }
111
+ inline void addSubNode(NodeID node, NodeID sub)
112
+ {
113
+ nodeToSubsMap[node].insert(sub);
114
+ }
115
+
116
+ private:
117
+
118
+ static Steensgaard* steens; // static instance
119
+ NodeToEquivClassMap nodeToECMap;
120
+ NodeToSubsMap nodeToSubsMap;
121
+ };
122
+
123
+ } /// end of the namespace
124
+
125
+
126
+ #endif /* INCLUDE_WPA_STEENSGAARD_H_ */
@@ -0,0 +1,83 @@
1
+ //===- TypeAnalysis.h -- Fast type-based analysis without pointer analysis---------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-2017> <Yulei Sui>
6
+ //
7
+
8
+ // This program is free software: you can redistribute it and/or modify
9
+ // it under the terms of the GNU General Public License as published by
10
+ // the Free Software Foundation, either version 3 of the License, or
11
+ // (at your option) any later version.
12
+
13
+ // This program is distributed in the hope that it will be useful,
14
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ // GNU General Public License for more details.
17
+
18
+ // You should have received a copy of the GNU General Public License
19
+ // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+ //
21
+ //===----------------------------------------------------------------------===//
22
+
23
+ /*
24
+ * TypeAnalysis.h
25
+ *
26
+ * Created on: 7 Sep. 2018
27
+ * Author: Yulei Sui
28
+ */
29
+
30
+ #ifndef INCLUDE_WPA_TYPEANALYSIS_H_
31
+ #define INCLUDE_WPA_TYPEANALYSIS_H_
32
+
33
+ #include "WPA/Andersen.h"
34
+
35
+ namespace SVF
36
+ {
37
+
38
+ class TypeAnalysis: public AndersenBase
39
+ {
40
+
41
+ public:
42
+ /// Constructor
43
+ TypeAnalysis(SVFIR* pag)
44
+ : AndersenBase(pag, TypeCPP_WPA)
45
+ {
46
+ }
47
+
48
+ /// Destructor
49
+ virtual ~TypeAnalysis()
50
+ {
51
+ }
52
+
53
+ /// Type analysis
54
+ void analyze();
55
+
56
+ /// Initialize analysis
57
+ void initialize();
58
+
59
+ /// Finalize analysis
60
+ virtual inline void finalize();
61
+
62
+ /// Resolve callgraph based on CHA
63
+ void callGraphSolveBasedOnCHA(const CallSiteToFunPtrMap& callsites, CallEdgeMap& newEdges);
64
+
65
+ /// Statistics of CHA and callgraph
66
+ void dumpCHAStats();
67
+
68
+ /// Methods for support type inquiry through isa, cast, and dyn_cast:
69
+ //@{
70
+ static inline bool classof(const TypeAnalysis *)
71
+ {
72
+ return true;
73
+ }
74
+ static inline bool classof(const PointerAnalysis *pta)
75
+ {
76
+ return (pta->getAnalysisTy() == TypeCPP_WPA);
77
+ }
78
+ //@}
79
+ };
80
+
81
+ } // End namespace SVF
82
+
83
+ #endif /* INCLUDE_WPA_TYPEANALYSIS_H_ */