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,178 @@
1
+ //===- FlowDDA.h -- Flow-sensitive demand-driven analysis -------------//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <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
+ * FlowDDA.h
25
+ *
26
+ * Created on: Jun 30, 2014
27
+ * Author: Yulei Sui, Sen Ye
28
+ *
29
+ * The implementation is based on
30
+ * (1) Yulei Sui and Jingling Xue. "On-Demand Strong Update Analysis via Value-Flow Refinement".
31
+ * ACM SIGSOFT International Symposium on the Foundation of Software Engineering (FSE'16)
32
+ *
33
+ * (2) Yulei Sui and Jingling Xue. "Value-Flow-Based Demand-Driven Pointer Analysis for C and C++".
34
+ * IEEE Transactions on Software Engineering (TSE'18)
35
+ */
36
+
37
+ #ifndef FlowDDA_H_
38
+ #define FlowDDA_H_
39
+
40
+ #include "MemoryModel/PointerAnalysisImpl.h"
41
+ #include "Util/DPItem.h"
42
+ #include "DDA/DDAVFSolver.h"
43
+
44
+ namespace SVF
45
+ {
46
+
47
+ class DDAClient;
48
+ typedef StmtDPItem<SVFGNode> LocDPItem;
49
+
50
+ /*!
51
+ * Flow sensitive demand-driven analysis on value-flow graph
52
+ */
53
+ class FlowDDA : public BVDataPTAImpl, public DDAVFSolver<NodeID,PointsTo,LocDPItem>
54
+ {
55
+
56
+ public:
57
+ typedef BVDataPTAImpl::CallSiteSet CallSiteSet;
58
+ typedef BVDataPTAImpl::CallEdgeMap CallEdgeMap;
59
+ typedef BVDataPTAImpl::FunctionSet FunctionSet;
60
+ /// Constructor
61
+ FlowDDA(SVFIR* _pag, DDAClient* client): BVDataPTAImpl(_pag, PointerAnalysis::FlowS_DDA),
62
+ DDAVFSolver<NodeID,PointsTo,LocDPItem>(),
63
+ _client(client)
64
+ {
65
+ }
66
+ /// Destructor
67
+ inline virtual ~FlowDDA()
68
+ {
69
+ }
70
+ /// dummy analyze method
71
+ virtual void analyze() override {}
72
+
73
+ /// Compute points-to set for all top variable
74
+ void computeDDAPts(NodeID id) override;
75
+
76
+ /// Handle out-of-budget dpm
77
+ void handleOutOfBudgetDpm(const LocDPItem& dpm);
78
+
79
+ /// Handle condition for flow analysis (backward analysis)
80
+ virtual bool handleBKCondition(LocDPItem& dpm, const SVFGEdge* edge) override;
81
+
82
+ /// refine indirect call edge
83
+ bool testIndCallReachability(LocDPItem& dpm, const SVFFunction* callee, CallSiteID csId);
84
+
85
+ /// Initialization of the analysis
86
+ inline virtual void initialize() override
87
+ {
88
+ BVDataPTAImpl::initialize();
89
+ buildSVFG(pag);
90
+ setCallGraph(getPTACallGraph());
91
+ setCallGraphSCC(getCallGraphSCC());
92
+ stat = setDDAStat(new DDAStat(this));
93
+ }
94
+
95
+ /// Finalize analysis
96
+ inline virtual void finalize() override
97
+ {
98
+ BVDataPTAImpl::finalize();
99
+ }
100
+
101
+ /// we exclude concrete heap here following the conditions:
102
+ /// (1) local allocated heap and
103
+ /// (2) not escaped to the scope outside the current function
104
+ /// (3) not inside loop
105
+ /// (4) not involved in recursion
106
+ virtual bool isHeapCondMemObj(const NodeID& var, const StoreSVFGNode* store) override;
107
+
108
+ /// Override parent method
109
+ virtual inline PointsTo getConservativeCPts(const LocDPItem& dpm) override
110
+ {
111
+ return getAndersenAnalysis()->getPts(dpm.getCurNodeID());
112
+ }
113
+ /// Override parent method
114
+ virtual inline NodeID getPtrNodeID(const NodeID& var) const override
115
+ {
116
+ return var;
117
+ }
118
+ /// Handle Address SVFGNode to add proper points-to
119
+ virtual inline void handleAddr(PointsTo& pts,const LocDPItem& dpm,const AddrSVFGNode* addr) override
120
+ {
121
+ NodeID srcID = addr->getPAGSrcNodeID();
122
+ /// whether this object is set field-insensitive during pre-analysis
123
+ if (isFieldInsensitive(srcID))
124
+ srcID = getFIObjVar(srcID);
125
+
126
+ addDDAPts(pts,srcID);
127
+ DBOUT(DDDA, SVFUtil::outs() << "\t add points-to target " << srcID << " to dpm ");
128
+ DBOUT(DDDA, dpm.dump());
129
+ }
130
+ /// processGep node
131
+ virtual PointsTo processGepPts(const GepSVFGNode* gep, const PointsTo& srcPts) override;
132
+
133
+ /// Update call graph.
134
+ //@{
135
+ virtual void updateCallGraphAndSVFG(const LocDPItem& dpm,const CallICFGNode* cs,SVFGEdgeSet& svfgEdges) override
136
+ {
137
+ CallEdgeMap newEdges;
138
+ resolveIndCalls(cs, getCachedPointsTo(dpm), newEdges);
139
+ for (CallEdgeMap::const_iterator iter = newEdges.begin(),eiter = newEdges.end(); iter != eiter; iter++)
140
+ {
141
+ const CallICFGNode* newcs = iter->first;
142
+ const FunctionSet & functions = iter->second;
143
+ for (FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)
144
+ {
145
+ const SVFFunction* func = *func_iter;
146
+ getSVFG()->connectCallerAndCallee(newcs, func, svfgEdges);
147
+ }
148
+ }
149
+ }
150
+ //@}
151
+
152
+ /// Override parent class functions to get/add cached points-to directly via PAGNode ID
153
+ //@{
154
+ virtual inline const PointsTo& getCachedTLPointsTo(const LocDPItem& dpm) override
155
+ {
156
+ return getPts(dpm.getCurNodeID());
157
+ }
158
+ //@}
159
+
160
+ /// Union pts
161
+ bool unionDDAPts(LocDPItem dpm, const PointsTo& targetPts) override
162
+ {
163
+ if (isTopLevelPtrStmt(dpm.getLoc())) return unionPts(dpm.getCurNodeID(), targetPts);
164
+ else return dpmToADCPtSetMap[dpm] |= targetPts;
165
+ }
166
+
167
+ virtual const std::string PTAName() const override
168
+ {
169
+ return "FlowSensitive DDA";
170
+ }
171
+
172
+ private:
173
+ DDAClient* _client; ///< DDA client
174
+ };
175
+
176
+ } // End namespace SVF
177
+
178
+ #endif /* FlowDDA_H_ */
@@ -0,0 +1,13 @@
1
+ Copyright:
2
+ * fastcluster_dm.cpp & fastcluster_R_dm.cpp:
3
+ © 2011 Daniel Müllner <http://danifold.net>
4
+ * fastcluster.(h|cpp) & demo.cpp & plotresult.r:
5
+ © 2018 Christoph Dalitz <http://www.hsnr.de/ipattern/>
6
+ All rights reserved.
7
+
8
+ Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
9
+
10
+ * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
11
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
12
+
13
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,80 @@
1
+ //
2
+ // C++ standalone verion of fastcluster by Daniel Muellner
3
+ //
4
+ // Copyright: Daniel Muellner, 2011
5
+ // Christoph Dalitz, 2020
6
+ // License: BSD style license
7
+ // (see the file LICENSE for details)
8
+ //
9
+
10
+ #ifndef fastclustercpp_H
11
+ #define fastclustercpp_H
12
+
13
+ //
14
+ // Assigns cluster labels (0, ..., nclust-1) to the n points such
15
+ // that the cluster result is split into nclust clusters.
16
+ //
17
+ // Input arguments:
18
+ // n = number of observables
19
+ // merge = clustering result in R format
20
+ // nclust = number of clusters
21
+ // Output arguments:
22
+ // labels = allocated integer array of size n for result
23
+ //
24
+ void cutree_k(int n, const int* merge, int nclust, int* labels);
25
+
26
+ //
27
+ // Assigns cluster labels (0, ..., nclust-1) to the n points such
28
+ // that the hierarchical clsutering is stopped at cluster distance cdist
29
+ //
30
+ // Input arguments:
31
+ // n = number of observables
32
+ // merge = clustering result in R format
33
+ // height = cluster distance at each merge step
34
+ // cdist = cutoff cluster distance
35
+ // Output arguments:
36
+ // labels = allocated integer array of size n for result
37
+ //
38
+ void cutree_cdist(int n, const int* merge, double* height, double cdist, int* labels);
39
+
40
+ //
41
+ // Hierarchical clustering with one of Daniel Muellner's fast algorithms
42
+ //
43
+ // Input arguments:
44
+ // n = number of observables
45
+ // distmat = condensed distance matrix, i.e. an n*(n-1)/2 array representing
46
+ // the upper triangle (without diagonal elements) of the distance
47
+ // matrix, e.g. for n=4:
48
+ // d00 d01 d02 d03
49
+ // d10 d11 d12 d13 -> d01 d02 d03 d12 d13 d23
50
+ // d20 d21 d22 d23
51
+ // d30 d31 d32 d33
52
+ // method = cluster metric (see enum hclust_fast_methods)
53
+ // Output arguments:
54
+ // merge = allocated (n-1)x2 matrix (2*(n-1) array) for storing result.
55
+ // Result follows R hclust convention:
56
+ // - observabe indices start with one
57
+ // - merge[i][] contains the merged nodes in step i
58
+ // - merge[i][j] is negative when the node is an atom
59
+ // height = allocated (n-1) array with distances at each merge step
60
+ // Return code:
61
+ // 0 = ok
62
+ // 1 = invalid method
63
+ //
64
+ int hclust_fast(int n, double* distmat, int method, int* merge, double* height);
65
+ enum hclust_fast_methods
66
+ {
67
+ // single link with the minimum spanning tree algorithm (Rohlf, 1973)
68
+ HCLUST_METHOD_SINGLE = 0,
69
+ // complete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
70
+ HCLUST_METHOD_COMPLETE = 1,
71
+ // omplete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
72
+ HCLUST_METHOD_AVERAGE = 2,
73
+ // median link with the generic algorithm (Müllner, 2011)
74
+ HCLUST_METHOD_MEDIAN = 3,
75
+ // To indicate to try all methods and pick the best.
76
+ HCLUST_METHOD_SVF_BEST = 4
77
+ };
78
+
79
+
80
+ #endif
@@ -0,0 +1,215 @@
1
+ //===----- CFLGraph.h -- Graph for context-free language reachability analysis --//
2
+ //
3
+ // SVF: Static Value-Flow Analysis
4
+ //
5
+ // Copyright (C) <2013-> <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
+ * CFLGraph.h
25
+ *
26
+ * Created on: March 5, 2022
27
+ * Author: Yulei Sui
28
+ */
29
+
30
+ #ifndef CFLG_H_
31
+ #define CFLG_H_
32
+
33
+ #include <fstream>
34
+ #include <iostream>
35
+ #include <string>
36
+ #include <regex>
37
+ #include "CFL/CFLGrammar.h"
38
+ #include "Graphs/GenericGraph.h"
39
+ #include "Graphs/ConsG.h"
40
+
41
+ namespace SVF
42
+ {
43
+ class CFLNode;
44
+
45
+ typedef GenericEdge<CFLNode> GenericCFLEdgeTy;
46
+
47
+ class CFLEdge: public GenericCFLEdgeTy
48
+ {
49
+ public:
50
+ typedef GenericNode<CFLNode, CFLEdge>::GEdgeSetTy CFLEdgeSetTy;
51
+
52
+ CFLEdge(CFLNode *s, CFLNode *d, GEdgeFlag k = 0):
53
+ GenericCFLEdgeTy(s,d,k)
54
+ {
55
+ }
56
+ ~CFLEdge() override = default;
57
+
58
+ inline GEdgeKind getEdgeKind() const
59
+ {
60
+ return this->getEdgeKindWithoutMask();
61
+ }
62
+
63
+ inline GEdgeKind getEdgeKindWithMask() const
64
+ {
65
+ return (EdgeKindMask & this->getEdgeKindWithoutMask());
66
+ }
67
+
68
+ inline GEdgeKind getEdgeAttri() const
69
+ {
70
+ return (getEdgeKind() >> this->EdgeKindMaskBits);
71
+ }
72
+ };
73
+
74
+
75
+ typedef GenericNode<CFLNode,CFLEdge> GenericCFLNodeTy;
76
+ class CFLNode: public GenericCFLNodeTy
77
+ {
78
+ public:
79
+ CFLNode (NodeID i = 0, GNodeK k = 0):
80
+ GenericCFLNodeTy(i, k)
81
+ {
82
+ }
83
+
84
+ ~CFLNode() override = default;
85
+
86
+ /// Different Kind(label) associated edges set
87
+ typedef std::map <GrammarBase::Symbol, CFLEdge::CFLEdgeSetTy> CFLEdgeDataTy;
88
+
89
+ private:
90
+ CFLEdgeDataTy inCFLEdges;
91
+ CFLEdgeDataTy outCFLEdges;
92
+
93
+ public:
94
+ inline const CFLEdge::CFLEdgeSetTy& getInEdgeWithTy(GrammarBase::Symbol s)
95
+ {
96
+ return inCFLEdges[s];
97
+ }
98
+
99
+ inline const CFLEdge::CFLEdgeSetTy& getOutEdgeWithTy(GrammarBase::Symbol s)
100
+ {
101
+ return outCFLEdges[s];
102
+ }
103
+
104
+ inline bool addInEdgeWithKind(CFLEdge* inEdge, GrammarBase::Symbol s)
105
+ {
106
+ assert(inEdge->getDstID() == this->getId());
107
+ bool added1 = GenericNode::addIncomingEdge(inEdge);
108
+ bool added2 = inCFLEdges[s].insert(inEdge).second;
109
+
110
+ return added1 && added2;
111
+ }
112
+
113
+ inline bool addIngoingEdge(CFLEdge* inEdge)
114
+ {
115
+ return addInEdgeWithKind(inEdge, inEdge->getEdgeKind());
116
+ }
117
+
118
+ inline bool addOutEdgeWithKind(CFLEdge* outEdge, GrammarBase::Symbol s)
119
+ {
120
+ assert(outEdge->getSrcID() == this->getId());
121
+ bool added1 = GenericNode::addOutgoingEdge(outEdge);
122
+ bool added2 = outCFLEdges[s].insert(outEdge).second;
123
+
124
+ return added1 && added2;
125
+ }
126
+
127
+ inline bool addOutgoingEdge(CFLEdge* OutEdge)
128
+ {
129
+ return addOutEdgeWithKind(OutEdge, OutEdge->getEdgeKind());
130
+ }
131
+
132
+ inline bool removeCFLInEdge(CFLEdge* inEdge)
133
+ {
134
+ u32_t num1 = removeIncomingEdge(inEdge);
135
+
136
+ GrammarBase::Symbol s = inEdge->getEdgeKind();
137
+ u32_t num2 = inCFLEdges[s].erase(inEdge);
138
+
139
+ return num1 && num2;
140
+ }
141
+
142
+ inline bool removeCFLOutEdge(CFLEdge* outEdge)
143
+ {
144
+ u32_t num1 = removeOutgoingEdge(outEdge);
145
+
146
+ GrammarBase::Symbol s = outEdge->getEdgeKind();
147
+ u32_t num2 = outCFLEdges[s].erase(outEdge);
148
+
149
+ return num1 && num2;
150
+ }
151
+ };
152
+
153
+ /// Edge-labeled graph for CFL Reachability analysis
154
+ typedef GenericGraph<CFLNode,CFLEdge> GenericCFLGraphTy;
155
+ class CFLGraph: public GenericCFLGraphTy
156
+ {
157
+ public:
158
+ typedef CFLGrammar::Symbol Symbol;
159
+ typedef CFLGrammar::Kind Kind;
160
+ typedef GenericNode<CFLNode,CFLEdge>::GEdgeSetTy CFLEdgeSet;
161
+ Kind startKind;
162
+
163
+ CFLGraph(Kind kind)
164
+ {
165
+ startKind = kind;
166
+ }
167
+ ~CFLGraph() override = default;
168
+
169
+ Kind getStartKind() const;
170
+
171
+ virtual void addCFLNode(NodeID id, CFLNode* node);
172
+
173
+ virtual const CFLEdge* addCFLEdge(CFLNode* src, CFLNode* dst, CFLEdge::GEdgeFlag label);
174
+
175
+ virtual const CFLEdge* hasEdge(CFLNode* src, CFLNode* dst, CFLEdge::GEdgeFlag label);
176
+
177
+ void dump(const std::string& filename);
178
+
179
+ void view();
180
+
181
+ inline const CFLEdgeSet& getCFLEdges() const
182
+ {
183
+ return cflEdgeSet;
184
+ }
185
+
186
+ private:
187
+ CFLEdgeSet cflEdgeSet;
188
+ };
189
+
190
+ }
191
+
192
+ namespace SVF
193
+ {
194
+ /* !
195
+ * GenericGraphTraits specializations for generic graph algorithms.
196
+ * Provide graph traits for traversing from a constraint node using standard graph traversals.
197
+ */
198
+ template<> struct GenericGraphTraits<SVF::CFLNode*> : public GenericGraphTraits<SVF::GenericNode<SVF::CFLNode,SVF::CFLEdge>* >
199
+ {
200
+ };
201
+
202
+ /// Inverse GenericGraphTraits specializations for call graph node, it is used for inverse traversal.
203
+ template<>
204
+ struct GenericGraphTraits<Inverse<SVF::CFLNode *> > : public GenericGraphTraits<Inverse<SVF::GenericNode<SVF::CFLNode,SVF::CFLEdge>* > >
205
+ {
206
+ };
207
+
208
+ template<> struct GenericGraphTraits<SVF::CFLGraph*> : public GenericGraphTraits<SVF::GenericGraph<SVF::CFLNode,SVF::CFLEdge>* >
209
+ {
210
+ typedef SVF::CFLNode *NodeRef;
211
+ };
212
+
213
+ } // End namespace llvm
214
+
215
+ #endif /* CFLG_H_ */