svf-tools 1.0.436 → 1.0.439

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 (395) hide show
  1. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +9 -9
  2. package/SVF-doxygen/html/html/BDDExpr_8cpp.html +81 -0
  3. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +122 -0
  4. package/SVF-doxygen/html/html/BDDExpr_8h.html +98 -0
  5. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +131 -0
  6. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  11. package/SVF-doxygen/html/html/DPItem_8h.html +1 -1
  12. package/SVF-doxygen/html/html/DPItem_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/ExeState_8cpp.html +82 -0
  14. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +127 -0
  15. package/SVF-doxygen/html/html/ExeState_8h.html +139 -0
  16. package/SVF-doxygen/html/html/ExeState_8h_source.html +128 -0
  17. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
  19. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h.html +1 -1
  20. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/FlowSensitive_8cpp.html +1 -1
  22. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +9 -9
  23. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/IRAnnotator_8h.html +2 -2
  25. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -2
  37. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  38. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/Options_8cpp_source.html +113 -114
  40. package/SVF-doxygen/html/html/Options_8h.html +0 -1
  41. package/SVF-doxygen/html/html/Options_8h_source.html +115 -117
  42. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  43. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +4 -5
  44. package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -1
  45. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -24
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -1
  47. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
  48. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +15 -15
  50. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  52. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +3 -3
  54. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +4 -4
  55. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  56. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  57. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  58. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  59. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  60. package/SVF-doxygen/html/html/SVFUtil_8cpp.html +1 -1
  61. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +3 -3
  62. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
  64. package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
  65. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +6 -6
  66. package/SVF-doxygen/html/html/SrcSnkSolver_8h.html +96 -0
  67. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +113 -0
  68. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
  69. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  72. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp.html +3 -3
  73. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +6 -6
  74. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h.html +2 -2
  75. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  78. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
  79. package/SVF-doxygen/html/html/Z3Expr_8h.html +99 -0
  80. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +126 -0
  81. package/SVF-doxygen/html/html/annotated.html +272 -275
  82. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
  85. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager-members.html +117 -0
  86. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +1318 -0
  87. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +6 -6
  88. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +2 -2
  94. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +0 -9
  95. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  97. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
  99. package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +3 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1DPItem.png +0 -0
  101. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +76 -76
  102. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
  103. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
  104. package/SVF-doxygen/html/html/classSVF_1_1ExeState-members.html +111 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1173 -0
  106. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +78 -78
  108. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +64 -64
  109. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
  110. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +10 -10
  112. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +8 -8
  113. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  114. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  116. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  117. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  118. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  119. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +74 -74
  120. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +68 -68
  121. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
  122. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  123. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  125. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  127. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  128. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
  129. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  130. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +11 -11
  133. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
  135. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +102 -103
  138. package/SVF-doxygen/html/html/classSVF_1_1Options.html +115 -141
  139. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  140. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +3 -3
  141. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +131 -132
  142. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  143. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +18 -18
  144. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
  146. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
  148. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +5 -5
  149. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +4 -4
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +5 -5
  151. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +66 -66
  153. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +86 -86
  154. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
  155. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver-members.html +106 -0
  156. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +937 -0
  157. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.png +0 -0
  158. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +2 -3
  159. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.png +0 -0
  160. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  162. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  163. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
  164. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +5 -5
  168. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  172. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +13 -13
  173. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr-members.html +46 -15
  174. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1451 -104
  175. package/SVF-doxygen/html/html/classes.html +96 -96
  176. package/SVF-doxygen/html/html/dir_66541c162fd98954e2c32089ba9a721f.html +2 -0
  177. package/SVF-doxygen/html/html/dir_770a542efe75a1b68c109cb4e4290224.html +2 -0
  178. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +4 -4
  179. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +6 -10
  180. package/SVF-doxygen/html/html/dir_ea25a8a5b2904424d8a51916f8b475b2.html +2 -0
  181. package/SVF-doxygen/html/html/dir_fdb79cd259bf25322a80ea604c9317b5.html +2 -0
  182. package/SVF-doxygen/html/html/files.html +42 -40
  183. package/SVF-doxygen/html/html/functions.html +2 -2
  184. package/SVF-doxygen/html/html/functions_0x7e.html +9 -21
  185. package/SVF-doxygen/html/html/functions_a.html +8 -16
  186. package/SVF-doxygen/html/html/functions_b.html +22 -35
  187. package/SVF-doxygen/html/html/functions_c.html +33 -63
  188. package/SVF-doxygen/html/html/functions_d.html +3 -6
  189. package/SVF-doxygen/html/html/functions_e.html +11 -13
  190. package/SVF-doxygen/html/html/functions_enum.html +0 -6
  191. package/SVF-doxygen/html/html/functions_eval_b.html +0 -6
  192. package/SVF-doxygen/html/html/functions_f.html +6 -6
  193. package/SVF-doxygen/html/html/functions_func.html +8 -19
  194. package/SVF-doxygen/html/html/functions_func_0x7e.html +9 -21
  195. package/SVF-doxygen/html/html/functions_func_b.html +12 -15
  196. package/SVF-doxygen/html/html/functions_func_c.html +23 -38
  197. package/SVF-doxygen/html/html/functions_func_d.html +4 -7
  198. package/SVF-doxygen/html/html/functions_func_e.html +5 -4
  199. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  200. package/SVF-doxygen/html/html/functions_func_g.html +48 -49
  201. package/SVF-doxygen/html/html/functions_func_h.html +2 -7
  202. package/SVF-doxygen/html/html/functions_func_i.html +33 -21
  203. package/SVF-doxygen/html/html/functions_func_l.html +6 -3
  204. package/SVF-doxygen/html/html/functions_func_m.html +0 -1
  205. package/SVF-doxygen/html/html/functions_func_n.html +5 -4
  206. package/SVF-doxygen/html/html/functions_func_o.html +11 -13
  207. package/SVF-doxygen/html/html/functions_func_p.html +7 -17
  208. package/SVF-doxygen/html/html/functions_func_r.html +8 -5
  209. package/SVF-doxygen/html/html/functions_func_s.html +16 -13
  210. package/SVF-doxygen/html/html/functions_func_t.html +3 -1
  211. package/SVF-doxygen/html/html/functions_func_v.html +1 -7
  212. package/SVF-doxygen/html/html/functions_func_z.html +3 -3
  213. package/SVF-doxygen/html/html/functions_g.html +51 -52
  214. package/SVF-doxygen/html/html/functions_h.html +3 -8
  215. package/SVF-doxygen/html/html/functions_i.html +44 -32
  216. package/SVF-doxygen/html/html/functions_l.html +18 -7
  217. package/SVF-doxygen/html/html/functions_m.html +2 -3
  218. package/SVF-doxygen/html/html/functions_n.html +10 -12
  219. package/SVF-doxygen/html/html/functions_o.html +64 -24
  220. package/SVF-doxygen/html/html/functions_p.html +24 -34
  221. package/SVF-doxygen/html/html/functions_r.html +8 -7
  222. package/SVF-doxygen/html/html/functions_rela.html +78 -4
  223. package/SVF-doxygen/html/html/functions_s.html +31 -26
  224. package/SVF-doxygen/html/html/functions_t.html +9 -9
  225. package/SVF-doxygen/html/html/functions_type_b.html +3 -7
  226. package/SVF-doxygen/html/html/functions_type_c.html +4 -4
  227. package/SVF-doxygen/html/html/functions_type_e.html +0 -3
  228. package/SVF-doxygen/html/html/functions_type_g.html +5 -5
  229. package/SVF-doxygen/html/html/functions_type_i.html +4 -7
  230. package/SVF-doxygen/html/html/functions_type_l.html +3 -0
  231. package/SVF-doxygen/html/html/functions_type_n.html +2 -2
  232. package/SVF-doxygen/html/html/functions_type_p.html +0 -4
  233. package/SVF-doxygen/html/html/functions_type_v.html +3 -0
  234. package/SVF-doxygen/html/html/functions_type_w.html +2 -2
  235. package/SVF-doxygen/html/html/functions_v.html +10 -13
  236. package/SVF-doxygen/html/html/functions_vars.html +2 -2
  237. package/SVF-doxygen/html/html/functions_vars_b.html +2 -5
  238. package/SVF-doxygen/html/html/functions_vars_c.html +3 -10
  239. package/SVF-doxygen/html/html/functions_vars_e.html +1 -4
  240. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  241. package/SVF-doxygen/html/html/functions_vars_i.html +1 -4
  242. package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
  243. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  244. package/SVF-doxygen/html/html/functions_vars_n.html +0 -3
  245. package/SVF-doxygen/html/html/functions_vars_p.html +3 -3
  246. package/SVF-doxygen/html/html/functions_vars_s.html +0 -3
  247. package/SVF-doxygen/html/html/functions_vars_t.html +2 -2
  248. package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
  249. package/SVF-doxygen/html/html/functions_vars_w.html +1 -1
  250. package/SVF-doxygen/html/html/functions_w.html +12 -8
  251. package/SVF-doxygen/html/html/functions_z.html +3 -13
  252. package/SVF-doxygen/html/html/globals.html +3 -0
  253. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  254. package/SVF-doxygen/html/html/globals_defs_f.html +3 -0
  255. package/SVF-doxygen/html/html/globals_f.html +5 -2
  256. package/SVF-doxygen/html/html/globals_s.html +9 -9
  257. package/SVF-doxygen/html/html/hierarchy.html +422 -425
  258. package/SVF-doxygen/html/html/menudata.js +4 -4
  259. package/SVF-doxygen/html/html/namespaceSVF.html +19 -66
  260. package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
  261. package/SVF-doxygen/html/html/namespacemembers_type.html +1 -7
  262. package/SVF-doxygen/html/html/namespacemembers_v.html +0 -6
  263. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  264. package/SVF-doxygen/html/html/search/all_1.js +3 -4
  265. package/SVF-doxygen/html/html/search/all_10.js +12 -17
  266. package/SVF-doxygen/html/html/search/all_12.js +3 -2
  267. package/SVF-doxygen/html/html/search/all_13.js +19 -18
  268. package/SVF-doxygen/html/html/search/all_14.js +7 -6
  269. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  270. package/SVF-doxygen/html/html/search/all_16.js +3 -6
  271. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  272. package/SVF-doxygen/html/html/search/all_1a.js +3 -5
  273. package/SVF-doxygen/html/html/search/all_1b.js +4 -8
  274. package/SVF-doxygen/html/html/search/all_2.js +14 -15
  275. package/SVF-doxygen/html/html/search/all_3.js +14 -24
  276. package/SVF-doxygen/html/html/search/all_4.js +3 -3
  277. package/SVF-doxygen/html/html/search/all_5.js +7 -4
  278. package/SVF-doxygen/html/html/search/all_6.js +5 -4
  279. package/SVF-doxygen/html/html/search/all_7.js +28 -25
  280. package/SVF-doxygen/html/html/search/all_8.js +4 -3
  281. package/SVF-doxygen/html/html/search/all_9.js +18 -12
  282. package/SVF-doxygen/html/html/search/all_c.js +4 -2
  283. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  284. package/SVF-doxygen/html/html/search/all_e.js +5 -5
  285. package/SVF-doxygen/html/html/search/all_f.js +25 -16
  286. package/SVF-doxygen/html/html/search/classes_1.js +1 -2
  287. package/SVF-doxygen/html/html/search/classes_12.js +1 -2
  288. package/SVF-doxygen/html/html/search/classes_14.js +1 -2
  289. package/SVF-doxygen/html/html/search/classes_2.js +0 -3
  290. package/SVF-doxygen/html/html/search/classes_4.js +1 -0
  291. package/SVF-doxygen/html/html/search/classes_7.js +3 -1
  292. package/SVF-doxygen/html/html/search/classes_d.js +0 -1
  293. package/SVF-doxygen/html/html/search/classes_f.js +1 -0
  294. package/SVF-doxygen/html/html/search/defines_0.js +1 -0
  295. package/SVF-doxygen/html/html/search/defines_5.js +1 -0
  296. package/SVF-doxygen/html/html/search/enums_1.js +0 -2
  297. package/SVF-doxygen/html/html/search/enumvalues_1.js +0 -2
  298. package/SVF-doxygen/html/html/search/files_1.js +2 -0
  299. package/SVF-doxygen/html/html/search/files_12.html +26 -0
  300. package/SVF-doxygen/html/html/search/files_12.js +4 -0
  301. package/SVF-doxygen/html/html/search/files_2.js +0 -3
  302. package/SVF-doxygen/html/html/search/files_4.js +2 -0
  303. package/SVF-doxygen/html/html/search/files_c.js +0 -1
  304. package/SVF-doxygen/html/html/search/files_d.js +1 -0
  305. package/SVF-doxygen/html/html/search/functions_0.js +1 -4
  306. package/SVF-doxygen/html/html/search/functions_1.js +8 -9
  307. package/SVF-doxygen/html/html/search/functions_10.js +7 -6
  308. package/SVF-doxygen/html/html/search/functions_11.js +2 -1
  309. package/SVF-doxygen/html/html/search/functions_13.js +0 -2
  310. package/SVF-doxygen/html/html/search/functions_15.js +2 -2
  311. package/SVF-doxygen/html/html/search/functions_16.js +4 -8
  312. package/SVF-doxygen/html/html/search/functions_2.js +5 -8
  313. package/SVF-doxygen/html/html/search/functions_3.js +3 -3
  314. package/SVF-doxygen/html/html/search/functions_4.js +2 -1
  315. package/SVF-doxygen/html/html/search/functions_5.js +3 -3
  316. package/SVF-doxygen/html/html/search/functions_6.js +25 -22
  317. package/SVF-doxygen/html/html/search/functions_7.js +2 -3
  318. package/SVF-doxygen/html/html/search/functions_8.js +12 -6
  319. package/SVF-doxygen/html/html/search/functions_a.js +1 -0
  320. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  321. package/SVF-doxygen/html/html/search/functions_c.js +2 -1
  322. package/SVF-doxygen/html/html/search/functions_d.js +7 -7
  323. package/SVF-doxygen/html/html/search/functions_e.js +5 -8
  324. package/SVF-doxygen/html/html/search/functions_f.js +2 -1
  325. package/SVF-doxygen/html/html/search/related_0.js +1 -2
  326. package/SVF-doxygen/html/html/search/related_1.js +1 -2
  327. package/SVF-doxygen/html/html/search/related_2.js +1 -1
  328. package/SVF-doxygen/html/html/search/related_3.js +2 -1
  329. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  330. package/SVF-doxygen/html/html/search/related_5.js +1 -2
  331. package/SVF-doxygen/html/html/search/related_6.js +4 -1
  332. package/SVF-doxygen/html/html/search/related_7.js +2 -4
  333. package/SVF-doxygen/html/html/search/related_8.js +18 -1
  334. package/SVF-doxygen/html/html/search/related_9.js +4 -6
  335. package/SVF-doxygen/html/html/search/related_a.js +1 -2
  336. package/SVF-doxygen/html/html/search/related_b.js +7 -2
  337. package/SVF-doxygen/html/html/search/related_c.html +26 -0
  338. package/SVF-doxygen/html/html/search/related_c.js +5 -0
  339. package/SVF-doxygen/html/html/search/related_d.html +26 -0
  340. package/SVF-doxygen/html/html/search/related_d.js +5 -0
  341. package/SVF-doxygen/html/html/search/searchdata.js +4 -4
  342. package/SVF-doxygen/html/html/search/typedefs_1.js +2 -3
  343. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -2
  344. package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
  345. package/SVF-doxygen/html/html/search/typedefs_2.js +4 -4
  346. package/SVF-doxygen/html/html/search/typedefs_4.js +1 -1
  347. package/SVF-doxygen/html/html/search/typedefs_6.js +3 -3
  348. package/SVF-doxygen/html/html/search/typedefs_8.js +3 -4
  349. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -0
  350. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
  351. package/SVF-doxygen/html/html/search/typedefs_f.js +0 -1
  352. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  353. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  354. package/SVF-doxygen/html/html/search/variables_13.js +0 -1
  355. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  356. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  357. package/SVF-doxygen/html/html/search/variables_16.js +1 -1
  358. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  359. package/SVF-doxygen/html/html/search/variables_2.js +1 -2
  360. package/SVF-doxygen/html/html/search/variables_3.js +4 -6
  361. package/SVF-doxygen/html/html/search/variables_5.js +1 -2
  362. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  363. package/SVF-doxygen/html/html/search/variables_9.js +1 -2
  364. package/SVF-doxygen/html/html/search/variables_c.js +1 -0
  365. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  366. package/SVF-doxygen/html/html/search/variables_e.js +1 -2
  367. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4-members.html +81 -0
  368. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +131 -0
  369. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4-members.html +81 -0
  370. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +131 -0
  371. package/include/MSSA/MemSSA.h +1 -1
  372. package/include/SABER/PathCondAllocator.h +4 -4
  373. package/include/SABER/SrcSnkDDA.h +2 -2
  374. package/include/{Util/CFLSolver.h → SABER/SrcSnkSolver.h} +5 -5
  375. package/include/{Util → SVF-FE}/IRAnnotator.h +0 -0
  376. package/include/Util/BDDExpr.h +182 -0
  377. package/include/Util/DPItem.h +1 -1
  378. package/include/Util/ExeState.h +172 -0
  379. package/include/Util/Options.h +0 -3
  380. package/include/Util/SVFBasicTypes.h +2 -2
  381. package/include/Util/Z3Expr.h +235 -0
  382. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  383. package/include/{Util → WPA}/TypeBasedHeapCloning.h +0 -0
  384. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  385. package/lib/SABER/PathCondAllocator.cpp +1 -1
  386. package/lib/Util/BDDExpr.cpp +206 -0
  387. package/lib/Util/ExeState.cpp +248 -0
  388. package/lib/Util/Options.cpp +0 -11
  389. package/lib/Util/SVFUtil.cpp +1 -1
  390. package/lib/WPA/FlowSensitive.cpp +1 -1
  391. package/lib/{Util → WPA}/TypeBasedHeapCloning.cpp +1 -1
  392. package/package.json +1 -1
  393. package/include/Util/Conditions.h +0 -421
  394. package/include/Util/PathDPItem.h +0 -310
  395. package/lib/Util/Conditions.cpp +0 -440
@@ -0,0 +1,248 @@
1
+ //===- ExeState.cpp -- Execution State ----------------------------//
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
+ * ExeState.cpp
24
+ *
25
+ * Created on: April 29, 2022
26
+ * Author: Xiao
27
+ */
28
+ #include "Util/ExeState.h"
29
+ #include "MemoryModel/SVFIR.h"
30
+ #include <iomanip>
31
+
32
+ using namespace SVF;
33
+ using namespace SVFUtil;
34
+
35
+ z3::context *Z3Expr::ctx = nullptr;
36
+
37
+ /*!
38
+ * Init Z3Expr for ValVar
39
+ * @param valVar
40
+ * @param e
41
+ */
42
+ void ExeState::initValVar(const ValVar *valVar, Z3Expr &e) {
43
+ std::string str;
44
+ raw_string_ostream rawstr(str);
45
+ SVFIR *svfir = PAG::getPAG();
46
+
47
+ rawstr << "ValVar" << valVar->getId();
48
+ if (const Type *type = valVar->getType()) {
49
+ if (type->isIntegerTy() || type->isFloatingPointTy() || type->isPointerTy() || type->isFunctionTy()
50
+ || type->isStructTy() || type->isArrayTy() || type->isVoidTy() || type->isLabelTy() || type->isMetadataTy())
51
+ e = getContext().int_const(rawstr.str().c_str());
52
+ else {
53
+ SVFUtil::errs() << value2String(valVar->getValue()) << "\n" << " type: " << type2String(type) << "\n";
54
+ assert(false && "what other types we have");
55
+ }
56
+ } else {
57
+ if (svfir->getNullPtr() == valVar->getId())
58
+ e = getContext().int_val(0);
59
+ else
60
+ e = getContext().int_const(rawstr.str().c_str());
61
+ assert(SVFUtil::isa<DummyValVar>(valVar) && "not a DummValVar if it has no type?");
62
+ }
63
+ }
64
+
65
+ /*!
66
+ * Init Z3Expr for ObjVar
67
+ * @param objVar
68
+ * @param e
69
+ */
70
+ void ExeState::initObjVar(const ObjVar *objVar, Z3Expr &e) {
71
+ std::string str;
72
+ raw_string_ostream rawstr(str);
73
+ rawstr << "ObjVar" << objVar->getId();
74
+
75
+ if (objVar->hasValue()) {
76
+ const MemObj *obj = objVar->getMemObj();
77
+ /// constant data
78
+ if (obj->isConstantData() || obj->isConstantArray() || obj->isConstantStruct()) {
79
+ if (const ConstantInt *consInt = SVFUtil::dyn_cast<ConstantInt>(obj->getValue())) {
80
+ if (consInt == llvm::ConstantInt::getTrue(LLVMModuleSet::getLLVMModuleSet()->getContext())) {
81
+ e = getContext().int_val(1);
82
+ } else if (consInt == llvm::ConstantInt::getFalse(LLVMModuleSet::getLLVMModuleSet()->getContext()))
83
+ e = getContext().int_val(0);
84
+ else {
85
+ e = getContext().int_val(consInt->getSExtValue());
86
+ }
87
+ } else if (const llvm::ConstantFP *consFP = SVFUtil::dyn_cast<llvm::ConstantFP>(obj->getValue()))
88
+ e = getContext().int_val(static_cast<u32_t>(consFP->getValue().convertToFloat()));
89
+ else if (SVFUtil::isa<ConstantPointerNull>(obj->getValue()))
90
+ e = getContext().int_val(0);
91
+ else if (SVFUtil::isa<GlobalVariable>(obj->getValue()))
92
+ e = getContext().int_val(getVirtualMemAddress(objVar->getId()));
93
+ else if (SVFUtil::isa<ConstantAggregate>(obj->getValue()))
94
+ assert(false && "implement this part");
95
+ else {
96
+ std::cerr << value2String(obj->getValue()) << "\n";
97
+ assert(false && "what other types of values we have?");
98
+ }
99
+ }
100
+ /// locations (address-taken variables)
101
+ else {
102
+ e = getContext().int_val(getVirtualMemAddress(objVar->getId()));
103
+ }
104
+ } else {
105
+ assert(SVFUtil::isa<DummyObjVar>(objVar) &&
106
+ "it should either be a blackhole or constant dummy if this obj has no value?");
107
+ e = getContext().int_val(getVirtualMemAddress(objVar->getId()));
108
+ }
109
+ }
110
+
111
+ /*!
112
+ * Return Z3 expression based on SVFVar ID
113
+ * @param varId SVFVar ID
114
+ * @return
115
+ */
116
+ Z3Expr &ExeState::getZ3Expr(u32_t varId) {
117
+ assert(getInternalID(varId) == varId && "SVFVar idx overflow > 0x7f000000?");
118
+ Z3Expr &e = varToVal[varId];
119
+ if (eq(e, Z3Expr::nullExpr())) {
120
+ std::string str;
121
+ raw_string_ostream rawstr(str);
122
+ SVFIR *svfir = PAG::getPAG();
123
+ SVFVar *svfVar = svfir->getGNode(varId);
124
+ if (const ValVar *valVar = dyn_cast<ValVar>(svfVar)) {
125
+ initValVar(valVar, e);
126
+ } else if (const ObjVar *objVar = dyn_cast<ObjVar>(svfVar)) {
127
+ initObjVar(objVar, e);
128
+ } else {
129
+ assert(false && "var type not supported");
130
+ }
131
+ }
132
+ return e;
133
+ }
134
+
135
+ ExeState &ExeState::operator=(const ExeState &rhs) {
136
+ if (*this != rhs) {
137
+ varToVal = rhs.getVarToVal();
138
+ locToVal = rhs.getLocToVal();
139
+ pathConstraint = rhs.getPathConstraint();
140
+ }
141
+ return *this;
142
+ }
143
+
144
+ /*!
145
+ * Overloading Operator==
146
+ * @param rhs
147
+ * @return
148
+ */
149
+ bool ExeState::operator==(const ExeState &rhs) const {
150
+ // return false if path constraint is not equivalent
151
+ if (!eq(pathConstraint, rhs.getPathConstraint()))
152
+ return false;
153
+ for (const auto &item: varToVal) {
154
+ auto it = rhs.getVarToVal().find(item.first);
155
+ // return false if SVFVar not exists in rhs
156
+ if (it == rhs.getVarToVal().end())
157
+ return false;
158
+ // return false if Z3Expr is not equivalent
159
+ if (!eq(item.second, it->second))
160
+ return false;
161
+ }
162
+ for (const auto &item: locToVal) {
163
+ auto it = rhs.getLocToVal().find(item.first);
164
+ // return false if location not exists in rhs
165
+ if (it == rhs.getLocToVal().end())
166
+ return false;
167
+ // return false if Z3Expr is not equivalent
168
+ if (!eq(item.second, it->second))
169
+ return false;
170
+ }
171
+ return true;
172
+ }
173
+
174
+ /*!
175
+ * Overloading Operator<
176
+ * @param rhs
177
+ * @return
178
+ */
179
+ bool ExeState::operator<(const ExeState &rhs) const {
180
+ // judge from path constraint
181
+ if (!eq(pathConstraint, rhs.getPathConstraint()))
182
+ return pathConstraint.id() < rhs.getPathConstraint().id();
183
+ for (const auto &item: varToVal) {
184
+ auto it = rhs.getVarToVal().find(item.first);
185
+ // lhs > rhs if SVFVar not exists in rhs
186
+ if (it == rhs.getVarToVal().end())
187
+ return false;
188
+ // judge from expr id
189
+ if (!eq(item.second, it->second))
190
+ return item.second.id() < it->second.id();
191
+ }
192
+ for (const auto &item: locToVal) {
193
+ auto it = rhs.getLocToVal().find(item.first);
194
+ // lhs > rhs if SVFVar not exists in rhs
195
+ if (it == rhs.getLocToVal().end())
196
+ return false;
197
+ // judge from expr id
198
+ if (!eq(item.second, it->second))
199
+ return item.second.id() < it->second.id();
200
+ }
201
+ return false;
202
+ }
203
+
204
+ /*!
205
+ * Store value to location
206
+ * @param loc location, e.g., int_val(0x7f..01)
207
+ * @param value
208
+ */
209
+ void ExeState::store(const Z3Expr &loc, const Z3Expr &value) {
210
+ assert(loc.is_numeral() && "location must be numeral");
211
+ s32_t virAddr = z3Expr2NumValue(loc);
212
+ assert(isVirtualMemAddress(virAddr) && "Pointer operand is not a physical address?");
213
+ store(getInternalID(virAddr), value);
214
+ }
215
+
216
+ /*!
217
+ * Load value at location
218
+ * @param loc location, e.g., int_val(0x7f..01)
219
+ * @return
220
+ */
221
+ Z3Expr &ExeState::load(const Z3Expr &loc) {
222
+ assert(loc.is_numeral() && "location must be numeral");
223
+ s32_t virAddr = z3Expr2NumValue(loc);
224
+ assert(isVirtualMemAddress(virAddr) && "Pointer operand is not a physical address?");
225
+ u32_t objId = getInternalID(virAddr);
226
+ assert(getInternalID(objId) == objId && "SVFVar idx overflow > 0x7f000000?");
227
+ return load(objId);
228
+ }
229
+
230
+ /*!
231
+ * Print values of all expressions
232
+ */
233
+ void ExeState::printExprValues() {
234
+ std::cout.flags(std::ios::left);
235
+ std::cout << "-----------Var and Value-----------\n";
236
+ for (const auto &item: getVarToVal()) {
237
+ std::stringstream exprName;
238
+ exprName << "Var" << item.first;
239
+ std::cout << std::setw(25) << exprName.str();
240
+ const Z3Expr &sim = item.second.simplify();
241
+ if (sim.is_numeral() && isVirtualMemAddress(z3Expr2NumValue(sim))) {
242
+ std::cout << "\t Value: " << std::hex << "0x" << z3Expr2NumValue(sim) << "\n";
243
+ } else {
244
+ std::cout << "\t Value: " << std::dec << sim << "\n";
245
+ }
246
+ }
247
+ std::cout << "-----------------------------------------\n";
248
+ }
@@ -797,15 +797,4 @@ namespace SVF
797
797
  llvm::cl::init(false),
798
798
  llvm::cl::desc("Show hidden nodes on DOT Graphs (e.g., isolated node on a graph)")
799
799
  );
800
-
801
-
802
- const llvm::cl::opt<CondManager::CondMgrKind> Options::ConditionType(
803
- "cond-type",
804
- llvm::cl::init(CondManager::CondMgrKind::BDDMgrK),
805
- llvm::cl::desc("condition type used in path-sensitive analysis"),
806
- llvm::cl::values(
807
- clEnumValN(CondManager::CondMgrKind::BDDMgrK, "bdd", "BDD condition"),
808
- clEnumValN(CondManager::CondMgrKind::Z3MgrK, "z3", "z3 condition")
809
- )
810
- );
811
800
  } // namespace SVF.
@@ -31,7 +31,7 @@
31
31
  #include "Util/SVFUtil.h"
32
32
  #include "SVF-FE/LLVMUtil.h"
33
33
 
34
- #include "Util/Conditions.h"
34
+ #include "Util/BDDExpr.h"
35
35
  #include "MemoryModel/PointsTo.h"
36
36
 
37
37
  #include <sys/resource.h> /// increase stack size
@@ -30,7 +30,7 @@
30
30
  #include "Util/Options.h"
31
31
  #include "SVF-FE/DCHG.h"
32
32
  #include "Util/SVFModule.h"
33
- #include "Util/TypeBasedHeapCloning.h"
33
+ #include "WPA/TypeBasedHeapCloning.h"
34
34
  #include "WPA/WPAStat.h"
35
35
  #include "WPA/FlowSensitive.h"
36
36
  #include "WPA/Andersen.h"
@@ -8,7 +8,7 @@
8
8
  */
9
9
 
10
10
  #include "SVF-FE/CPPUtil.h"
11
- #include "Util/TypeBasedHeapCloning.h"
11
+ #include "WPA/TypeBasedHeapCloning.h"
12
12
  #include "MemoryModel/PointerAnalysisImpl.h"
13
13
 
14
14
  using namespace SVF;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.436",
3
+ "version": "1.0.439",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {