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,408 @@
1
+ //===- ConsG.h -- Constraint graph representation-----------------------------//
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
+ * ConstraintGraph.h
25
+ *
26
+ * Created on: Oct 14, 2013
27
+ * Author: Yulei Sui
28
+ */
29
+
30
+ #ifndef CONSG_H_
31
+ #define CONSG_H_
32
+
33
+ #include "Graphs/ConsGEdge.h"
34
+ #include "Graphs/ConsGNode.h"
35
+
36
+ namespace SVF
37
+ {
38
+
39
+ /*!
40
+ * Constraint graph for Andersen's analysis
41
+ * ConstraintNodes are same as PAGNodes
42
+ * ConstraintEdges are self-defined edges (initialized with ConstraintEdges)
43
+ */
44
+ class ConstraintGraph : public GenericGraph<ConstraintNode,ConstraintEdge>
45
+ {
46
+
47
+ public:
48
+ typedef OrderedMap<NodeID, ConstraintNode *> ConstraintNodeIDToNodeMapTy;
49
+ typedef ConstraintEdge::ConstraintEdgeSetTy::iterator ConstraintNodeIter;
50
+ typedef Map<NodeID, NodeID> NodeToRepMap;
51
+ typedef Map<NodeID, NodeBS> NodeToSubsMap;
52
+ typedef FIFOWorkList<NodeID> WorkList;
53
+
54
+ protected:
55
+ SVFIR*pag;
56
+ NodeToRepMap nodeToRepMap;
57
+ NodeToSubsMap nodeToSubsMap;
58
+ WorkList nodesToBeCollapsed;
59
+ EdgeID edgeIndex;
60
+
61
+ ConstraintEdge::ConstraintEdgeSetTy AddrCGEdgeSet;
62
+ ConstraintEdge::ConstraintEdgeSetTy directEdgeSet;
63
+ ConstraintEdge::ConstraintEdgeSetTy LoadCGEdgeSet;
64
+ ConstraintEdge::ConstraintEdgeSetTy StoreCGEdgeSet;
65
+
66
+ void buildCG();
67
+
68
+ void destroy();
69
+
70
+ SVFStmt::SVFStmtSetTy& getPAGEdgeSet(SVFStmt::PEDGEK kind)
71
+ {
72
+ return pag->getPTASVFStmtSet(kind);
73
+ }
74
+
75
+ /// Wappers used internally, not expose to Andernsen Pass
76
+ //@{
77
+ inline NodeID getValueNode(const SVFValue* value) const
78
+ {
79
+ return sccRepNode(pag->getValueNode(value));
80
+ }
81
+
82
+ inline NodeID getReturnNode(const SVFFunction* value) const
83
+ {
84
+ return pag->getReturnNode(value);
85
+ }
86
+
87
+ inline NodeID getVarargNode(const SVFFunction* value) const
88
+ {
89
+ return pag->getVarargNode(value);
90
+ }
91
+ //@}
92
+
93
+ public:
94
+ /// Constructor
95
+ ConstraintGraph(SVFIR* p): pag(p), edgeIndex(0)
96
+ {
97
+ buildCG();
98
+ }
99
+ /// Destructor
100
+ virtual ~ConstraintGraph()
101
+ {
102
+ destroy();
103
+ }
104
+
105
+ /// Get/add/remove constraint node
106
+ //@{
107
+ inline ConstraintNode* getConstraintNode(NodeID id) const
108
+ {
109
+ id = sccRepNode(id);
110
+ return getGNode(id);
111
+ }
112
+ inline void addConstraintNode(ConstraintNode* node, NodeID id)
113
+ {
114
+ addGNode(id,node);
115
+ }
116
+ inline bool hasConstraintNode(NodeID id) const
117
+ {
118
+ id = sccRepNode(id);
119
+ return hasGNode(id);
120
+ }
121
+ inline void removeConstraintNode(ConstraintNode* node)
122
+ {
123
+ removeGNode(node);
124
+ }
125
+ //@}
126
+
127
+ //// Return true if this edge exits
128
+ inline bool hasEdge(ConstraintNode* src, ConstraintNode* dst, ConstraintEdge::ConstraintEdgeK kind)
129
+ {
130
+ ConstraintEdge edge(src,dst,kind);
131
+ if(kind == ConstraintEdge::Copy ||
132
+ kind == ConstraintEdge::NormalGep || kind == ConstraintEdge::VariantGep)
133
+ return directEdgeSet.find(&edge) != directEdgeSet.end();
134
+ else if(kind == ConstraintEdge::Addr)
135
+ return AddrCGEdgeSet.find(&edge) != AddrCGEdgeSet.end();
136
+ else if(kind == ConstraintEdge::Store)
137
+ return StoreCGEdgeSet.find(&edge) != StoreCGEdgeSet.end();
138
+ else if(kind == ConstraintEdge::Load)
139
+ return LoadCGEdgeSet.find(&edge) != LoadCGEdgeSet.end();
140
+ else
141
+ assert(false && "no other kind!");
142
+ return false;
143
+ }
144
+
145
+ /// Get an edge via its src and dst nodes and kind
146
+ inline ConstraintEdge* getEdge(ConstraintNode* src, ConstraintNode* dst, ConstraintEdge::ConstraintEdgeK kind)
147
+ {
148
+ ConstraintEdge edge(src,dst,kind);
149
+ if(kind == ConstraintEdge::Copy || kind == ConstraintEdge::NormalGep || kind == ConstraintEdge::VariantGep)
150
+ {
151
+ auto eit = directEdgeSet.find(&edge);
152
+ return *eit;
153
+ }
154
+ else if(kind == ConstraintEdge::Addr)
155
+ {
156
+ auto eit = AddrCGEdgeSet.find(&edge);
157
+ return *eit;
158
+ }
159
+ else if(kind == ConstraintEdge::Store)
160
+ {
161
+ auto eit = StoreCGEdgeSet.find(&edge);
162
+ return *eit;
163
+ }
164
+ else if(kind == ConstraintEdge::Load)
165
+ {
166
+ auto eit = LoadCGEdgeSet.find(&edge);
167
+ return *eit;
168
+ }
169
+ else
170
+ {
171
+ assert(false && "no other kind!");
172
+ return nullptr;
173
+ }
174
+ }
175
+
176
+ ///Add a SVFIR edge into Edge map
177
+ //@{
178
+ /// Add Address edge
179
+ AddrCGEdge* addAddrCGEdge(NodeID src, NodeID dst);
180
+ /// Add Copy edge
181
+ CopyCGEdge* addCopyCGEdge(NodeID src, NodeID dst);
182
+ /// Add Gep edge
183
+ NormalGepCGEdge* addNormalGepCGEdge(NodeID src, NodeID dst, const LocationSet& ls);
184
+ VariantGepCGEdge* addVariantGepCGEdge(NodeID src, NodeID dst);
185
+ /// Add Load edge
186
+ LoadCGEdge* addLoadCGEdge(NodeID src, NodeID dst);
187
+ /// Add Store edge
188
+ StoreCGEdge* addStoreCGEdge(NodeID src, NodeID dst);
189
+ //@}
190
+
191
+ ///Get SVFIR edge
192
+ //@{
193
+ /// Get Address edges
194
+ inline ConstraintEdge::ConstraintEdgeSetTy& getAddrCGEdges()
195
+ {
196
+ return AddrCGEdgeSet;
197
+ }
198
+ /// Get Copy/call/ret/gep edges
199
+ inline ConstraintEdge::ConstraintEdgeSetTy& getDirectCGEdges()
200
+ {
201
+ return directEdgeSet;
202
+ }
203
+ /// Get Load edges
204
+ inline ConstraintEdge::ConstraintEdgeSetTy& getLoadCGEdges()
205
+ {
206
+ return LoadCGEdgeSet;
207
+ }
208
+ /// Get Store edges
209
+ inline ConstraintEdge::ConstraintEdgeSetTy& getStoreCGEdges()
210
+ {
211
+ return StoreCGEdgeSet;
212
+ }
213
+ //@}
214
+
215
+ /// Used for cycle elimination
216
+ //@{
217
+ /// Remove edge from old dst target, change edge dst id and add modifed edge into new dst
218
+ void reTargetDstOfEdge(ConstraintEdge* edge, ConstraintNode* newDstNode);
219
+ /// Remove edge from old src target, change edge dst id and add modifed edge into new src
220
+ void reTargetSrcOfEdge(ConstraintEdge* edge, ConstraintNode* newSrcNode);
221
+ /// Remove addr edge from their src and dst edge sets
222
+ void removeAddrEdge(AddrCGEdge* edge);
223
+ /// Remove direct edge from their src and dst edge sets
224
+ void removeDirectEdge(ConstraintEdge* edge);
225
+ /// Remove load edge from their src and dst edge sets
226
+ void removeLoadEdge(LoadCGEdge* edge);
227
+ /// Remove store edge from their src and dst edge sets
228
+ void removeStoreEdge(StoreCGEdge* edge);
229
+ //@}
230
+
231
+ /// SCC rep/sub nodes methods
232
+ //@{
233
+ inline NodeID sccRepNode(NodeID id) const
234
+ {
235
+ NodeToRepMap::const_iterator it = nodeToRepMap.find(id);
236
+ if(it==nodeToRepMap.end())
237
+ return id;
238
+ else
239
+ return it->second;
240
+ }
241
+ inline NodeBS& sccSubNodes(NodeID id)
242
+ {
243
+ nodeToSubsMap[id].set(id);
244
+ return nodeToSubsMap[id];
245
+ }
246
+ inline void setRep(NodeID node, NodeID rep)
247
+ {
248
+ nodeToRepMap[node] = rep;
249
+ }
250
+ inline void setSubs(NodeID node, NodeBS& subs)
251
+ {
252
+ nodeToSubsMap[node] |= subs;
253
+ }
254
+ inline void resetSubs(NodeID node)
255
+ {
256
+ nodeToSubsMap.erase(node);
257
+ }
258
+ inline NodeBS& getSubs(NodeID node)
259
+ {
260
+ return nodeToSubsMap[node];
261
+ }
262
+ inline NodeID getRep(NodeID node)
263
+ {
264
+ return nodeToRepMap[node];
265
+ }
266
+ inline void resetRep(NodeID node)
267
+ {
268
+ nodeToRepMap.erase(node);
269
+ }
270
+ //@}
271
+
272
+ /// Move incoming direct edges of a sub node which is outside the SCC to its rep node
273
+ /// Remove incoming direct edges of a sub node which is inside the SCC from its rep node
274
+ /// Return TRUE if there's a gep edge inside this SCC (PWC).
275
+ bool moveInEdgesToRepNode(ConstraintNode*node, ConstraintNode* rep );
276
+
277
+ /// Move outgoing direct edges of a sub node which is outside the SCC to its rep node
278
+ /// Remove outgoing direct edges of sub node which is inside the SCC from its rep node
279
+ /// Return TRUE if there's a gep edge inside this SCC (PWC).
280
+ bool moveOutEdgesToRepNode(ConstraintNode*node, ConstraintNode* rep );
281
+
282
+ /// Move incoming/outgoing direct edges of a sub node to its rep node
283
+ /// Return TRUE if there's a gep edge inside this SCC (PWC).
284
+ inline bool moveEdgesToRepNode(ConstraintNode*node, ConstraintNode* rep )
285
+ {
286
+ bool gepIn = moveInEdgesToRepNode(node, rep);
287
+ bool gepOut = moveOutEdgesToRepNode(node, rep);
288
+ return (gepIn || gepOut);
289
+ }
290
+
291
+ /// Check if a given edge is a NormalGepCGEdge with 0 offset.
292
+ inline bool isZeroOffsettedGepCGEdge(ConstraintEdge *edge) const
293
+ {
294
+ if (NormalGepCGEdge *normalGepCGEdge = SVFUtil::dyn_cast<NormalGepCGEdge>(edge))
295
+ if (0 == normalGepCGEdge->getConstantFieldIdx())
296
+ return true;
297
+ return false;
298
+ }
299
+
300
+ /// Wrappers for invoking SVFIR methods
301
+ //@{
302
+ inline const SVFIR::CallSiteToFunPtrMap& getIndirectCallsites() const
303
+ {
304
+ return pag->getIndirectCallsites();
305
+ }
306
+ inline NodeID getBlackHoleNode()
307
+ {
308
+ return pag->getBlackHoleNode();
309
+ }
310
+ inline bool isBlkObjOrConstantObj(NodeID id)
311
+ {
312
+ return pag->isBlkObjOrConstantObj(id);
313
+ }
314
+ inline NodeBS& getAllFieldsObjVars(NodeID id)
315
+ {
316
+ return pag->getAllFieldsObjVars(id);
317
+ }
318
+ inline NodeID getBaseObjVar(NodeID id)
319
+ {
320
+ return pag->getBaseObjVar(id);
321
+ }
322
+ inline bool isSingleFieldObj(NodeID id) const
323
+ {
324
+ const MemObj* mem = pag->getBaseObj(id);
325
+ return (mem->getMaxFieldOffsetLimit() == 1);
326
+ }
327
+ /// Get a field of a memory object
328
+ inline NodeID getGepObjVar(NodeID id, const LocationSet& ls)
329
+ {
330
+ NodeID gep = pag->getGepObjVar(id,ls);
331
+ /// Create a node when it is (1) not exist on graph and (2) not merged
332
+ if(sccRepNode(gep)==gep && hasConstraintNode(gep)==false)
333
+ addConstraintNode(new ConstraintNode(gep),gep);
334
+ return gep;
335
+ }
336
+ /// Get a field-insensitive node of a memory object
337
+ inline NodeID getFIObjVar(NodeID id)
338
+ {
339
+ NodeID fi = pag->getFIObjVar(id);
340
+ /// The fi obj in PAG must be either an existing node or merged to another rep node in ConsG
341
+ assert((hasConstraintNode(fi) || sccRepNode(fi) != fi) && "non-existing fi obj??");
342
+ return fi;
343
+ }
344
+ //@}
345
+
346
+ /// Check/Set PWC (positive weight cycle) flag
347
+ //@{
348
+ inline bool isPWCNode(NodeID nodeId)
349
+ {
350
+ return getConstraintNode(nodeId)->isPWCNode();
351
+ }
352
+ inline void setPWCNode(NodeID nodeId)
353
+ {
354
+ getConstraintNode(nodeId)->setPWCNode();
355
+ }
356
+ //@}
357
+
358
+ /// Add/get nodes to be collapsed
359
+ //@{
360
+ inline bool hasNodesToBeCollapsed() const
361
+ {
362
+ return (!nodesToBeCollapsed.empty());
363
+ }
364
+ inline void addNodeToBeCollapsed(NodeID id)
365
+ {
366
+ nodesToBeCollapsed.push(id);
367
+ }
368
+ inline NodeID getNextCollapseNode()
369
+ {
370
+ return nodesToBeCollapsed.pop();
371
+ }
372
+ //@}
373
+
374
+ /// Dump graph into dot file
375
+ void dump(std::string name);
376
+ /// Print CG into terminal
377
+ void print();
378
+
379
+ /// View graph from the debugger.
380
+ void view();
381
+ };
382
+
383
+ } // End namespace SVF
384
+
385
+ namespace SVF
386
+ {
387
+ /* !
388
+ * GenericGraphTraits specializations for the generic graph algorithms.
389
+ * Provide graph traits for traversing from a constraint node using standard graph traversals.
390
+ */
391
+ template<> struct GenericGraphTraits<SVF::ConstraintNode*> : public GenericGraphTraits<SVF::GenericNode<SVF::ConstraintNode,SVF::ConstraintEdge>* >
392
+ {
393
+ };
394
+
395
+ /// Inverse GenericGraphTraits specializations for Value flow node, it is used for inverse traversal.
396
+ template<>
397
+ struct GenericGraphTraits<Inverse<SVF::ConstraintNode *> > : public GenericGraphTraits<Inverse<SVF::GenericNode<SVF::ConstraintNode,SVF::ConstraintEdge>* > >
398
+ {
399
+ };
400
+
401
+ template<> struct GenericGraphTraits<SVF::ConstraintGraph*> : public GenericGraphTraits<SVF::GenericGraph<SVF::ConstraintNode,SVF::ConstraintEdge>* >
402
+ {
403
+ typedef SVF::ConstraintNode *NodeRef;
404
+ };
405
+
406
+ } // End namespace llvm
407
+
408
+ #endif /* CONSG_H_ */