svf-tools 1.0.905 → 1.0.907

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 (438) hide show
  1. package/SVF-doxygen/html/AbstractInterpretation_8cpp.html +217 -0
  2. package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +2093 -0
  3. package/SVF-doxygen/html/AbstractInterpretation_8h.html +115 -0
  4. package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +459 -0
  5. package/SVF-doxygen/html/AbstractState_8cpp.html +84 -0
  6. package/SVF-doxygen/html/AbstractState_8cpp_source.html +461 -0
  7. package/SVF-doxygen/html/AbstractState_8h.html +105 -0
  8. package/SVF-doxygen/html/AbstractState_8h_source.html +891 -0
  9. package/SVF-doxygen/html/AbstractValue_8h.html +3 -3
  10. package/SVF-doxygen/html/AbstractValue_8h_source.html +652 -62
  11. package/SVF-doxygen/html/AddressValue_8h.html +4 -4
  12. package/SVF-doxygen/html/AddressValue_8h_source.html +180 -177
  13. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +782 -776
  14. package/SVF-doxygen/html/BufOverflowChecker_8h.html +1 -1
  15. package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +19 -19
  16. package/SVF-doxygen/html/CFLGraph_8h_source.html +3 -3
  17. package/SVF-doxygen/html/CSC_8h_source.html +1 -1
  18. package/SVF-doxygen/html/ConsExeState_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/ConsExeState_8h_source.html +2 -2
  20. package/SVF-doxygen/html/ExeState_8cpp.html +1 -1
  21. package/SVF-doxygen/html/ExeState_8cpp_source.html +2 -2
  22. package/SVF-doxygen/html/ExeState_8h_source.html +8 -8
  23. package/SVF-doxygen/html/ICFGSimplification_8h.html +2 -2
  24. package/SVF-doxygen/html/ICFGSimplification_8h_source.html +17 -18
  25. package/SVF-doxygen/html/ICFG_8h_source.html +1 -1
  26. package/SVF-doxygen/html/IntervalValue_8h.html +2 -2
  27. package/SVF-doxygen/html/IntervalValue_8h_source.html +846 -864
  28. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
  30. package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/PointsTo_8cpp_source.html +3 -3
  33. package/SVF-doxygen/html/PointsTo_8h_source.html +3 -3
  34. package/SVF-doxygen/html/RelExeState_8h_source.html +5 -5
  35. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +67 -68
  36. package/SVF-doxygen/html/RelationSolver_8h.html +1 -1
  37. package/SVF-doxygen/html/RelationSolver_8h_source.html +17 -17
  38. package/SVF-doxygen/html/SVFIR2AbsState_8cpp.html +84 -0
  39. package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +1348 -0
  40. package/SVF-doxygen/html/SVFIR2AbsState_8h.html +100 -0
  41. package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +378 -0
  42. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +9 -8
  43. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +920 -952
  44. package/SVF-doxygen/html/SVFIR2ItvExeState_8h.html +2 -3
  45. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +202 -207
  46. package/SVF-doxygen/html/SVFIR2Relation_8cpp.html +1 -1
  47. package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +76 -72
  48. package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
  50. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  51. package/SVF-doxygen/html/SparseBitVector_8h_source.html +3 -3
  52. package/SVF-doxygen/html/WorkList_8h_source.html +1 -1
  53. package/SVF-doxygen/html/ae_8cpp.html +57 -57
  54. package/SVF-doxygen/html/ae_8cpp_source.html +462 -466
  55. package/SVF-doxygen/html/annotated.html +409 -418
  56. package/SVF-doxygen/html/classSVF_1_1AEStat-members.html +2 -2
  57. package/SVF-doxygen/html/classSVF_1_1AEStat.html +184 -190
  58. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +161 -0
  59. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +4325 -0
  60. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.png +0 -0
  61. package/SVF-doxygen/html/classSVF_1_1AbstractState-members.html +134 -0
  62. package/SVF-doxygen/html/classSVF_1_1AbstractState.html +2166 -0
  63. package/SVF-doxygen/html/classSVF_1_1AbstractState.png +0 -0
  64. package/SVF-doxygen/html/classSVF_1_1AddressValue-members.html +15 -28
  65. package/SVF-doxygen/html/classSVF_1_1AddressValue.html +171 -230
  66. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +0 -1
  67. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.png +0 -0
  68. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +73 -73
  69. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +578 -574
  70. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.png +0 -0
  71. package/SVF-doxygen/html/classSVF_1_1CFLNode-members.html +48 -49
  72. package/SVF-doxygen/html/classSVF_1_1CFLNode.html +25 -25
  73. package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +1 -1
  74. package/SVF-doxygen/html/classSVF_1_1ExeState.html +12 -14
  75. package/SVF-doxygen/html/classSVF_1_1ExeState.png +0 -0
  76. package/SVF-doxygen/html/classSVF_1_1FILOWorkList.html +3 -3
  77. package/SVF-doxygen/html/classSVF_1_1GenericNode.html +22 -8
  78. package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
  79. package/SVF-doxygen/html/classSVF_1_1ICFGSimplification.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1IntervalValue-members.html +50 -64
  81. package/SVF-doxygen/html/classSVF_1_1IntervalValue.html +349 -459
  82. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
  83. package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +1 -1
  84. package/SVF-doxygen/html/classSVF_1_1RelExeState-members.html +1 -1
  85. package/SVF-doxygen/html/classSVF_1_1RelExeState.html +8 -8
  86. package/SVF-doxygen/html/classSVF_1_1RelationSolver-members.html +8 -8
  87. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +106 -107
  88. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +141 -0
  89. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +3137 -0
  90. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +5 -5
  91. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +56 -57
  92. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1128 -1178
  93. package/SVF-doxygen/html/classSVF_1_1SVFStat.html +1 -1
  94. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState-members.html +157 -0
  95. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.html +1512 -0
  96. package/SVF-doxygen/html/classSVF_1_1SparseAbstractState.png +0 -0
  97. package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +0 -1
  98. package/SVF-doxygen/html/classSVF_1_1Z3Expr.png +0 -0
  99. package/SVF-doxygen/html/classSymblicAbstractionTest-members.html +3 -3
  100. package/SVF-doxygen/html/classSymblicAbstractionTest.html +400 -404
  101. package/SVF-doxygen/html/classes.html +326 -336
  102. package/SVF-doxygen/html/dir_2c6fb801affc4b3efe6e1ed5974683f6.html +2 -10
  103. package/SVF-doxygen/html/dir_81caa96ab1d3de93b353e2bbe80e6067.html +2 -4
  104. package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +2 -8
  105. package/SVF-doxygen/html/dir_fbec400583b4bd6c5f2e89c86c5943a6.html +2 -4
  106. package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
  107. package/SVF-doxygen/html/files.html +18 -27
  108. package/SVF-doxygen/html/functions.html +33 -56
  109. package/SVF-doxygen/html/functions_a.html +29 -42
  110. package/SVF-doxygen/html/functions_b.html +14 -21
  111. package/SVF-doxygen/html/functions_c.html +42 -52
  112. package/SVF-doxygen/html/functions_d.html +7 -4
  113. package/SVF-doxygen/html/functions_e.html +7 -21
  114. package/SVF-doxygen/html/functions_enum.html +4 -7
  115. package/SVF-doxygen/html/functions_eval.html +2 -2
  116. package/SVF-doxygen/html/functions_eval_c.html +0 -3
  117. package/SVF-doxygen/html/functions_eval_i.html +2 -3
  118. package/SVF-doxygen/html/functions_eval_m.html +2 -2
  119. package/SVF-doxygen/html/functions_eval_s.html +2 -5
  120. package/SVF-doxygen/html/functions_eval_u.html +4 -1
  121. package/SVF-doxygen/html/functions_f.html +6 -6
  122. package/SVF-doxygen/html/functions_func.html +24 -31
  123. package/SVF-doxygen/html/functions_func_b.html +10 -16
  124. package/SVF-doxygen/html/functions_func_c.html +30 -39
  125. package/SVF-doxygen/html/functions_func_d.html +1 -1
  126. package/SVF-doxygen/html/functions_func_e.html +7 -17
  127. package/SVF-doxygen/html/functions_func_g.html +61 -115
  128. package/SVF-doxygen/html/functions_func_h.html +22 -24
  129. package/SVF-doxygen/html/functions_func_i.html +64 -94
  130. package/SVF-doxygen/html/functions_func_j.html +4 -6
  131. package/SVF-doxygen/html/functions_func_l.html +9 -23
  132. package/SVF-doxygen/html/functions_func_m.html +7 -8
  133. package/SVF-doxygen/html/functions_func_n.html +8 -13
  134. package/SVF-doxygen/html/functions_func_o.html +57 -48
  135. package/SVF-doxygen/html/functions_func_p.html +6 -11
  136. package/SVF-doxygen/html/functions_func_r.html +4 -4
  137. package/SVF-doxygen/html/functions_func_s.html +35 -50
  138. package/SVF-doxygen/html/functions_func_t.html +26 -40
  139. package/SVF-doxygen/html/functions_func_u.html +6 -5
  140. package/SVF-doxygen/html/functions_func_v.html +2 -9
  141. package/SVF-doxygen/html/functions_func_w.html +9 -8
  142. package/SVF-doxygen/html/functions_func_z.html +1 -2
  143. package/SVF-doxygen/html/functions_func_~.html +10 -22
  144. package/SVF-doxygen/html/functions_g.html +61 -118
  145. package/SVF-doxygen/html/functions_h.html +21 -23
  146. package/SVF-doxygen/html/functions_i.html +76 -106
  147. package/SVF-doxygen/html/functions_j.html +4 -6
  148. package/SVF-doxygen/html/functions_k.html +0 -6
  149. package/SVF-doxygen/html/functions_l.html +11 -25
  150. package/SVF-doxygen/html/functions_m.html +8 -9
  151. package/SVF-doxygen/html/functions_n.html +14 -17
  152. package/SVF-doxygen/html/functions_o.html +71 -90
  153. package/SVF-doxygen/html/functions_p.html +31 -30
  154. package/SVF-doxygen/html/functions_r.html +11 -15
  155. package/SVF-doxygen/html/functions_rela.html +2 -3
  156. package/SVF-doxygen/html/functions_rela_b.html +0 -1
  157. package/SVF-doxygen/html/functions_rela_e.html +0 -1
  158. package/SVF-doxygen/html/functions_rela_i.html +0 -2
  159. package/SVF-doxygen/html/functions_rela_l.html +0 -1
  160. package/SVF-doxygen/html/functions_rela_o.html +0 -18
  161. package/SVF-doxygen/html/functions_rela_r.html +2 -2
  162. package/SVF-doxygen/html/functions_rela_s.html +4 -9
  163. package/SVF-doxygen/html/functions_s.html +45 -70
  164. package/SVF-doxygen/html/functions_t.html +29 -45
  165. package/SVF-doxygen/html/functions_type.html +0 -5
  166. package/SVF-doxygen/html/functions_type_c.html +1 -1
  167. package/SVF-doxygen/html/functions_type_k.html +0 -6
  168. package/SVF-doxygen/html/functions_type_l.html +4 -3
  169. package/SVF-doxygen/html/functions_type_t.html +0 -3
  170. package/SVF-doxygen/html/functions_type_v.html +3 -5
  171. package/SVF-doxygen/html/functions_u.html +8 -4
  172. package/SVF-doxygen/html/functions_v.html +11 -20
  173. package/SVF-doxygen/html/functions_vars.html +33 -56
  174. package/SVF-doxygen/html/functions_vars_a.html +3 -0
  175. package/SVF-doxygen/html/functions_vars_g.html +2 -5
  176. package/SVF-doxygen/html/functions_vars_i.html +3 -0
  177. package/SVF-doxygen/html/functions_vars_t.html +1 -0
  178. package/SVF-doxygen/html/functions_w.html +11 -10
  179. package/SVF-doxygen/html/functions_z.html +1 -2
  180. package/SVF-doxygen/html/functions_~.html +10 -22
  181. package/SVF-doxygen/html/globals.html +2 -2
  182. package/SVF-doxygen/html/globals_defs.html +1 -4
  183. package/SVF-doxygen/html/globals_n.html +2 -5
  184. package/SVF-doxygen/html/globals_s.html +1 -1
  185. package/SVF-doxygen/html/globals_vars.html +5 -5
  186. package/SVF-doxygen/html/globals_z.html +3 -3
  187. package/SVF-doxygen/html/hierarchy.html +622 -631
  188. package/SVF-doxygen/html/namespaceSVF.html +449 -458
  189. package/SVF-doxygen/html/search/all_0.js +155 -161
  190. package/SVF-doxygen/html/search/all_1.js +502 -503
  191. package/SVF-doxygen/html/search/all_10.js +325 -326
  192. package/SVF-doxygen/html/search/all_11.js +227 -227
  193. package/SVF-doxygen/html/search/all_12.js +563 -574
  194. package/SVF-doxygen/html/search/all_13.js +206 -208
  195. package/SVF-doxygen/html/search/all_14.js +74 -73
  196. package/SVF-doxygen/html/search/all_15.js +175 -176
  197. package/SVF-doxygen/html/search/all_16.js +77 -77
  198. package/SVF-doxygen/html/search/all_17.js +1 -1
  199. package/SVF-doxygen/html/search/all_18.js +1 -1
  200. package/SVF-doxygen/html/search/all_19.js +27 -27
  201. package/SVF-doxygen/html/search/all_1a.js +175 -179
  202. package/SVF-doxygen/html/search/all_2.js +180 -182
  203. package/SVF-doxygen/html/search/all_3.js +636 -642
  204. package/SVF-doxygen/html/search/all_4.js +237 -236
  205. package/SVF-doxygen/html/search/all_5.js +120 -126
  206. package/SVF-doxygen/html/search/all_6.js +236 -236
  207. package/SVF-doxygen/html/search/all_7.js +1040 -1056
  208. package/SVF-doxygen/html/search/all_8.js +211 -215
  209. package/SVF-doxygen/html/search/all_9.js +631 -638
  210. package/SVF-doxygen/html/search/all_a.js +46 -46
  211. package/SVF-doxygen/html/search/all_b.js +24 -26
  212. package/SVF-doxygen/html/search/all_c.js +113 -115
  213. package/SVF-doxygen/html/search/all_d.js +205 -205
  214. package/SVF-doxygen/html/search/all_e.js +207 -209
  215. package/SVF-doxygen/html/search/all_f.js +122 -122
  216. package/SVF-doxygen/html/search/classes_0.js +29 -28
  217. package/SVF-doxygen/html/search/classes_1.js +11 -11
  218. package/SVF-doxygen/html/search/classes_10.js +72 -74
  219. package/SVF-doxygen/html/search/classes_11.js +14 -14
  220. package/SVF-doxygen/html/search/classes_12.js +2 -2
  221. package/SVF-doxygen/html/search/classes_13.js +10 -10
  222. package/SVF-doxygen/html/search/classes_14.js +19 -19
  223. package/SVF-doxygen/html/search/classes_15.js +1 -1
  224. package/SVF-doxygen/html/search/classes_2.js +72 -73
  225. package/SVF-doxygen/html/search/classes_3.js +35 -35
  226. package/SVF-doxygen/html/search/classes_4.js +7 -8
  227. package/SVF-doxygen/html/search/classes_5.js +28 -28
  228. package/SVF-doxygen/html/search/classes_6.js +98 -98
  229. package/SVF-doxygen/html/search/classes_7.js +34 -38
  230. package/SVF-doxygen/html/search/classes_8.js +57 -59
  231. package/SVF-doxygen/html/search/classes_9.js +1 -1
  232. package/SVF-doxygen/html/search/classes_a.js +12 -12
  233. package/SVF-doxygen/html/search/classes_b.js +29 -29
  234. package/SVF-doxygen/html/search/classes_c.js +6 -6
  235. package/SVF-doxygen/html/search/classes_d.js +19 -19
  236. package/SVF-doxygen/html/search/classes_e.js +36 -36
  237. package/SVF-doxygen/html/search/classes_f.js +25 -25
  238. package/SVF-doxygen/html/search/defines_0.js +3 -3
  239. package/SVF-doxygen/html/search/defines_1.js +3 -3
  240. package/SVF-doxygen/html/search/defines_10.js +2 -2
  241. package/SVF-doxygen/html/search/defines_2.js +30 -30
  242. package/SVF-doxygen/html/search/defines_3.js +20 -20
  243. package/SVF-doxygen/html/search/defines_4.js +3 -3
  244. package/SVF-doxygen/html/search/defines_5.js +4 -4
  245. package/SVF-doxygen/html/search/defines_6.js +2 -2
  246. package/SVF-doxygen/html/search/defines_7.js +5 -5
  247. package/SVF-doxygen/html/search/defines_8.js +11 -11
  248. package/SVF-doxygen/html/search/defines_9.js +9 -9
  249. package/SVF-doxygen/html/search/defines_a.js +2 -2
  250. package/SVF-doxygen/html/search/defines_b.js +1 -1
  251. package/SVF-doxygen/html/search/defines_c.js +3 -4
  252. package/SVF-doxygen/html/search/defines_d.js +2 -2
  253. package/SVF-doxygen/html/search/defines_e.js +8 -8
  254. package/SVF-doxygen/html/search/defines_f.js +4 -4
  255. package/SVF-doxygen/html/search/enums_0.js +3 -4
  256. package/SVF-doxygen/html/search/enums_1.js +2 -2
  257. package/SVF-doxygen/html/search/enums_10.js +1 -1
  258. package/SVF-doxygen/html/search/enums_11.js +1 -1
  259. package/SVF-doxygen/html/search/enums_2.js +9 -9
  260. package/SVF-doxygen/html/search/enums_3.js +2 -1
  261. package/SVF-doxygen/html/search/enums_4.js +3 -4
  262. package/SVF-doxygen/html/search/enums_5.js +1 -1
  263. package/SVF-doxygen/html/search/enums_6.js +2 -2
  264. package/SVF-doxygen/html/search/enums_7.js +2 -2
  265. package/SVF-doxygen/html/search/enums_8.js +4 -4
  266. package/SVF-doxygen/html/search/enums_9.js +1 -1
  267. package/SVF-doxygen/html/search/enums_a.js +1 -1
  268. package/SVF-doxygen/html/search/enums_b.js +7 -7
  269. package/SVF-doxygen/html/search/enums_c.js +1 -1
  270. package/SVF-doxygen/html/search/enums_d.js +4 -4
  271. package/SVF-doxygen/html/search/enums_e.js +2 -2
  272. package/SVF-doxygen/html/search/enums_f.js +4 -4
  273. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  274. package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
  275. package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
  276. package/SVF-doxygen/html/search/enumvalues_11.js +6 -5
  277. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  278. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  279. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  280. package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
  281. package/SVF-doxygen/html/search/enumvalues_2.js +36 -37
  282. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  283. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  284. package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
  285. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  286. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  287. package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
  288. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  289. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  290. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  291. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  292. package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
  293. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  294. package/SVF-doxygen/html/search/enumvalues_f.js +48 -49
  295. package/SVF-doxygen/html/search/files_0.js +18 -16
  296. package/SVF-doxygen/html/search/files_1.js +9 -9
  297. package/SVF-doxygen/html/search/files_10.js +8 -8
  298. package/SVF-doxygen/html/search/files_11.js +8 -8
  299. package/SVF-doxygen/html/search/files_12.js +2 -2
  300. package/SVF-doxygen/html/search/files_2.js +51 -53
  301. package/SVF-doxygen/html/search/files_3.js +14 -14
  302. package/SVF-doxygen/html/search/files_4.js +3 -5
  303. package/SVF-doxygen/html/search/files_5.js +13 -13
  304. package/SVF-doxygen/html/search/files_6.js +10 -10
  305. package/SVF-doxygen/html/search/files_7.js +15 -17
  306. package/SVF-doxygen/html/search/files_8.js +13 -13
  307. package/SVF-doxygen/html/search/files_9.js +18 -18
  308. package/SVF-doxygen/html/search/files_a.js +3 -3
  309. package/SVF-doxygen/html/search/files_b.js +4 -4
  310. package/SVF-doxygen/html/search/files_c.js +20 -20
  311. package/SVF-doxygen/html/search/files_d.js +4 -4
  312. package/SVF-doxygen/html/search/files_e.js +57 -62
  313. package/SVF-doxygen/html/search/files_f.js +8 -8
  314. package/SVF-doxygen/html/search/functions_0.js +13 -13
  315. package/SVF-doxygen/html/search/functions_1.js +366 -368
  316. package/SVF-doxygen/html/search/functions_10.js +139 -140
  317. package/SVF-doxygen/html/search/functions_11.js +140 -140
  318. package/SVF-doxygen/html/search/functions_12.js +294 -299
  319. package/SVF-doxygen/html/search/functions_13.js +72 -73
  320. package/SVF-doxygen/html/search/functions_14.js +41 -41
  321. package/SVF-doxygen/html/search/functions_15.js +70 -72
  322. package/SVF-doxygen/html/search/functions_16.js +38 -38
  323. package/SVF-doxygen/html/search/functions_17.js +3 -3
  324. package/SVF-doxygen/html/search/functions_18.js +175 -179
  325. package/SVF-doxygen/html/search/functions_2.js +92 -94
  326. package/SVF-doxygen/html/search/functions_3.js +258 -261
  327. package/SVF-doxygen/html/search/functions_4.js +85 -85
  328. package/SVF-doxygen/html/search/functions_5.js +54 -57
  329. package/SVF-doxygen/html/search/functions_6.js +65 -65
  330. package/SVF-doxygen/html/search/functions_7.js +857 -872
  331. package/SVF-doxygen/html/search/functions_8.js +162 -162
  332. package/SVF-doxygen/html/search/functions_9.js +440 -446
  333. package/SVF-doxygen/html/search/functions_a.js +30 -30
  334. package/SVF-doxygen/html/search/functions_b.js +2 -2
  335. package/SVF-doxygen/html/search/functions_c.js +22 -25
  336. package/SVF-doxygen/html/search/functions_d.js +82 -82
  337. package/SVF-doxygen/html/search/functions_e.js +34 -36
  338. package/SVF-doxygen/html/search/functions_f.js +58 -58
  339. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  340. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  341. package/SVF-doxygen/html/search/related_0.js +4 -4
  342. package/SVF-doxygen/html/search/related_1.js +2 -2
  343. package/SVF-doxygen/html/search/related_2.js +2 -2
  344. package/SVF-doxygen/html/search/related_3.js +2 -2
  345. package/SVF-doxygen/html/search/related_4.js +2 -2
  346. package/SVF-doxygen/html/search/related_5.js +1 -1
  347. package/SVF-doxygen/html/search/related_6.js +2 -2
  348. package/SVF-doxygen/html/search/related_7.js +5 -5
  349. package/SVF-doxygen/html/search/related_8.js +2 -2
  350. package/SVF-doxygen/html/search/related_9.js +4 -4
  351. package/SVF-doxygen/html/search/related_a.js +19 -19
  352. package/SVF-doxygen/html/search/related_b.js +4 -4
  353. package/SVF-doxygen/html/search/related_c.js +2 -2
  354. package/SVF-doxygen/html/search/related_d.js +11 -12
  355. package/SVF-doxygen/html/search/related_e.js +2 -2
  356. package/SVF-doxygen/html/search/related_f.js +2 -2
  357. package/SVF-doxygen/html/search/typedefs_0.js +18 -19
  358. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  359. package/SVF-doxygen/html/search/typedefs_10.js +65 -65
  360. package/SVF-doxygen/html/search/typedefs_11.js +12 -13
  361. package/SVF-doxygen/html/search/typedefs_12.js +13 -13
  362. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  363. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  364. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  365. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  366. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  367. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  368. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  369. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  370. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  371. package/SVF-doxygen/html/search/typedefs_9.js +4 -6
  372. package/SVF-doxygen/html/search/typedefs_a.js +30 -29
  373. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  374. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  375. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  376. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  377. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  378. package/SVF-doxygen/html/search/variables_0.js +171 -177
  379. package/SVF-doxygen/html/search/variables_1.js +78 -77
  380. package/SVF-doxygen/html/search/variables_10.js +98 -98
  381. package/SVF-doxygen/html/search/variables_11.js +47 -47
  382. package/SVF-doxygen/html/search/variables_12.js +93 -93
  383. package/SVF-doxygen/html/search/variables_13.js +76 -76
  384. package/SVF-doxygen/html/search/variables_14.js +14 -14
  385. package/SVF-doxygen/html/search/variables_15.js +49 -49
  386. package/SVF-doxygen/html/search/variables_16.js +11 -11
  387. package/SVF-doxygen/html/search/variables_17.js +1 -1
  388. package/SVF-doxygen/html/search/variables_18.js +17 -17
  389. package/SVF-doxygen/html/search/variables_2.js +40 -40
  390. package/SVF-doxygen/html/search/variables_3.js +143 -143
  391. package/SVF-doxygen/html/search/variables_4.js +51 -51
  392. package/SVF-doxygen/html/search/variables_5.js +39 -39
  393. package/SVF-doxygen/html/search/variables_6.js +66 -66
  394. package/SVF-doxygen/html/search/variables_7.js +33 -34
  395. package/SVF-doxygen/html/search/variables_8.js +8 -8
  396. package/SVF-doxygen/html/search/variables_9.js +80 -79
  397. package/SVF-doxygen/html/search/variables_a.js +4 -4
  398. package/SVF-doxygen/html/search/variables_b.js +10 -10
  399. package/SVF-doxygen/html/search/variables_c.js +44 -44
  400. package/SVF-doxygen/html/search/variables_d.js +58 -58
  401. package/SVF-doxygen/html/search/variables_e.js +123 -123
  402. package/SVF-doxygen/html/search/variables_f.js +31 -31
  403. package/SVF-doxygen/html/structSVF_1_1AbstractValue-members.html +164 -0
  404. package/SVF-doxygen/html/structSVF_1_1AbstractValue.html +2820 -0
  405. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4-members.html +84 -0
  406. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1SparseAbstractState_01_4.html +130 -0
  407. package/SVF-doxygen/html/svf-ex_8cpp.html +25 -25
  408. package/SVF-doxygen/html/svf-ex_8cpp_source.html +26 -26
  409. package/package.json +1 -1
  410. package/svf/include/AE/Core/AbstractState.h +749 -0
  411. package/svf/include/AE/Core/AbstractValue.h +514 -39
  412. package/svf/include/AE/Core/AddressValue.h +32 -25
  413. package/svf/include/AE/Core/IntervalValue.h +10 -24
  414. package/svf/include/AE/Core/RelExeState.h +1 -1
  415. package/svf/include/AE/Core/RelationSolver.h +9 -9
  416. package/svf/include/AE/Svfexe/{AbstractExecution.h → AbstractInterpretation.h} +27 -26
  417. package/svf/include/AE/Svfexe/BufOverflowChecker.h +5 -5
  418. package/svf/include/AE/Svfexe/ICFGSimplification.h +1 -2
  419. package/svf/include/AE/Svfexe/{SVFIR2ItvExeState.h → SVFIR2AbsState.h} +30 -33
  420. package/svf/lib/AE/Core/AbstractState.cpp +357 -0
  421. package/svf/lib/AE/Core/RelationSolver.cpp +31 -31
  422. package/svf/lib/AE/Core/SVFIR2Relation.cpp +17 -16
  423. package/svf/lib/AE/Svfexe/{AbstractExecution.cpp → AbstractInterpretation.cpp} +166 -156
  424. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +51 -47
  425. package/svf/lib/AE/Svfexe/{SVFIR2ItvExeState.cpp → SVFIR2AbsState.cpp} +211 -247
  426. package/svf-llvm/tools/AE/ae.cpp +105 -108
  427. package/svf-llvm/tools/Example/svf-ex.cpp +2 -2
  428. package/svf/include/AE/Core/ConsExeState.h +0 -453
  429. package/svf/include/AE/Core/ExeState.h +0 -304
  430. package/svf/include/AE/Core/IntervalExeState.h +0 -650
  431. package/svf/include/AE/Core/SingleAbsValue.h +0 -477
  432. package/svf/include/AE/Core/SymState.h +0 -221
  433. package/svf/include/AE/Svfexe/SVFIR2ConsExeState.h +0 -148
  434. package/svf/lib/AE/Core/ConsExeState.cpp +0 -603
  435. package/svf/lib/AE/Core/ExeState.cpp +0 -117
  436. package/svf/lib/AE/Core/IntervalExeState.cpp +0 -329
  437. package/svf/lib/AE/Core/SymState.cpp +0 -37
  438. package/svf/lib/AE/Svfexe/SVFIR2ConsExeState.cpp +0 -772
@@ -61,11 +61,12 @@ std::string IntervalToIntStr(const IntervalValue& inv)
61
61
 
62
62
  void BufOverflowChecker::handleSVFStatement(const SVFStmt *stmt)
63
63
  {
64
- AbstractExecution::handleSVFStatement(stmt);
64
+ AbstractInterpretation::handleSVFStatement(stmt);
65
65
  // for gep stmt, add the gep stmt to the addrToGep map
66
66
  if (const GepStmt *gep = SVFUtil::dyn_cast<GepStmt>(stmt))
67
67
  {
68
- for (NodeID addrID: _svfir2ExeState->getAddrs(gep->getLHSVarID()))
68
+ for (NodeID addrID:
69
+ _svfir2ExeState->getAddrs(gep->getLHSVarID()).getAddrs())
69
70
  {
70
71
  NodeID objId = _svfir2ExeState->getInternalID(addrID);
71
72
  _addrToGep[objId] = gep;
@@ -125,7 +126,7 @@ bool BufOverflowChecker::detectStrcpy(const CallICFGNode *call)
125
126
  CallSite cs = SVFUtil::getSVFCallSite(call->getCallSite());
126
127
  const SVFValue* arg0Val = cs.getArgument(0);
127
128
  const SVFValue* arg1Val = cs.getArgument(1);
128
- IntervalValue strLen = getStrlen(arg1Val);
129
+ AbstractValue strLen = getStrlen(arg1Val);
129
130
  // no need to -1, since it has \0 as the last byte
130
131
  return canSafelyAccessMemory(arg0Val, strLen, call);
131
132
  }
@@ -137,7 +138,7 @@ void BufOverflowChecker::initExtFunMap()
137
138
  {
138
139
  //scanf("%d", &data);
139
140
  if (cs.arg_size() < 2) return;
140
- IntervalExeState &es = _svfir2ExeState->getEs();
141
+ SparseAbstractState&es = _svfir2ExeState->getEs();
141
142
  u32_t dst_id = _svfir->getValueNode(cs.getArgument(1));
142
143
  if (!_svfir2ExeState->inVarToAddrsTable(dst_id))
143
144
  {
@@ -147,11 +148,11 @@ void BufOverflowChecker::initExtFunMap()
147
148
  }
148
149
  else
149
150
  {
150
- ExeState::Addrs Addrs = _svfir2ExeState->getAddrs(dst_id);
151
- for (auto vaddr: Addrs)
151
+ AbstractValue Addrs = _svfir2ExeState->getAddrs(dst_id);
152
+ for (auto vaddr: Addrs.getAddrs())
152
153
  {
153
154
  u32_t objId = _svfir2ExeState->getInternalID(vaddr);
154
- IntervalValue range = _svfir2ExeState->getRangeLimitFromType(_svfir->getGNode(objId)->getType());
155
+ AbstractValue range = _svfir2ExeState->getRangeLimitFromType(_svfir->getGNode(objId)->getType());
155
156
  es.store(vaddr, range);
156
157
  }
157
158
  }
@@ -160,7 +161,7 @@ void BufOverflowChecker::initExtFunMap()
160
161
  {
161
162
  //fscanf(stdin, "%d", &data);
162
163
  if (cs.arg_size() < 3) return;
163
- IntervalExeState &es = _svfir2ExeState->getEs();
164
+ SparseAbstractState&es = _svfir2ExeState->getEs();
164
165
  u32_t dst_id = _svfir->getValueNode(cs.getArgument(2));
165
166
  if (!_svfir2ExeState->inVarToAddrsTable(dst_id))
166
167
  {
@@ -170,11 +171,11 @@ void BufOverflowChecker::initExtFunMap()
170
171
  }
171
172
  else
172
173
  {
173
- ExeState::Addrs Addrs = _svfir2ExeState->getAddrs(dst_id);
174
- for (auto vaddr: Addrs)
174
+ AbstractValue Addrs = _svfir2ExeState->getAddrs(dst_id);
175
+ for (auto vaddr: Addrs.getAddrs())
175
176
  {
176
177
  u32_t objId = _svfir2ExeState->getInternalID(vaddr);
177
- IntervalValue range = _svfir2ExeState->getRangeLimitFromType(_svfir->getGNode(objId)->getType());
178
+ AbstractValue range = _svfir2ExeState->getRangeLimitFromType(_svfir->getGNode(objId)->getType());
178
179
  es.store(vaddr, range);
179
180
  }
180
181
  }
@@ -192,12 +193,12 @@ void BufOverflowChecker::initExtFunMap()
192
193
  auto sse_fread = [&](const CallSite &cs)
193
194
  {
194
195
  if (cs.arg_size() < 3) return;
195
- IntervalExeState &es = _svfir2ExeState->getEs();
196
+ SparseAbstractState&es = _svfir2ExeState->getEs();
196
197
  u32_t block_count_id = _svfir->getValueNode(cs.getArgument(2));
197
198
  u32_t block_size_id = _svfir->getValueNode(cs.getArgument(1));
198
- IntervalValue block_count = es[block_count_id];
199
- IntervalValue block_size = es[block_size_id];
200
- IntervalValue block_byte = block_count * block_size;
199
+ AbstractValue block_count = es[block_count_id];
200
+ AbstractValue block_size = es[block_size_id];
201
+ AbstractValue block_byte = block_count * block_size;
201
202
  canSafelyAccessMemory(cs.getArgument(0), block_byte, _svfir->getICFG()->getICFGNode(cs.getInstruction()));
202
203
  };
203
204
  _func_map["fread"] = sse_fread;
@@ -210,7 +211,7 @@ void BufOverflowChecker::initExtFunMap()
210
211
  auto sse_snprintf = [&](const CallSite &cs)
211
212
  {
212
213
  if (cs.arg_size() < 2) return;
213
- IntervalExeState &es = _svfir2ExeState->getEs();
214
+ SparseAbstractState&es = _svfir2ExeState->getEs();
214
215
  u32_t size_id = _svfir->getValueNode(cs.getArgument(1));
215
216
  u32_t dst_id = _svfir->getValueNode(cs.getArgument(0));
216
217
  // get elem size of arg2
@@ -228,7 +229,7 @@ void BufOverflowChecker::initExtFunMap()
228
229
  return;
229
230
  // assert(false && "we cannot support this type");
230
231
  }
231
- IntervalValue size = es[size_id] * IntervalValue(elemSize) - IntervalValue(1);
232
+ AbstractValue size = es[size_id] * IntervalValue(elemSize) - IntervalValue(1);
232
233
  if (!es.inVarToAddrsTable(dst_id))
233
234
  {
234
235
  if (Options::BufferOverflowCheck())
@@ -259,12 +260,12 @@ void BufOverflowChecker::initExtFunMap()
259
260
  // itoa(num, ch, 10);
260
261
  // num: int, ch: char*, 10 is decimal
261
262
  if (cs.arg_size() < 3) return;
262
- IntervalExeState &es = _svfir2ExeState->getEs();
263
+ SparseAbstractState&es = _svfir2ExeState->getEs();
263
264
  u32_t num_id = _svfir->getValueNode(cs.getArgument(0));
264
265
 
265
- u32_t num = (u32_t) es[num_id].getNumeral();
266
+ u32_t num = (u32_t) es[num_id].getInterval().getNumeral();
266
267
  std::string snum = std::to_string(num);
267
- canSafelyAccessMemory(cs.getArgument(1), IntervalValue((s32_t)snum.size()), _svfir->getICFG()->getICFGNode(cs.getInstruction()));
268
+ canSafelyAccessMemory(cs.getArgument(1), AbstractValue((s32_t)snum.size()), _svfir->getICFG()->getICFGNode(cs.getInstruction()));
268
269
  };
269
270
  _func_map["itoa"] = sse_itoa;
270
271
 
@@ -274,8 +275,8 @@ void BufOverflowChecker::initExtFunMap()
274
275
  // check the arg size
275
276
  if (cs.arg_size() < 1) return;
276
277
  const SVFValue* strValue = cs.getArgument(0);
277
- IntervalExeState &es = _svfir2ExeState->getEs();
278
- IntervalValue dst_size = getStrlen(strValue);
278
+ SparseAbstractState&es = _svfir2ExeState->getEs();
279
+ AbstractValue dst_size = getStrlen(strValue);
279
280
  u32_t elemSize = 1;
280
281
  if (strValue->getType()->isArrayTy())
281
282
  {
@@ -283,7 +284,10 @@ void BufOverflowChecker::initExtFunMap()
283
284
  }
284
285
  else if (strValue->getType()->isPointerTy())
285
286
  {
286
- elemSize = getPointeeElement(_svfir->getValueNode(strValue))->getByteSize();
287
+ if (const SVFType* pointee = getPointeeElement(_svfir->getValueNode(strValue)))
288
+ elemSize = pointee->getByteSize();
289
+ else
290
+ elemSize = 1;
287
291
  }
288
292
  u32_t lhsId = _svfir->getValueNode(cs.getInstruction());
289
293
  es[lhsId] = dst_size / IntervalValue(elemSize);
@@ -295,9 +299,9 @@ void BufOverflowChecker::initExtFunMap()
295
299
  {
296
300
  // recv(sockfd, buf, len, flags);
297
301
  if (cs.arg_size() < 4) return;
298
- IntervalExeState &es = _svfir2ExeState->getEs();
302
+ SparseAbstractState&es = _svfir2ExeState->getEs();
299
303
  u32_t len_id = _svfir->getValueNode(cs.getArgument(2));
300
- IntervalValue len = es[len_id] - IntervalValue(1);
304
+ AbstractValue len = es[len_id] - IntervalValue(1);
301
305
  u32_t lhsId = _svfir->getValueNode(cs.getInstruction());
302
306
  es[lhsId] = len;
303
307
  canSafelyAccessMemory(cs.getArgument(1), len, _svfir->getICFG()->getICFGNode(cs.getInstruction()));;
@@ -310,9 +314,9 @@ void BufOverflowChecker::initExtFunMap()
310
314
  _checkpoints.erase(callNode);
311
315
  //void SAFE_BUFACCESS(void* data, int size);
312
316
  if (cs.arg_size() < 2) return;
313
- IntervalExeState &es = _svfir2ExeState->getEs();
317
+ SparseAbstractState&es = _svfir2ExeState->getEs();
314
318
  u32_t size_id = _svfir->getValueNode(cs.getArgument(1));
315
- IntervalValue val = es[size_id];
319
+ AbstractValue val = es[size_id];
316
320
  if (val.isBottom())
317
321
  {
318
322
  val = IntervalValue(0);
@@ -340,9 +344,9 @@ void BufOverflowChecker::initExtFunMap()
340
344
  _checkpoints.erase(callNode);
341
345
  //void UNSAFE_BUFACCESS(void* data, int size);
342
346
  if (cs.arg_size() < 2) return;
343
- IntervalExeState &es = _svfir2ExeState->getEs();
347
+ SparseAbstractState&es = _svfir2ExeState->getEs();
344
348
  u32_t size_id = _svfir->getValueNode(cs.getArgument(1));
345
- IntervalValue val = es[size_id];
349
+ AbstractValue val = es[size_id];
346
350
  if (val.isBottom())
347
351
  {
348
352
  assert(false && "UNSAFE_BUFACCESS size is bottom");
@@ -385,9 +389,9 @@ bool BufOverflowChecker::detectStrcat(const CallICFGNode *call)
385
389
  CallSite cs = SVFUtil::getSVFCallSite(call->getCallSite());
386
390
  const SVFValue* arg0Val = cs.getArgument(0);
387
391
  const SVFValue* arg1Val = cs.getArgument(1);
388
- IntervalValue strLen0 = getStrlen(arg0Val);
389
- IntervalValue strLen1 = getStrlen(arg1Val);
390
- IntervalValue totalLen = strLen0 + strLen1;
392
+ AbstractValue strLen0 = getStrlen(arg0Val);
393
+ AbstractValue strLen1 = getStrlen(arg1Val);
394
+ AbstractValue totalLen = strLen0 + strLen1;
391
395
  return canSafelyAccessMemory(arg0Val, totalLen, call);
392
396
  }
393
397
  else if (std::find(strncatGroup.begin(), strncatGroup.end(), fun->getName()) != strncatGroup.end())
@@ -395,9 +399,9 @@ bool BufOverflowChecker::detectStrcat(const CallICFGNode *call)
395
399
  CallSite cs = SVFUtil::getSVFCallSite(call->getCallSite());
396
400
  const SVFValue* arg0Val = cs.getArgument(0);
397
401
  const SVFValue* arg2Val = cs.getArgument(2);
398
- IntervalValue arg2Num = _svfir2ExeState->getEs()[_svfir->getValueNode(arg2Val)];
399
- IntervalValue strLen0 = getStrlen(arg0Val);
400
- IntervalValue totalLen = strLen0 + arg2Num;
402
+ AbstractValue arg2Num = _svfir2ExeState->getEs()[_svfir->getValueNode(arg2Val)];
403
+ AbstractValue strLen0 = getStrlen(arg0Val);
404
+ AbstractValue totalLen = strLen0 + arg2Num;
401
405
  return canSafelyAccessMemory(arg0Val, totalLen, call);
402
406
  }
403
407
  else
@@ -409,7 +413,7 @@ bool BufOverflowChecker::detectStrcat(const CallICFGNode *call)
409
413
 
410
414
  void BufOverflowChecker::handleExtAPI(const CallICFGNode *call)
411
415
  {
412
- AbstractExecution::handleExtAPI(call);
416
+ AbstractInterpretation::handleExtAPI(call);
413
417
  const SVFFunction *fun = SVFUtil::getCallee(call->getCallSite());
414
418
  assert(fun && "SVFFunction* is nullptr");
415
419
  CallSite cs = SVFUtil::getSVFCallSite(call->getCallSite());
@@ -446,7 +450,7 @@ void BufOverflowChecker::handleExtAPI(const CallICFGNode *call)
446
450
  // loop the args and check the offset
447
451
  for (auto arg: args)
448
452
  {
449
- IntervalValue offset = _svfir2ExeState->getEs()[_svfir->getValueNode(cs.getArgument(arg.second))] - IntervalValue(1);
453
+ AbstractValue offset = _svfir2ExeState->getEs()[_svfir->getValueNode(cs.getArgument(arg.second))] - IntervalValue(1);
450
454
  canSafelyAccessMemory(cs.getArgument(arg.first), offset, call);
451
455
  }
452
456
  }
@@ -463,7 +467,7 @@ void BufOverflowChecker::handleExtAPI(const CallICFGNode *call)
463
467
  // loop the args and check the offset
464
468
  for (auto arg: args)
465
469
  {
466
- IntervalValue offset = _svfir2ExeState->getEs()[_svfir->getValueNode(cs.getArgument(arg.second))] - IntervalValue(1);
470
+ AbstractValue offset = _svfir2ExeState->getEs()[_svfir->getValueNode(cs.getArgument(arg.second))] - IntervalValue(1);
467
471
  canSafelyAccessMemory(cs.getArgument(arg.first), offset, call);
468
472
  }
469
473
  }
@@ -482,7 +486,7 @@ void BufOverflowChecker::handleExtAPI(const CallICFGNode *call)
482
486
  return;
483
487
  }
484
488
 
485
- bool BufOverflowChecker::canSafelyAccessMemory(const SVFValue *value, const IntervalValue &len, const ICFGNode *curNode)
489
+ bool BufOverflowChecker::canSafelyAccessMemory(const SVFValue *value, const AbstractValue &len, const ICFGNode *curNode)
486
490
  {
487
491
  const SVFValue *firstValue = value;
488
492
  /// Usually called by a GepStmt overflow check, or external API (like memcpy) overflow check
@@ -497,7 +501,7 @@ bool BufOverflowChecker::canSafelyAccessMemory(const SVFValue *value, const Inte
497
501
  Set<const SVFValue *> visited;
498
502
  visited.insert(value);
499
503
  Map<const ICFGNode *, IntervalValue> gep_offsets;
500
- IntervalValue total_bytes = len;
504
+ IntervalValue total_bytes = len.getInterval();
501
505
  worklist.push(value);
502
506
  std::vector<const CallICFGNode *> callstack = _callSiteStack;
503
507
  while (!worklist.empty())
@@ -551,7 +555,7 @@ bool BufOverflowChecker::canSafelyAccessMemory(const SVFValue *value, const Inte
551
555
  }
552
556
  else
553
557
  {
554
- byteOffset = _svfir2ExeState->getByteOffset(gep);
558
+ byteOffset = _svfir2ExeState->getByteOffset(gep).getInterval();
555
559
  }
556
560
  // for variable offset, join with accumulate gep offset
557
561
  gep_offsets[gep->getICFGNode()] = byteOffset;
@@ -580,7 +584,7 @@ bool BufOverflowChecker::canSafelyAccessMemory(const SVFValue *value, const Inte
580
584
  else
581
585
  {
582
586
  u32_t idx = _svfir->getValueNode(idxValue);
583
- IntervalValue idxVal = _svfir2ExeState->getEs()[idx];
587
+ IntervalValue idxVal = _svfir2ExeState->getEs()[idx].getInterval();
584
588
  if (idxVal.isBottom())
585
589
  {
586
590
  gepArrTotalByte = gepArrTotalByte + IntervalValue(0, 0);
@@ -729,7 +733,7 @@ bool BufOverflowChecker::canSafelyAccessMemory(const SVFValue *value, const Inte
729
733
 
730
734
  void BufOverflowChecker::handleICFGNode(const SVF::ICFGNode *node)
731
735
  {
732
- AbstractExecution::handleICFGNode(node);
736
+ AbstractInterpretation::handleICFGNode(node);
733
737
  detectBufOverflow(node);
734
738
  }
735
739
 
@@ -757,8 +761,8 @@ bool BufOverflowChecker::detectBufOverflow(const ICFGNode *node)
757
761
  {
758
762
  if (_svfir2ExeState->inVarToAddrsTable(load->getRHSVarID()))
759
763
  {
760
- ExeState::Addrs Addrs = _svfir2ExeState->getAddrs(load->getRHSVarID());
761
- for (auto vaddr: Addrs)
764
+ AbstractValue Addrs = _svfir2ExeState->getAddrs(load->getRHSVarID());
765
+ for (auto vaddr: Addrs.getAddrs())
762
766
  {
763
767
  u32_t objId = _svfir2ExeState->getInternalID(vaddr);
764
768
  if (_addrToGep.find(objId) != _addrToGep.end())
@@ -773,8 +777,8 @@ bool BufOverflowChecker::detectBufOverflow(const ICFGNode *node)
773
777
  {
774
778
  if (_svfir2ExeState->inVarToAddrsTable(store->getLHSVarID()))
775
779
  {
776
- ExeState::Addrs Addrs = _svfir2ExeState->getAddrs(store->getLHSVarID());
777
- for (auto vaddr: Addrs)
780
+ AbstractValue Addrs = _svfir2ExeState->getAddrs(store->getLHSVarID());
781
+ for (auto vaddr: Addrs.getAddrs())
778
782
  {
779
783
  u32_t objId = _svfir2ExeState->getInternalID(vaddr);
780
784
  if (_addrToGep.find(objId) != _addrToGep.end())