svf-lib 1.0.1376 → 1.0.1377

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 (292) hide show
  1. package/SVF-osx/Release-build/svf-llvm/libSvfLLVM.a +0 -0
  2. package/package.json +1 -1
  3. package/SVF-linux/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
  4. package/SVF-linux/svf/include/include/AbstractExecution/AddressValue.h +0 -210
  5. package/SVF-linux/svf/include/include/AbstractExecution/ExeState.h +0 -223
  6. package/SVF-linux/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
  7. package/SVF-linux/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
  8. package/SVF-linux/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
  9. package/SVF-linux/svf/include/include/AbstractExecution/RelExeState.h +0 -225
  10. package/SVF-linux/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
  11. package/SVF-linux/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
  12. package/SVF-linux/svf/include/include/AbstractExecution/WTO.h +0 -845
  13. package/SVF-linux/svf/include/include/CFL/CFGNormalizer.h +0 -84
  14. package/SVF-linux/svf/include/include/CFL/CFLAlias.h +0 -176
  15. package/SVF-linux/svf/include/include/CFL/CFLBase.h +0 -115
  16. package/SVF-linux/svf/include/include/CFL/CFLData.h +0 -316
  17. package/SVF-linux/svf/include/include/CFL/CFLDataBuilder.h +0 -91
  18. package/SVF-linux/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
  19. package/SVF-linux/svf/include/include/CFL/CFLGrammar.h +0 -468
  20. package/SVF-linux/svf/include/include/CFL/CFLGrammar.txt +0 -15
  21. package/SVF-linux/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
  22. package/SVF-linux/svf/include/include/CFL/CFLSolver.h +0 -136
  23. package/SVF-linux/svf/include/include/CFL/CFLStat.h +0 -67
  24. package/SVF-linux/svf/include/include/CFL/CFLVF.h +0 -65
  25. package/SVF-linux/svf/include/include/CFL/GrammarBuilder.h +0 -100
  26. package/SVF-linux/svf/include/include/CFL/PEGGrammar.txt +0 -11
  27. package/SVF-linux/svf/include/include/CFL/VFG.txt +0 -7
  28. package/SVF-linux/svf/include/include/DDA/ContextDDA.h +0 -230
  29. package/SVF-linux/svf/include/include/DDA/DDAClient.h +0 -168
  30. package/SVF-linux/svf/include/include/DDA/DDAPass.h +0 -99
  31. package/SVF-linux/svf/include/include/DDA/DDAStat.h +0 -138
  32. package/SVF-linux/svf/include/include/DDA/DDAVFSolver.h +0 -789
  33. package/SVF-linux/svf/include/include/DDA/FlowDDA.h +0 -178
  34. package/SVF-linux/svf/include/include/FastCluster/LICENSE.TXT +0 -13
  35. package/SVF-linux/svf/include/include/FastCluster/fastcluster.h +0 -80
  36. package/SVF-linux/svf/include/include/Graphs/CFLGraph.h +0 -215
  37. package/SVF-linux/svf/include/include/Graphs/CHG.h +0 -351
  38. package/SVF-linux/svf/include/include/Graphs/ConsG.h +0 -408
  39. package/SVF-linux/svf/include/include/Graphs/ConsGEdge.h +0 -353
  40. package/SVF-linux/svf/include/include/Graphs/ConsGNode.h +0 -391
  41. package/SVF-linux/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
  42. package/SVF-linux/svf/include/include/Graphs/GenericGraph.h +0 -620
  43. package/SVF-linux/svf/include/include/Graphs/GraphPrinter.h +0 -111
  44. package/SVF-linux/svf/include/include/Graphs/GraphTraits.h +0 -150
  45. package/SVF-linux/svf/include/include/Graphs/GraphWriter.h +0 -380
  46. package/SVF-linux/svf/include/include/Graphs/ICFG.h +0 -331
  47. package/SVF-linux/svf/include/include/Graphs/ICFGEdge.h +0 -264
  48. package/SVF-linux/svf/include/include/Graphs/ICFGNode.h +0 -523
  49. package/SVF-linux/svf/include/include/Graphs/ICFGStat.h +0 -164
  50. package/SVF-linux/svf/include/include/Graphs/IRGraph.h +0 -243
  51. package/SVF-linux/svf/include/include/Graphs/PTACallGraph.h +0 -471
  52. package/SVF-linux/svf/include/include/Graphs/SVFG.h +0 -490
  53. package/SVF-linux/svf/include/include/Graphs/SVFGEdge.h +0 -237
  54. package/SVF-linux/svf/include/include/Graphs/SVFGNode.h +0 -513
  55. package/SVF-linux/svf/include/include/Graphs/SVFGOPT.h +0 -362
  56. package/SVF-linux/svf/include/include/Graphs/SVFGStat.h +0 -273
  57. package/SVF-linux/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
  58. package/SVF-linux/svf/include/include/Graphs/VFG.h +0 -664
  59. package/SVF-linux/svf/include/include/Graphs/VFGEdge.h +0 -295
  60. package/SVF-linux/svf/include/include/Graphs/VFGNode.h +0 -1197
  61. package/SVF-linux/svf/include/include/MSSA/MSSAMuChi.h +0 -722
  62. package/SVF-linux/svf/include/include/MSSA/MemPartition.h +0 -169
  63. package/SVF-linux/svf/include/include/MSSA/MemRegion.h +0 -491
  64. package/SVF-linux/svf/include/include/MSSA/MemSSA.h +0 -452
  65. package/SVF-linux/svf/include/include/MSSA/SVFGBuilder.h +0 -98
  66. package/SVF-linux/svf/include/include/MTA/FSMPTA.h +0 -270
  67. package/SVF-linux/svf/include/include/MTA/LockAnalysis.h +0 -517
  68. package/SVF-linux/svf/include/include/MTA/MHP.h +0 -565
  69. package/SVF-linux/svf/include/include/MTA/MTA.h +0 -101
  70. package/SVF-linux/svf/include/include/MTA/MTAResultValidator.h +0 -448
  71. package/SVF-linux/svf/include/include/MTA/MTAStat.h +0 -74
  72. package/SVF-linux/svf/include/include/MTA/PCG.h +0 -229
  73. package/SVF-linux/svf/include/include/MTA/TCT.h +0 -599
  74. package/SVF-linux/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
  75. package/SVF-linux/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
  76. package/SVF-linux/svf/include/include/MemoryModel/LocationSet.h +0 -148
  77. package/SVF-linux/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
  78. package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
  79. package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
  80. package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
  81. package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
  82. package/SVF-linux/svf/include/include/MemoryModel/PointsTo.h +0 -255
  83. package/SVF-linux/svf/include/include/MemoryModel/SVFLoop.h +0 -164
  84. package/SVF-linux/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
  85. package/SVF-linux/svf/include/include/SABER/FileChecker.h +0 -82
  86. package/SVF-linux/svf/include/include/SABER/LeakChecker.h +0 -124
  87. package/SVF-linux/svf/include/include/SABER/ProgSlice.h +0 -313
  88. package/SVF-linux/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
  89. package/SVF-linux/svf/include/include/SABER/SaberCondAllocator.h +0 -310
  90. package/SVF-linux/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
  91. package/SVF-linux/svf/include/include/SABER/SrcSnkDDA.h +0 -321
  92. package/SVF-linux/svf/include/include/SABER/SrcSnkSolver.h +0 -186
  93. package/SVF-linux/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
  94. package/SVF-linux/svf/include/include/SVFIR/SVFIR.h +0 -659
  95. package/SVF-linux/svf/include/include/SVFIR/SVFModule.h +0 -233
  96. package/SVF-linux/svf/include/include/SVFIR/SVFStatements.h +0 -1136
  97. package/SVF-linux/svf/include/include/SVFIR/SVFType.h +0 -527
  98. package/SVF-linux/svf/include/include/SVFIR/SVFValue.h +0 -1120
  99. package/SVF-linux/svf/include/include/SVFIR/SVFVariables.h +0 -721
  100. package/SVF-linux/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
  101. package/SVF-linux/svf/include/include/Util/Annotator.h +0 -180
  102. package/SVF-linux/svf/include/include/Util/BitVector.h +0 -55
  103. package/SVF-linux/svf/include/include/Util/CallGraphBuilder.h +0 -74
  104. package/SVF-linux/svf/include/include/Util/Casting.h +0 -426
  105. package/SVF-linux/svf/include/include/Util/CommandLine.h +0 -530
  106. package/SVF-linux/svf/include/include/Util/CoreBitVector.h +0 -214
  107. package/SVF-linux/svf/include/include/Util/CppUtil.h +0 -81
  108. package/SVF-linux/svf/include/include/Util/CxtStmt.h +0 -501
  109. package/SVF-linux/svf/include/include/Util/DPItem.h +0 -618
  110. package/SVF-linux/svf/include/include/Util/ExtAPI.h +0 -339
  111. package/SVF-linux/svf/include/include/Util/ExtAPI.json +0 -5707
  112. package/SVF-linux/svf/include/include/Util/GraphReachSolver.h +0 -186
  113. package/SVF-linux/svf/include/include/Util/NodeIDAllocator.h +0 -194
  114. package/SVF-linux/svf/include/include/Util/Options.h +0 -266
  115. package/SVF-linux/svf/include/include/Util/PTAStat.h +0 -65
  116. package/SVF-linux/svf/include/include/Util/SCC.h +0 -354
  117. package/SVF-linux/svf/include/include/Util/SVFStat.h +0 -100
  118. package/SVF-linux/svf/include/include/Util/SVFUtil.h +0 -660
  119. package/SVF-linux/svf/include/include/Util/SparseBitVector.h +0 -1202
  120. package/SVF-linux/svf/include/include/Util/ThreadAPI.h +0 -330
  121. package/SVF-linux/svf/include/include/Util/WorkList.h +0 -317
  122. package/SVF-linux/svf/include/include/Util/Z3Expr.h +0 -318
  123. package/SVF-linux/svf/include/include/Util/cJSON.h +0 -300
  124. package/SVF-linux/svf/include/include/Util/iterator.h +0 -407
  125. package/SVF-linux/svf/include/include/Util/iterator_range.h +0 -76
  126. package/SVF-linux/svf/include/include/WPA/Andersen.h +0 -416
  127. package/SVF-linux/svf/include/include/WPA/AndersenPWC.h +0 -160
  128. package/SVF-linux/svf/include/include/WPA/CSC.h +0 -95
  129. package/SVF-linux/svf/include/include/WPA/FlowSensitive.h +0 -317
  130. package/SVF-linux/svf/include/include/WPA/Steensgaard.h +0 -126
  131. package/SVF-linux/svf/include/include/WPA/TypeAnalysis.h +0 -83
  132. package/SVF-linux/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
  133. package/SVF-linux/svf/include/include/WPA/WPAFSSolver.h +0 -254
  134. package/SVF-linux/svf/include/include/WPA/WPAPass.h +0 -119
  135. package/SVF-linux/svf/include/include/WPA/WPASolver.h +0 -205
  136. package/SVF-linux/svf/include/include/WPA/WPAStat.h +0 -222
  137. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
  138. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
  139. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
  140. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
  141. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
  142. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
  143. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
  144. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
  145. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
  146. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
  147. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
  148. package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
  149. package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +0 -210
  150. package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +0 -223
  151. package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
  152. package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
  153. package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
  154. package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +0 -225
  155. package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
  156. package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
  157. package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +0 -845
  158. package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +0 -84
  159. package/SVF-osx/svf/include/include/CFL/CFLAlias.h +0 -176
  160. package/SVF-osx/svf/include/include/CFL/CFLBase.h +0 -115
  161. package/SVF-osx/svf/include/include/CFL/CFLData.h +0 -316
  162. package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +0 -91
  163. package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
  164. package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +0 -468
  165. package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +0 -15
  166. package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
  167. package/SVF-osx/svf/include/include/CFL/CFLSolver.h +0 -136
  168. package/SVF-osx/svf/include/include/CFL/CFLStat.h +0 -67
  169. package/SVF-osx/svf/include/include/CFL/CFLVF.h +0 -65
  170. package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +0 -100
  171. package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +0 -11
  172. package/SVF-osx/svf/include/include/CFL/VFG.txt +0 -7
  173. package/SVF-osx/svf/include/include/DDA/ContextDDA.h +0 -230
  174. package/SVF-osx/svf/include/include/DDA/DDAClient.h +0 -168
  175. package/SVF-osx/svf/include/include/DDA/DDAPass.h +0 -99
  176. package/SVF-osx/svf/include/include/DDA/DDAStat.h +0 -138
  177. package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +0 -789
  178. package/SVF-osx/svf/include/include/DDA/FlowDDA.h +0 -178
  179. package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +0 -13
  180. package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +0 -80
  181. package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +0 -215
  182. package/SVF-osx/svf/include/include/Graphs/CHG.h +0 -351
  183. package/SVF-osx/svf/include/include/Graphs/ConsG.h +0 -408
  184. package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +0 -353
  185. package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +0 -391
  186. package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
  187. package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +0 -620
  188. package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +0 -111
  189. package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +0 -150
  190. package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +0 -380
  191. package/SVF-osx/svf/include/include/Graphs/ICFG.h +0 -331
  192. package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +0 -264
  193. package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +0 -523
  194. package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +0 -164
  195. package/SVF-osx/svf/include/include/Graphs/IRGraph.h +0 -243
  196. package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +0 -471
  197. package/SVF-osx/svf/include/include/Graphs/SVFG.h +0 -490
  198. package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +0 -237
  199. package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +0 -513
  200. package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +0 -362
  201. package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +0 -273
  202. package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
  203. package/SVF-osx/svf/include/include/Graphs/VFG.h +0 -664
  204. package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +0 -295
  205. package/SVF-osx/svf/include/include/Graphs/VFGNode.h +0 -1197
  206. package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +0 -722
  207. package/SVF-osx/svf/include/include/MSSA/MemPartition.h +0 -169
  208. package/SVF-osx/svf/include/include/MSSA/MemRegion.h +0 -491
  209. package/SVF-osx/svf/include/include/MSSA/MemSSA.h +0 -452
  210. package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +0 -98
  211. package/SVF-osx/svf/include/include/MTA/FSMPTA.h +0 -270
  212. package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +0 -517
  213. package/SVF-osx/svf/include/include/MTA/MHP.h +0 -565
  214. package/SVF-osx/svf/include/include/MTA/MTA.h +0 -101
  215. package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +0 -448
  216. package/SVF-osx/svf/include/include/MTA/MTAStat.h +0 -74
  217. package/SVF-osx/svf/include/include/MTA/PCG.h +0 -229
  218. package/SVF-osx/svf/include/include/MTA/TCT.h +0 -599
  219. package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
  220. package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
  221. package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +0 -148
  222. package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
  223. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
  224. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
  225. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
  226. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
  227. package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +0 -255
  228. package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +0 -164
  229. package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
  230. package/SVF-osx/svf/include/include/SABER/FileChecker.h +0 -82
  231. package/SVF-osx/svf/include/include/SABER/LeakChecker.h +0 -124
  232. package/SVF-osx/svf/include/include/SABER/ProgSlice.h +0 -313
  233. package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
  234. package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +0 -310
  235. package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
  236. package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +0 -321
  237. package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +0 -186
  238. package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
  239. package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +0 -659
  240. package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +0 -233
  241. package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +0 -1136
  242. package/SVF-osx/svf/include/include/SVFIR/SVFType.h +0 -527
  243. package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +0 -1120
  244. package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +0 -721
  245. package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
  246. package/SVF-osx/svf/include/include/Util/Annotator.h +0 -180
  247. package/SVF-osx/svf/include/include/Util/BitVector.h +0 -55
  248. package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +0 -74
  249. package/SVF-osx/svf/include/include/Util/Casting.h +0 -426
  250. package/SVF-osx/svf/include/include/Util/CommandLine.h +0 -530
  251. package/SVF-osx/svf/include/include/Util/CoreBitVector.h +0 -214
  252. package/SVF-osx/svf/include/include/Util/CppUtil.h +0 -81
  253. package/SVF-osx/svf/include/include/Util/CxtStmt.h +0 -501
  254. package/SVF-osx/svf/include/include/Util/DPItem.h +0 -618
  255. package/SVF-osx/svf/include/include/Util/ExtAPI.h +0 -339
  256. package/SVF-osx/svf/include/include/Util/ExtAPI.json +0 -5707
  257. package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +0 -186
  258. package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +0 -194
  259. package/SVF-osx/svf/include/include/Util/Options.h +0 -266
  260. package/SVF-osx/svf/include/include/Util/PTAStat.h +0 -65
  261. package/SVF-osx/svf/include/include/Util/SCC.h +0 -354
  262. package/SVF-osx/svf/include/include/Util/SVFStat.h +0 -100
  263. package/SVF-osx/svf/include/include/Util/SVFUtil.h +0 -660
  264. package/SVF-osx/svf/include/include/Util/SparseBitVector.h +0 -1202
  265. package/SVF-osx/svf/include/include/Util/ThreadAPI.h +0 -330
  266. package/SVF-osx/svf/include/include/Util/WorkList.h +0 -317
  267. package/SVF-osx/svf/include/include/Util/Z3Expr.h +0 -318
  268. package/SVF-osx/svf/include/include/Util/cJSON.h +0 -300
  269. package/SVF-osx/svf/include/include/Util/iterator.h +0 -407
  270. package/SVF-osx/svf/include/include/Util/iterator_range.h +0 -76
  271. package/SVF-osx/svf/include/include/WPA/Andersen.h +0 -416
  272. package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +0 -160
  273. package/SVF-osx/svf/include/include/WPA/CSC.h +0 -95
  274. package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +0 -317
  275. package/SVF-osx/svf/include/include/WPA/Steensgaard.h +0 -126
  276. package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +0 -83
  277. package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
  278. package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +0 -254
  279. package/SVF-osx/svf/include/include/WPA/WPAPass.h +0 -119
  280. package/SVF-osx/svf/include/include/WPA/WPASolver.h +0 -205
  281. package/SVF-osx/svf/include/include/WPA/WPAStat.h +0 -222
  282. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
  283. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
  284. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
  285. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
  286. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
  287. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
  288. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
  289. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
  290. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
  291. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
  292. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
@@ -1,620 +0,0 @@
1
- //===- CenericGraph.h -- Generic graph ---------------------------------------//
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
- * GenericGraph.h
25
- *
26
- * Created on: Mar 19, 2014
27
- * Author: Yulei Sui
28
- */
29
-
30
- #ifndef GENERICGRAPH_H_
31
- #define GENERICGRAPH_H_
32
-
33
- #include "SVFIR/SVFValue.h"
34
- #include "Util/iterator.h"
35
- #include "Graphs/GraphTraits.h"
36
-
37
- namespace SVF
38
- {
39
-
40
- /*!
41
- * Generic edge on the graph as base class
42
- */
43
- template<class NodeTy>
44
- class GenericEdge
45
- {
46
-
47
- public:
48
- /// Node type
49
- typedef NodeTy NodeType;
50
- /// Edge Flag
51
- /// Edge format as follows (from lowest bit):
52
- /// (1) 0-7 bits encode an edge kind (allow maximum 16 kinds)
53
- /// (2) 8-63 bits encode a callsite instruction
54
- typedef u64_t GEdgeFlag;
55
- typedef s64_t GEdgeKind;
56
- private:
57
- NodeTy* src; ///< source node
58
- NodeTy* dst; ///< destination node
59
- GEdgeFlag edgeFlag; ///< edge kind
60
-
61
- public:
62
- /// Constructor
63
- GenericEdge(NodeTy* s, NodeTy* d, GEdgeFlag k) : src(s), dst(d), edgeFlag(k)
64
- {
65
- }
66
-
67
- /// Destructor
68
- virtual ~GenericEdge()
69
- {
70
- }
71
-
72
- /// get methods of the components
73
- //@{
74
- inline NodeID getSrcID() const
75
- {
76
- return src->getId();
77
- }
78
- inline NodeID getDstID() const
79
- {
80
- return dst->getId();
81
- }
82
- inline GEdgeKind getEdgeKind() const
83
- {
84
- return (EdgeKindMask & edgeFlag);
85
- }
86
- inline GEdgeKind getEdgeKindWithoutMask() const
87
- {
88
- return edgeFlag;
89
- }
90
- NodeType* getSrcNode() const
91
- {
92
- return src;
93
- }
94
- NodeType* getDstNode() const
95
- {
96
- return dst;
97
- }
98
- //@}
99
-
100
- /// Add the hash function for std::set (we also can overload operator< to implement this)
101
- // and duplicated elements in the set are not inserted (binary tree comparison)
102
- //@{
103
- typedef struct equalGEdge
104
- {
105
- bool operator()(const GenericEdge<NodeType>* lhs, const GenericEdge<NodeType>* rhs) const
106
- {
107
- if (lhs->edgeFlag != rhs->edgeFlag)
108
- return lhs->edgeFlag < rhs->edgeFlag;
109
- else if (lhs->getSrcID() != rhs->getSrcID())
110
- return lhs->getSrcID() < rhs->getSrcID();
111
- else
112
- return lhs->getDstID() < rhs->getDstID();
113
- }
114
- } equalGEdge;
115
-
116
- virtual inline bool operator==(const GenericEdge<NodeType>* rhs) const
117
- {
118
- return (rhs->edgeFlag == this->edgeFlag &&
119
- rhs->getSrcID() == this->getSrcID() &&
120
- rhs->getDstID() == this->getDstID());
121
- }
122
- //@}
123
-
124
- protected:
125
- static constexpr unsigned char EdgeKindMaskBits = 8; ///< We use the lower 8 bits to denote edge kind
126
- static constexpr u64_t EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits);
127
- };
128
-
129
-
130
- /*!
131
- * Generic node on the graph as base class
132
- */
133
- template<class NodeTy,class EdgeTy>
134
- class GenericNode
135
- {
136
-
137
- public:
138
- typedef NodeTy NodeType;
139
- typedef EdgeTy EdgeType;
140
- /// Edge kind
141
- typedef s64_t GNodeK;
142
- typedef OrderedSet<EdgeType*, typename EdgeType::equalGEdge> GEdgeSetTy;
143
- /// Edge iterator
144
- ///@{
145
- typedef typename GEdgeSetTy::iterator iterator;
146
- typedef typename GEdgeSetTy::const_iterator const_iterator;
147
- ///@}
148
-
149
- private:
150
- NodeID id; ///< Node ID
151
- GNodeK nodeKind; ///< Node kind
152
-
153
- GEdgeSetTy InEdges; ///< all incoming edge of this node
154
- GEdgeSetTy OutEdges; ///< all outgoing edge of this node
155
-
156
- public:
157
- /// Constructor
158
- GenericNode(NodeID i, GNodeK k): id(i),nodeKind(k)
159
- {
160
-
161
- }
162
-
163
- /// Destructor
164
- virtual ~GenericNode()
165
- {
166
- for (auto * edge : OutEdges)
167
- delete edge;
168
- }
169
-
170
- /// Get ID
171
- inline NodeID getId() const
172
- {
173
- return id;
174
- }
175
-
176
- /// Get node kind
177
- inline GNodeK getNodeKind() const
178
- {
179
- return nodeKind;
180
- }
181
-
182
- /// Get incoming/outgoing edge set
183
- ///@{
184
- inline const GEdgeSetTy& getOutEdges() const
185
- {
186
- return OutEdges;
187
- }
188
- inline const GEdgeSetTy& getInEdges() const
189
- {
190
- return InEdges;
191
- }
192
- ///@}
193
-
194
- /// Has incoming/outgoing edge set
195
- //@{
196
- inline bool hasIncomingEdge() const
197
- {
198
- return (InEdges.empty() == false);
199
- }
200
- inline bool hasOutgoingEdge() const
201
- {
202
- return (OutEdges.empty() == false);
203
- }
204
- //@}
205
-
206
- /// iterators
207
- //@{
208
- inline iterator OutEdgeBegin()
209
- {
210
- return OutEdges.begin();
211
- }
212
- inline iterator OutEdgeEnd()
213
- {
214
- return OutEdges.end();
215
- }
216
- inline iterator InEdgeBegin()
217
- {
218
- return InEdges.begin();
219
- }
220
- inline iterator InEdgeEnd()
221
- {
222
- return InEdges.end();
223
- }
224
- inline const_iterator OutEdgeBegin() const
225
- {
226
- return OutEdges.begin();
227
- }
228
- inline const_iterator OutEdgeEnd() const
229
- {
230
- return OutEdges.end();
231
- }
232
- inline const_iterator InEdgeBegin() const
233
- {
234
- return InEdges.begin();
235
- }
236
- inline const_iterator InEdgeEnd() const
237
- {
238
- return InEdges.end();
239
- }
240
- //@}
241
-
242
- /// Iterators used for SCC detection, overwrite it in child class if necessory
243
- //@{
244
- virtual inline iterator directOutEdgeBegin()
245
- {
246
- return OutEdges.begin();
247
- }
248
- virtual inline iterator directOutEdgeEnd()
249
- {
250
- return OutEdges.end();
251
- }
252
- virtual inline iterator directInEdgeBegin()
253
- {
254
- return InEdges.begin();
255
- }
256
- virtual inline iterator directInEdgeEnd()
257
- {
258
- return InEdges.end();
259
- }
260
-
261
- virtual inline const_iterator directOutEdgeBegin() const
262
- {
263
- return OutEdges.begin();
264
- }
265
- virtual inline const_iterator directOutEdgeEnd() const
266
- {
267
- return OutEdges.end();
268
- }
269
- virtual inline const_iterator directInEdgeBegin() const
270
- {
271
- return InEdges.begin();
272
- }
273
- virtual inline const_iterator directInEdgeEnd() const
274
- {
275
- return InEdges.end();
276
- }
277
- //@}
278
-
279
- /// Add incoming and outgoing edges
280
- //@{
281
- inline bool addIncomingEdge(EdgeType* inEdge)
282
- {
283
- return InEdges.insert(inEdge).second;
284
- }
285
- inline bool addOutgoingEdge(EdgeType* outEdge)
286
- {
287
- return OutEdges.insert(outEdge).second;
288
- }
289
- //@}
290
-
291
- /// Remove incoming and outgoing edges
292
- ///@{
293
- inline u32_t removeIncomingEdge(EdgeType* edge)
294
- {
295
- iterator it = InEdges.find(edge);
296
- assert(it != InEdges.end() && "can not find in edge in SVFG node");
297
- InEdges.erase(it);
298
- return 1;
299
- }
300
- inline u32_t removeOutgoingEdge(EdgeType* edge)
301
- {
302
- iterator it = OutEdges.find(edge);
303
- assert(it != OutEdges.end() && "can not find out edge in SVFG node");
304
- OutEdges.erase(it);
305
- return 1;
306
- }
307
- ///@}
308
-
309
- /// Find incoming and outgoing edges
310
- //@{
311
- inline EdgeType* hasIncomingEdge(EdgeType* edge) const
312
- {
313
- const_iterator it = InEdges.find(edge);
314
- if (it != InEdges.end())
315
- return *it;
316
- else
317
- return nullptr;
318
- }
319
- inline EdgeType* hasOutgoingEdge(EdgeType* edge) const
320
- {
321
- const_iterator it = OutEdges.find(edge);
322
- if (it != OutEdges.end())
323
- return *it;
324
- else
325
- return nullptr;
326
- }
327
- //@}
328
- };
329
-
330
- /*
331
- * Generic graph for program representation
332
- * It is base class and needs to be instantiated
333
- */
334
- template<class NodeTy,class EdgeTy>
335
- class GenericGraph
336
- {
337
-
338
- public:
339
- typedef NodeTy NodeType;
340
- typedef EdgeTy EdgeType;
341
- /// NodeID to GenericNode map
342
- typedef OrderedMap<NodeID, NodeType*> IDToNodeMapTy;
343
-
344
- /// Node Iterators
345
- //@{
346
- typedef typename IDToNodeMapTy::iterator iterator;
347
- typedef typename IDToNodeMapTy::const_iterator const_iterator;
348
- //@}
349
-
350
- /// Constructor
351
- GenericGraph(): edgeNum(0),nodeNum(0)
352
- {
353
- }
354
-
355
- /// Destructor
356
- virtual ~GenericGraph()
357
- {
358
- destroy();
359
- }
360
-
361
- /// Release memory
362
- void destroy()
363
- {
364
- for (auto &entry : IDToNodeMap)
365
- delete entry.second;
366
- }
367
- /// Iterators
368
- //@{
369
- inline iterator begin()
370
- {
371
- return IDToNodeMap.begin();
372
- }
373
- inline iterator end()
374
- {
375
- return IDToNodeMap.end();
376
- }
377
- inline const_iterator begin() const
378
- {
379
- return IDToNodeMap.begin();
380
- }
381
- inline const_iterator end() const
382
- {
383
- return IDToNodeMap.end();
384
- }
385
- //}@
386
-
387
- /// Add a Node
388
- inline void addGNode(NodeID id, NodeType* node)
389
- {
390
- IDToNodeMap[id] = node;
391
- nodeNum++;
392
- }
393
-
394
- /// Get a node
395
- inline NodeType* getGNode(NodeID id) const
396
- {
397
- const_iterator it = IDToNodeMap.find(id);
398
- assert(it != IDToNodeMap.end() && "Node not found!");
399
- return it->second;
400
- }
401
-
402
- /// Has a node
403
- inline bool hasGNode(NodeID id) const
404
- {
405
- const_iterator it = IDToNodeMap.find(id);
406
- return it != IDToNodeMap.end();
407
- }
408
-
409
- /// Delete a node
410
- inline void removeGNode(NodeType* node)
411
- {
412
- assert(node->hasIncomingEdge() == false
413
- && node->hasOutgoingEdge() == false
414
- && "node which have edges can't be deleted");
415
- iterator it = IDToNodeMap.find(node->getId());
416
- assert(it != IDToNodeMap.end() && "can not find the node");
417
- IDToNodeMap.erase(it);
418
- delete node;
419
- }
420
-
421
- /// Get total number of node/edge
422
- inline u32_t getTotalNodeNum() const
423
- {
424
- return nodeNum;
425
- }
426
- inline u32_t getTotalEdgeNum() const
427
- {
428
- return edgeNum;
429
- }
430
- /// Increase number of node/edge
431
- inline void incNodeNum()
432
- {
433
- nodeNum++;
434
- }
435
- inline void incEdgeNum()
436
- {
437
- edgeNum++;
438
- }
439
-
440
- protected:
441
- IDToNodeMapTy IDToNodeMap; ///< node map
442
-
443
- public:
444
- u32_t edgeNum; ///< total num of node
445
- u32_t nodeNum; ///< total num of edge
446
- };
447
-
448
- } // End namespace SVF
449
-
450
- /* !
451
- * GenericGraphTraits specializations for generic graph algorithms.
452
- * Provide graph traits for tranversing from a node using standard graph traversals.
453
- */
454
- namespace SVF
455
- {
456
-
457
- // mapped_iter - This is a simple iterator adapter that causes a function to
458
- // be applied whenever operator* is invoked on the iterator.
459
-
460
- template <typename ItTy, typename FuncTy,
461
- typename FuncReturnTy =
462
- decltype(std::declval<FuncTy>()(*std::declval<ItTy>()))>
463
- class mapped_iter
464
- : public iter_adaptor_base<
465
- mapped_iter<ItTy, FuncTy>, ItTy,
466
- typename std::iterator_traits<ItTy>::iterator_category,
467
- typename std::remove_reference<FuncReturnTy>::type>
468
- {
469
- public:
470
- mapped_iter(ItTy U, FuncTy F)
471
- : mapped_iter::iter_adaptor_base(std::move(U)), F(std::move(F)) {}
472
-
473
- ItTy getCurrent()
474
- {
475
- return this->I;
476
- }
477
-
478
- FuncReturnTy operator*() const
479
- {
480
- return F(*this->I);
481
- }
482
-
483
- private:
484
- FuncTy F;
485
- };
486
-
487
- // map_iter - Provide a convenient way to create mapped_iters, just like
488
- // make_pair is useful for creating pairs...
489
- template <class ItTy, class FuncTy>
490
- inline mapped_iter<ItTy, FuncTy> map_iter(ItTy I, FuncTy F)
491
- {
492
- return mapped_iter<ItTy, FuncTy>(std::move(I), std::move(F));
493
- }
494
-
495
- /*!
496
- * GenericGraphTraits for nodes
497
- */
498
- template<class NodeTy,class EdgeTy> struct GenericGraphTraits<SVF::GenericNode<NodeTy,EdgeTy>* >
499
- {
500
- typedef NodeTy NodeType;
501
- typedef EdgeTy EdgeType;
502
-
503
- static inline NodeType* edge_dest(const EdgeType* E)
504
- {
505
- return E->getDstNode();
506
- }
507
-
508
- // nodes_iterator/begin/end - Allow iteration over all nodes in the graph
509
- typedef mapped_iter<typename SVF::GenericNode<NodeTy,EdgeTy>::iterator, decltype(&edge_dest)> ChildIteratorType;
510
-
511
- static NodeType* getEntryNode(NodeType* pagN)
512
- {
513
- return pagN;
514
- }
515
-
516
- static inline ChildIteratorType child_begin(const NodeType* N)
517
- {
518
- return map_iter(N->OutEdgeBegin(), &edge_dest);
519
- }
520
- static inline ChildIteratorType child_end(const NodeType* N)
521
- {
522
- return map_iter(N->OutEdgeEnd(), &edge_dest);
523
- }
524
- static inline ChildIteratorType direct_child_begin(const NodeType *N)
525
- {
526
- return map_iter(N->directOutEdgeBegin(), &edge_dest);
527
- }
528
- static inline ChildIteratorType direct_child_end(const NodeType *N)
529
- {
530
- return map_iter(N->directOutEdgeEnd(), &edge_dest);
531
- }
532
- };
533
-
534
- /*!
535
- * Inverse GenericGraphTraits for node which is used for inverse traversal.
536
- */
537
- template<class NodeTy,class EdgeTy>
538
- struct GenericGraphTraits<Inverse<SVF::GenericNode<NodeTy,EdgeTy>* > >
539
- {
540
- typedef NodeTy NodeType;
541
- typedef EdgeTy EdgeType;
542
-
543
- static inline NodeType* edge_dest(const EdgeType* E)
544
- {
545
- return E->getSrcNode();
546
- }
547
-
548
- // nodes_iterator/begin/end - Allow iteration over all nodes in the graph
549
- typedef mapped_iter<typename SVF::GenericNode<NodeTy,EdgeTy>::iterator, decltype(&edge_dest)> ChildIteratorType;
550
-
551
- static inline NodeType* getEntryNode(Inverse<NodeType* > G)
552
- {
553
- return G.Graph;
554
- }
555
-
556
- static inline ChildIteratorType child_begin(const NodeType* N)
557
- {
558
- return map_iter(N->InEdgeBegin(), &edge_dest);
559
- }
560
- static inline ChildIteratorType child_end(const NodeType* N)
561
- {
562
- return map_iter(N->InEdgeEnd(), &edge_dest);
563
- }
564
-
565
- static inline unsigned getNodeID(const NodeType* N)
566
- {
567
- return N->getId();
568
- }
569
- };
570
-
571
- /*!
572
- * GraphTraints
573
- */
574
- template<class NodeTy,class EdgeTy> struct GenericGraphTraits<SVF::GenericGraph<NodeTy,EdgeTy>* > : public GenericGraphTraits<SVF::GenericNode<NodeTy,EdgeTy>* >
575
- {
576
- typedef SVF::GenericGraph<NodeTy,EdgeTy> GenericGraphTy;
577
- typedef NodeTy NodeType;
578
- typedef EdgeTy EdgeType;
579
-
580
- static NodeType* getEntryNode(GenericGraphTy* pag)
581
- {
582
- return nullptr; // return null here, maybe later we could create a dummy node
583
- }
584
-
585
- typedef std::pair<SVF::NodeID, NodeType*> PairTy;
586
- static inline NodeType* deref_val(PairTy P)
587
- {
588
- return P.second;
589
- }
590
-
591
- // nodes_iterator/begin/end - Allow iteration over all nodes in the graph
592
- typedef mapped_iter<typename GenericGraphTy::iterator, decltype(&deref_val)> nodes_iterator;
593
-
594
- static nodes_iterator nodes_begin(GenericGraphTy *G)
595
- {
596
- return map_iter(G->begin(), &deref_val);
597
- }
598
- static nodes_iterator nodes_end(GenericGraphTy *G)
599
- {
600
- return map_iter(G->end(), &deref_val);
601
- }
602
-
603
- static unsigned graphSize(GenericGraphTy* G)
604
- {
605
- return G->getTotalNodeNum();
606
- }
607
-
608
- static inline unsigned getNodeID(NodeType* N)
609
- {
610
- return N->getId();
611
- }
612
- static NodeType* getNode(GenericGraphTy *G, SVF::NodeID id)
613
- {
614
- return G->getGNode(id);
615
- }
616
- };
617
-
618
- } // End namespace llvm
619
-
620
- #endif /* GENERICGRAPH_H_ */