svf-tools 1.0.812 → 1.0.813

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 (279) hide show
  1. package/SVF-doxygen/html/ConsExeState_8cpp_source.html +21 -21
  2. package/SVF-doxygen/html/ConsExeState_8h_source.html +384 -385
  3. package/SVF-doxygen/html/ExeState_8cpp_source.html +24 -24
  4. package/SVF-doxygen/html/ExeState_8h_source.html +227 -217
  5. package/SVF-doxygen/html/IntervalExeState_8cpp_source.html +8 -8
  6. package/SVF-doxygen/html/IntervalExeState_8h_source.html +412 -408
  7. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +43 -43
  9. package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +18 -18
  10. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +250 -262
  11. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +103 -101
  12. package/SVF-doxygen/html/SymState_8h_source.html +1 -1
  13. package/SVF-doxygen/html/classSVF_1_1ConsExeState-members.html +74 -74
  14. package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +412 -394
  15. package/SVF-doxygen/html/classSVF_1_1ExeState-members.html +34 -34
  16. package/SVF-doxygen/html/classSVF_1_1ExeState.html +287 -272
  17. package/SVF-doxygen/html/classSVF_1_1IntervalExeState-members.html +78 -78
  18. package/SVF-doxygen/html/classSVF_1_1IntervalExeState.html +445 -434
  19. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +3 -3
  20. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState-members.html +28 -28
  21. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +77 -77
  22. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +40 -40
  23. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +372 -372
  24. package/SVF-doxygen/html/classSVF_1_1SymState.html +2 -2
  25. package/SVF-doxygen/html/functions.html +6 -6
  26. package/SVF-doxygen/html/functions_a.html +13 -8
  27. package/SVF-doxygen/html/functions_b.html +3 -3
  28. package/SVF-doxygen/html/functions_e.html +2 -2
  29. package/SVF-doxygen/html/functions_func_e.html +2 -2
  30. package/SVF-doxygen/html/functions_func_g.html +32 -35
  31. package/SVF-doxygen/html/functions_func_i.html +11 -21
  32. package/SVF-doxygen/html/functions_func_l.html +6 -6
  33. package/SVF-doxygen/html/functions_func_n.html +3 -3
  34. package/SVF-doxygen/html/functions_func_p.html +2 -2
  35. package/SVF-doxygen/html/functions_func_s.html +7 -7
  36. package/SVF-doxygen/html/functions_func_w.html +3 -3
  37. package/SVF-doxygen/html/functions_g.html +27 -30
  38. package/SVF-doxygen/html/functions_i.html +13 -23
  39. package/SVF-doxygen/html/functions_l.html +8 -8
  40. package/SVF-doxygen/html/functions_n.html +7 -7
  41. package/SVF-doxygen/html/functions_o.html +4 -4
  42. package/SVF-doxygen/html/functions_p.html +9 -9
  43. package/SVF-doxygen/html/functions_r.html +1 -1
  44. package/SVF-doxygen/html/functions_s.html +19 -17
  45. package/SVF-doxygen/html/functions_t.html +7 -7
  46. package/SVF-doxygen/html/functions_type.html +5 -0
  47. package/SVF-doxygen/html/functions_type_v.html +3 -8
  48. package/SVF-doxygen/html/functions_v.html +13 -16
  49. package/SVF-doxygen/html/functions_vars.html +6 -6
  50. package/SVF-doxygen/html/functions_vars_g.html +2 -2
  51. package/SVF-doxygen/html/functions_w.html +3 -3
  52. package/SVF-doxygen/html/search/all_0.js +4 -4
  53. package/SVF-doxygen/html/search/all_1.js +210 -209
  54. package/SVF-doxygen/html/search/all_10.js +324 -324
  55. package/SVF-doxygen/html/search/all_11.js +222 -222
  56. package/SVF-doxygen/html/search/all_12.js +544 -544
  57. package/SVF-doxygen/html/search/all_13.js +191 -191
  58. package/SVF-doxygen/html/search/all_14.js +67 -67
  59. package/SVF-doxygen/html/search/all_15.js +167 -169
  60. package/SVF-doxygen/html/search/all_16.js +63 -63
  61. package/SVF-doxygen/html/search/all_17.js +1 -1
  62. package/SVF-doxygen/html/search/all_18.js +1 -1
  63. package/SVF-doxygen/html/search/all_19.js +11 -11
  64. package/SVF-doxygen/html/search/all_1a.js +172 -172
  65. package/SVF-doxygen/html/search/all_2.js +169 -169
  66. package/SVF-doxygen/html/search/all_3.js +642 -642
  67. package/SVF-doxygen/html/search/all_4.js +233 -233
  68. package/SVF-doxygen/html/search/all_5.js +119 -119
  69. package/SVF-doxygen/html/search/all_6.js +225 -225
  70. package/SVF-doxygen/html/search/all_7.js +946 -947
  71. package/SVF-doxygen/html/search/all_9.js +481 -486
  72. package/SVF-doxygen/html/search/all_a.js +46 -46
  73. package/SVF-doxygen/html/search/all_b.js +26 -26
  74. package/SVF-doxygen/html/search/all_c.js +116 -116
  75. package/SVF-doxygen/html/search/all_d.js +196 -196
  76. package/SVF-doxygen/html/search/all_e.js +207 -207
  77. package/SVF-doxygen/html/search/all_f.js +115 -115
  78. package/SVF-doxygen/html/search/classes_0.js +26 -26
  79. package/SVF-doxygen/html/search/classes_1.js +9 -9
  80. package/SVF-doxygen/html/search/classes_10.js +73 -73
  81. package/SVF-doxygen/html/search/classes_11.js +15 -15
  82. package/SVF-doxygen/html/search/classes_12.js +2 -2
  83. package/SVF-doxygen/html/search/classes_13.js +10 -10
  84. package/SVF-doxygen/html/search/classes_14.js +14 -14
  85. package/SVF-doxygen/html/search/classes_15.js +1 -1
  86. package/SVF-doxygen/html/search/classes_2.js +80 -80
  87. package/SVF-doxygen/html/search/classes_3.js +37 -37
  88. package/SVF-doxygen/html/search/classes_4.js +9 -9
  89. package/SVF-doxygen/html/search/classes_5.js +28 -28
  90. package/SVF-doxygen/html/search/classes_6.js +104 -104
  91. package/SVF-doxygen/html/search/classes_7.js +33 -33
  92. package/SVF-doxygen/html/search/classes_8.js +56 -56
  93. package/SVF-doxygen/html/search/classes_9.js +1 -1
  94. package/SVF-doxygen/html/search/classes_a.js +12 -12
  95. package/SVF-doxygen/html/search/classes_b.js +29 -29
  96. package/SVF-doxygen/html/search/classes_c.js +6 -6
  97. package/SVF-doxygen/html/search/classes_d.js +18 -18
  98. package/SVF-doxygen/html/search/classes_e.js +36 -36
  99. package/SVF-doxygen/html/search/classes_f.js +25 -25
  100. package/SVF-doxygen/html/search/defines_0.js +3 -3
  101. package/SVF-doxygen/html/search/defines_1.js +2 -2
  102. package/SVF-doxygen/html/search/defines_2.js +30 -30
  103. package/SVF-doxygen/html/search/defines_3.js +21 -21
  104. package/SVF-doxygen/html/search/defines_4.js +2 -2
  105. package/SVF-doxygen/html/search/defines_5.js +4 -4
  106. package/SVF-doxygen/html/search/defines_6.js +2 -2
  107. package/SVF-doxygen/html/search/defines_7.js +5 -5
  108. package/SVF-doxygen/html/search/defines_8.js +11 -11
  109. package/SVF-doxygen/html/search/defines_9.js +9 -9
  110. package/SVF-doxygen/html/search/defines_a.js +2 -2
  111. package/SVF-doxygen/html/search/defines_b.js +1 -1
  112. package/SVF-doxygen/html/search/defines_c.js +3 -3
  113. package/SVF-doxygen/html/search/defines_d.js +2 -2
  114. package/SVF-doxygen/html/search/defines_e.js +7 -7
  115. package/SVF-doxygen/html/search/defines_f.js +3 -3
  116. package/SVF-doxygen/html/search/enums_0.js +3 -3
  117. package/SVF-doxygen/html/search/enums_1.js +2 -2
  118. package/SVF-doxygen/html/search/enums_10.js +1 -1
  119. package/SVF-doxygen/html/search/enums_11.js +1 -1
  120. package/SVF-doxygen/html/search/enums_2.js +8 -8
  121. package/SVF-doxygen/html/search/enums_3.js +1 -1
  122. package/SVF-doxygen/html/search/enums_4.js +3 -3
  123. package/SVF-doxygen/html/search/enums_5.js +1 -1
  124. package/SVF-doxygen/html/search/enums_6.js +2 -2
  125. package/SVF-doxygen/html/search/enums_7.js +2 -2
  126. package/SVF-doxygen/html/search/enums_8.js +4 -4
  127. package/SVF-doxygen/html/search/enums_9.js +1 -1
  128. package/SVF-doxygen/html/search/enums_a.js +1 -1
  129. package/SVF-doxygen/html/search/enums_b.js +7 -7
  130. package/SVF-doxygen/html/search/enums_c.js +1 -1
  131. package/SVF-doxygen/html/search/enums_d.js +4 -4
  132. package/SVF-doxygen/html/search/enums_e.js +2 -2
  133. package/SVF-doxygen/html/search/enums_f.js +4 -4
  134. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  135. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  136. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  137. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  138. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  139. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  140. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  141. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  142. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  143. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  144. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  145. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  146. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  147. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  148. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  149. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  150. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  151. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  152. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  153. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  154. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  155. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  156. package/SVF-doxygen/html/search/files_0.js +13 -13
  157. package/SVF-doxygen/html/search/files_1.js +7 -7
  158. package/SVF-doxygen/html/search/files_10.js +8 -8
  159. package/SVF-doxygen/html/search/files_11.js +8 -8
  160. package/SVF-doxygen/html/search/files_12.js +2 -2
  161. package/SVF-doxygen/html/search/files_2.js +55 -55
  162. package/SVF-doxygen/html/search/files_3.js +14 -14
  163. package/SVF-doxygen/html/search/files_4.js +5 -5
  164. package/SVF-doxygen/html/search/files_5.js +13 -13
  165. package/SVF-doxygen/html/search/files_6.js +9 -9
  166. package/SVF-doxygen/html/search/files_7.js +14 -14
  167. package/SVF-doxygen/html/search/files_8.js +13 -13
  168. package/SVF-doxygen/html/search/files_9.js +18 -18
  169. package/SVF-doxygen/html/search/files_a.js +3 -3
  170. package/SVF-doxygen/html/search/files_b.js +2 -2
  171. package/SVF-doxygen/html/search/files_c.js +20 -20
  172. package/SVF-doxygen/html/search/files_d.js +4 -4
  173. package/SVF-doxygen/html/search/files_e.js +62 -62
  174. package/SVF-doxygen/html/search/files_f.js +8 -8
  175. package/SVF-doxygen/html/search/functions_0.js +12 -12
  176. package/SVF-doxygen/html/search/functions_1.js +360 -360
  177. package/SVF-doxygen/html/search/functions_10.js +140 -140
  178. package/SVF-doxygen/html/search/functions_11.js +138 -138
  179. package/SVF-doxygen/html/search/functions_12.js +279 -279
  180. package/SVF-doxygen/html/search/functions_13.js +59 -59
  181. package/SVF-doxygen/html/search/functions_14.js +39 -39
  182. package/SVF-doxygen/html/search/functions_15.js +71 -71
  183. package/SVF-doxygen/html/search/functions_16.js +32 -32
  184. package/SVF-doxygen/html/search/functions_17.js +3 -3
  185. package/SVF-doxygen/html/search/functions_18.js +172 -172
  186. package/SVF-doxygen/html/search/functions_2.js +87 -87
  187. package/SVF-doxygen/html/search/functions_3.js +257 -257
  188. package/SVF-doxygen/html/search/functions_4.js +75 -75
  189. package/SVF-doxygen/html/search/functions_5.js +53 -53
  190. package/SVF-doxygen/html/search/functions_6.js +59 -59
  191. package/SVF-doxygen/html/search/functions_7.js +852 -853
  192. package/SVF-doxygen/html/search/functions_8.js +149 -149
  193. package/SVF-doxygen/html/search/functions_9.js +423 -428
  194. package/SVF-doxygen/html/search/functions_a.js +30 -30
  195. package/SVF-doxygen/html/search/functions_b.js +2 -2
  196. package/SVF-doxygen/html/search/functions_c.js +26 -26
  197. package/SVF-doxygen/html/search/functions_d.js +77 -77
  198. package/SVF-doxygen/html/search/functions_e.js +35 -35
  199. package/SVF-doxygen/html/search/functions_f.js +56 -56
  200. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  201. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  202. package/SVF-doxygen/html/search/related_0.js +2 -2
  203. package/SVF-doxygen/html/search/related_1.js +2 -2
  204. package/SVF-doxygen/html/search/related_2.js +2 -2
  205. package/SVF-doxygen/html/search/related_3.js +2 -2
  206. package/SVF-doxygen/html/search/related_4.js +2 -2
  207. package/SVF-doxygen/html/search/related_5.js +1 -1
  208. package/SVF-doxygen/html/search/related_6.js +2 -2
  209. package/SVF-doxygen/html/search/related_7.js +4 -4
  210. package/SVF-doxygen/html/search/related_8.js +2 -2
  211. package/SVF-doxygen/html/search/related_9.js +4 -4
  212. package/SVF-doxygen/html/search/related_a.js +19 -19
  213. package/SVF-doxygen/html/search/related_b.js +4 -4
  214. package/SVF-doxygen/html/search/related_c.js +1 -1
  215. package/SVF-doxygen/html/search/related_d.js +12 -12
  216. package/SVF-doxygen/html/search/related_e.js +2 -2
  217. package/SVF-doxygen/html/search/related_f.js +2 -2
  218. package/SVF-doxygen/html/search/typedefs_0.js +19 -18
  219. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  220. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  221. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  222. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  223. package/SVF-doxygen/html/search/typedefs_13.js +33 -34
  224. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  225. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  226. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  227. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  228. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  229. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  230. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  231. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  232. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  233. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  234. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  235. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  236. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  237. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  238. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  239. package/SVF-doxygen/html/search/variables_0.js +151 -151
  240. package/SVF-doxygen/html/search/variables_1.js +75 -75
  241. package/SVF-doxygen/html/search/variables_10.js +97 -97
  242. package/SVF-doxygen/html/search/variables_11.js +44 -44
  243. package/SVF-doxygen/html/search/variables_12.js +92 -92
  244. package/SVF-doxygen/html/search/variables_13.js +75 -75
  245. package/SVF-doxygen/html/search/variables_14.js +14 -14
  246. package/SVF-doxygen/html/search/variables_15.js +48 -48
  247. package/SVF-doxygen/html/search/variables_16.js +9 -9
  248. package/SVF-doxygen/html/search/variables_17.js +1 -1
  249. package/SVF-doxygen/html/search/variables_18.js +2 -2
  250. package/SVF-doxygen/html/search/variables_2.js +38 -38
  251. package/SVF-doxygen/html/search/variables_3.js +142 -142
  252. package/SVF-doxygen/html/search/variables_4.js +55 -55
  253. package/SVF-doxygen/html/search/variables_5.js +37 -37
  254. package/SVF-doxygen/html/search/variables_6.js +66 -66
  255. package/SVF-doxygen/html/search/variables_7.js +33 -33
  256. package/SVF-doxygen/html/search/variables_8.js +7 -7
  257. package/SVF-doxygen/html/search/variables_9.js +78 -78
  258. package/SVF-doxygen/html/search/variables_a.js +4 -4
  259. package/SVF-doxygen/html/search/variables_b.js +10 -10
  260. package/SVF-doxygen/html/search/variables_c.js +45 -45
  261. package/SVF-doxygen/html/search/variables_d.js +56 -56
  262. package/SVF-doxygen/html/search/variables_e.js +123 -123
  263. package/SVF-doxygen/html/search/variables_f.js +29 -29
  264. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ConsExeState_01_4.html +5 -5
  265. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +5 -5
  266. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1IntervalExeState_01_4.html +5 -5
  267. package/SVF-doxygen/html/svf-ex_8cpp.html +7 -7
  268. package/SVF-doxygen/html/svf-ex_8cpp_source.html +7 -7
  269. package/package.json +1 -1
  270. package/svf/include/AbstractExecution/ConsExeState.h +99 -96
  271. package/svf/include/AbstractExecution/ExeState.h +66 -53
  272. package/svf/include/AbstractExecution/IntervalExeState.h +66 -61
  273. package/svf/include/AbstractExecution/SVFIR2ConsExeState.h +7 -7
  274. package/svf/include/AbstractExecution/SVFIR2ItvExeState.h +20 -14
  275. package/svf/lib/AbstractExecution/ConsExeState.cpp +13 -13
  276. package/svf/lib/AbstractExecution/ExeState.cpp +19 -19
  277. package/svf/lib/AbstractExecution/IntervalExeState.cpp +4 -4
  278. package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +36 -36
  279. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +80 -92
@@ -478,7 +478,7 @@ Functions</h2></td></tr>
478
478
  </div>
479
479
  </div><!-- contents -->
480
480
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
481
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00971">SVFIR2ItvExeState.cpp:971</a></div></div>
481
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00959">SVFIR2ItvExeState.cpp:959</a></div></div>
482
482
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
483
483
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
484
484
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
@@ -487,7 +487,7 @@ Functions</h2></td></tr>
487
487
  <div class="ttc" id="aclassSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
488
488
  <div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00748">SVFStatements.h:748</a></div></div>
489
489
  <div class="ttc" id="aclassSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00170">SVFG.h:170</a></div></div>
490
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00901">SVFIR2ItvExeState.cpp:901</a></div></div>
490
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00897">SVFIR2ItvExeState.cpp:897</a></div></div>
491
491
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
492
492
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
493
493
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html_a6c68f52dd90728073fb79141df9b0661"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">SVF::ICFGNode::getSVFStmts</a></div><div class="ttdeci">const SVFStmtList &amp; getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00127">ICFGNode.h:127</a></div></div>
@@ -500,31 +500,31 @@ Functions</h2></td></tr>
500
500
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00871">SVFStatements.h:871</a></div></div>
501
501
  <div class="ttc" id="aclassSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
502
502
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00586">SVFIR2ItvExeState.cpp:586</a></div></div>
503
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00875">SVFIR2ItvExeState.cpp:875</a></div></div>
503
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00871">SVFIR2ItvExeState.cpp:871</a></div></div>
504
504
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
505
505
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
506
506
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
507
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00929">SVFIR2ItvExeState.cpp:929</a></div></div>
507
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00925">SVFIR2ItvExeState.cpp:925</a></div></div>
508
508
  <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00545">SVFStatements.h:545</a></div></div>
509
509
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00770">SVFIR2ItvExeState.cpp:770</a></div></div>
510
510
  <div class="ttc" id="aclassOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector&lt; std::string &gt; parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
511
511
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html">SVF::SVFIR2ItvExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00041">SVFIR2ItvExeState.h:41</a></div></div>
512
512
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00957">SVFStatements.h:957</a></div></div>
513
513
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
514
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00986">SVFIR2ItvExeState.cpp:986</a></div></div>
514
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00974">SVFIR2ItvExeState.cpp:974</a></div></div>
515
515
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
516
516
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00524">SVFIR2ItvExeState.cpp:524</a></div></div>
517
517
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
518
518
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class.</div></div>
519
519
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
520
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00816">SVFIR2ItvExeState.cpp:816</a></div></div>
520
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00812">SVFIR2ItvExeState.cpp:812</a></div></div>
521
521
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
522
522
  <div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
523
523
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ae1323233941cdc9b99332e4b954a2217"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">SVF::PointerAnalysis::alias</a></div><div class="ttdeci">virtual AliasResult alias(const SVFValue *V1, const SVFValue *V2)=0</div><div class="ttdoc">Interface exposed to users of our pointer analysis, given Value infos.</div></div>
524
524
  <div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
525
525
  <div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00424">SVFStatements.h:424</a></div></div>
526
526
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
527
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00845">SVFIR2ItvExeState.cpp:845</a></div></div>
527
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00841">SVFIR2ItvExeState.cpp:841</a></div></div>
528
528
  <div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00461">SVFStatements.h:461</a></div></div>
529
529
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00217">GenericGraph.h:217</a></div></div>
530
530
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00170">SVFIR.h:170</a></div></div>
@@ -307,7 +307,7 @@ $(function() {
307
307
  <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
308
308
  </div><!-- fragment --></div><!-- contents -->
309
309
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
310
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00971">SVFIR2ItvExeState.cpp:971</a></div></div>
310
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00959">SVFIR2ItvExeState.cpp:959</a></div></div>
311
311
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
312
312
  <div class="ttc" id="asvf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00205">svf-ex.cpp:205</a></div></div>
313
313
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
@@ -318,7 +318,7 @@ $(function() {
318
318
  <div class="ttc" id="aclassSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
319
319
  <div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00748">SVFStatements.h:748</a></div></div>
320
320
  <div class="ttc" id="aclassSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00170">SVFG.h:170</a></div></div>
321
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00901">SVFIR2ItvExeState.cpp:901</a></div></div>
321
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00897">SVFIR2ItvExeState.cpp:897</a></div></div>
322
322
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00138">IRGraph.h:138</a></div></div>
323
323
  <div class="ttc" id="aLLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
324
324
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
@@ -335,12 +335,12 @@ $(function() {
335
335
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00871">SVFStatements.h:871</a></div></div>
336
336
  <div class="ttc" id="aclassSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
337
337
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00586">SVFIR2ItvExeState.cpp:586</a></div></div>
338
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00875">SVFIR2ItvExeState.cpp:875</a></div></div>
338
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00871">SVFIR2ItvExeState.cpp:871</a></div></div>
339
339
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
340
340
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
341
341
  <div class="ttc" id="asvf-ex_8cpp_html_a8fa9e6583c354b1883a32b8abf98779f"><div class="ttname"><a href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a></div><div class="ttdeci">void traverseOnSVFStmt(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00077">svf-ex.cpp:77</a></div></div>
342
342
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
343
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00929">SVFIR2ItvExeState.cpp:929</a></div></div>
343
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00925">SVFIR2ItvExeState.cpp:925</a></div></div>
344
344
  <div class="ttc" id="aCommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
345
345
  <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00545">SVFStatements.h:545</a></div></div>
346
346
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00770">SVFIR2ItvExeState.cpp:770</a></div></div>
@@ -351,13 +351,13 @@ $(function() {
351
351
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00957">SVFStatements.h:957</a></div></div>
352
352
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
353
353
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
354
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00986">SVFIR2ItvExeState.cpp:986</a></div></div>
354
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00974">SVFIR2ItvExeState.cpp:974</a></div></div>
355
355
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
356
356
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00524">SVFIR2ItvExeState.cpp:524</a></div></div>
357
357
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
358
358
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class.</div></div>
359
359
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
360
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00816">SVFIR2ItvExeState.cpp:816</a></div></div>
360
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00812">SVFIR2ItvExeState.cpp:812</a></div></div>
361
361
  <div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a></div><div class="ttdeci">AliasResult</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00618">SVFType.h:618</a></div></div>
362
362
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
363
363
  <div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
@@ -367,7 +367,7 @@ $(function() {
367
367
  <div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00424">SVFStatements.h:424</a></div></div>
368
368
  <div class="ttc" id="aSVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
369
369
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
370
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00845">SVFIR2ItvExeState.cpp:845</a></div></div>
370
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00841">SVFIR2ItvExeState.cpp:841</a></div></div>
371
371
  <div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00461">SVFStatements.h:461</a></div></div>
372
372
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00217">GenericGraph.h:217</a></div></div>
373
373
  <div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00049">SVFGBuilder.cpp:49</a></div></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.812",
3
+ "version": "1.0.813",
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": {
@@ -54,10 +54,6 @@ public:
54
54
 
55
55
  static ConsExeState globalConsES;
56
56
 
57
- protected:
58
- VarToValMap _varToVal;
59
- LocToValMap _locToVal;
60
-
61
57
  public:
62
58
  ConsExeState(): ExeState(ExeState::SingleValueK) {}
63
59
 
@@ -101,8 +97,7 @@ public:
101
97
 
102
98
  using ExeState::operator==;
103
99
  using ExeState::operator!=;
104
- /// Exposed APIs
105
- //{%
100
+
106
101
  bool operator==(const ConsExeState &rhs) const;
107
102
 
108
103
  bool operator!=(const ConsExeState &other) const
@@ -114,113 +109,141 @@ public:
114
109
 
115
110
  u32_t hash() const override;
116
111
 
117
- /// Merge rhs into this
118
- bool joinWith(const ConsExeState &rhs);
112
+ protected:
119
113
 
120
- /// Build global execution state
121
- void buildGlobES(ConsExeState &globES, Set<u32_t> &vars);
114
+ VarToValMap _varToVal; ///< Map a variable (symbol) to its constant value
115
+ LocToValMap _locToVal; ///< Map a memory address to its stored constant value
122
116
 
123
- /// Update symbolic states based on the summary/side-effect of callee
124
- void applySummary(const ConsExeState &summary);
117
+ public:
125
118
 
126
- /// Whether state is null state (uninitialized state)
127
- inline bool isNullState() const
119
+ /// get memory addresses of variable
120
+ virtual Addrs &getAddrs(u32_t id) override
128
121
  {
129
- return _varToVal.size() == 1 && eq((*_varToVal.begin()).second, -1) && _locToVal.empty();
122
+ auto it = globalConsES._varToAddrs.find(id);
123
+ if (it != globalConsES._varToAddrs.end()) return it->second;
124
+ return _varToAddrs[id];
130
125
  }
131
126
 
132
- /// Print values of all expressions
133
- void printExprValues() const;
134
-
135
- /// Print values of all expressions
136
- void printExprValues(std::ostream &oss) const override;
137
-
138
- std::string toString() const override;
139
-
140
- std::string pcToString() const;
141
-
142
- std::string varToString(u32_t varId) const;
143
-
144
- std::string locToString(u32_t objId) const;
145
-
146
- bool applySelect(u32_t res, u32_t cond, u32_t top, u32_t fop);
127
+ /// get constant value of variable
128
+ inline SingleAbsValue &operator[](u32_t varId)
129
+ {
130
+ auto it = globalConsES._varToVal.find(varId);
131
+ if (it != globalConsES._varToVal.end())
132
+ return it->second;
133
+ else
134
+ return _varToVal[varId];
135
+ }
147
136
 
148
- bool applyPhi(u32_t res, std::vector<u32_t> &ops);
137
+ /// whether the variable is in varToAddrs table
138
+ virtual inline bool inVarToAddrsTable(u32_t id) const override
139
+ {
140
+ return _varToAddrs.find(id) != _varToAddrs.end() ||
141
+ globalConsES._varToAddrs.find(id) != globalConsES._varToAddrs.end();
142
+ }
149
143
 
150
- inline bool inVarToVal(u32_t varId) const
144
+ /// whether the variable is in varToVal table
145
+ inline bool inVarToValTable(u32_t varId) const
151
146
  {
152
147
  return _varToVal.count(varId) || globalConsES._varToVal.count(varId);
153
148
  }
154
149
 
155
- inline bool inLocalLocToVal(const SingleAbsValue &loc) const
150
+ /// whether the memory address stores memory addresses
151
+ virtual inline bool inLocToAddrsTable(u32_t id) const override
156
152
  {
157
- assert(loc.is_numeral() && "location must be numeral");
158
- s32_t virAddr = z3Expr2NumValue(loc);
159
- assert(isVirtualMemAddress(virAddr) && "Pointer operand is not a physical address?");
160
- u32_t objId = getInternalID(virAddr);
161
- assert(getInternalID(objId) == objId && "SVFVar idx overflow > 0x7f000000?");
162
- return inLocalLocToVal(objId);
153
+ return globalConsES._locToAddrs.find(id) != globalConsES._locToAddrs.end() || inLocalLocToAddrsTable(id);
163
154
  }
164
155
 
165
- inline bool inLocalLocToVal(u32_t varId) const
156
+ /// whether the memory address stores constant value
157
+ inline bool inLocToValTable(u32_t varId) const
166
158
  {
167
- return _locToVal.count(varId);
159
+ return inLocalLocToValTable(varId) || globalConsES._locToVal.count(varId);
168
160
  }
169
161
 
170
- inline bool inLocToVal(u32_t varId) const
162
+ inline const VarToValMap &getVarToVal() const
171
163
  {
172
- return inLocalLocToVal(varId) || globalConsES._locToVal.count(varId);
164
+ return _varToVal;
173
165
  }
174
166
 
175
- inline bool equalVar(u32_t lhs, u32_t rhs)
167
+ inline const LocToValMap &getLocToVal() const
176
168
  {
177
- if (!inVarToVal(lhs) || !inVarToVal(rhs)) return false;
178
- return eq((*this)[lhs], (*this)[rhs]);
169
+ return _locToVal;
179
170
  }
180
- //%}
181
171
 
182
- virtual inline bool inVarToAddrsTable(u32_t id) const override
172
+ virtual inline bool inLocalLocToAddrsTable(u32_t id) const
183
173
  {
184
- return _varToVAddrs.find(id) != _varToVAddrs.end() ||
185
- globalConsES._varToVAddrs.find(id) != globalConsES._varToVAddrs.end();
174
+ return _locToAddrs.find(id) != _locToAddrs.end();
186
175
  }
187
176
 
188
- virtual inline bool inLocToAddrsTable(u32_t id) const override
177
+ inline bool inLocalLocToValTable(u32_t varId) const
189
178
  {
190
- return globalConsES._locToVAddrs.find(id) != globalConsES._locToVAddrs.end() || inLocalLocToAddrsTable(id);
179
+ return _locToVal.count(varId);
191
180
  }
192
181
 
193
- virtual inline bool inLocalLocToAddrsTable(u32_t id) const
182
+ inline bool inLocalLocToValTable(const SingleAbsValue& addr) const
194
183
  {
195
- return _locToVAddrs.find(id) != _locToVAddrs.end();
184
+ return _locToVal.count(getInternalID(addr.getNumeral()));
196
185
  }
197
186
 
198
- virtual VAddrs &getVAddrs(u32_t id) override
187
+ public:
188
+
189
+ /// Merge rhs into this
190
+ bool joinWith(const ConsExeState &rhs);
191
+
192
+ /// Build global execution state
193
+ void buildGlobES(ConsExeState &globES, Set<u32_t> &vars);
194
+
195
+ /// Update symbolic states based on the summary/side-effect of callee
196
+ void applySummary(const ConsExeState &summary);
197
+
198
+ inline bool equalVar(u32_t lhs, u32_t rhs)
199
199
  {
200
- auto it = globalConsES._varToVAddrs.find(id);
201
- if (it != globalConsES._varToVAddrs.end()) return it->second;
202
- return _varToVAddrs[id];
200
+ if (!inVarToValTable(lhs) || !inVarToValTable(rhs)) return false;
201
+ return eq((*this)[lhs], (*this)[rhs]);
203
202
  }
204
203
 
205
- virtual VAddrs &loadVAddrs(u32_t addr) override
204
+ /// Whether state is null state (uninitialized state)
205
+ inline bool isNullState() const
206
+ {
207
+ return _varToVal.size() == 1 && eq((*_varToVal.begin()).second, -1) && _locToVal.empty();
208
+ }
209
+
210
+ /// Print values of all expressions
211
+ void printExprValues() const;
212
+
213
+ /// Print values of all expressions
214
+ void printExprValues(std::ostream &oss) const override;
215
+
216
+ std::string toString() const override;
217
+
218
+ std::string pcToString() const;
219
+
220
+ std::string varToString(u32_t varId) const;
221
+
222
+ std::string locToString(u32_t objId) const;
223
+
224
+ bool applySelect(u32_t res, u32_t cond, u32_t top, u32_t fop);
225
+
226
+ bool applyPhi(u32_t res, std::vector<u32_t> &ops);
227
+
228
+ virtual Addrs &loadAddrs(u32_t addr) override
206
229
  {
207
230
  assert(isVirtualMemAddress(addr) && "not virtual address?");
208
231
  u32_t objId = getInternalID(addr);
209
- auto it = _locToVAddrs.find(objId);
210
- if (it != _locToVAddrs.end())
232
+ auto it = _locToAddrs.find(objId);
233
+ if (it != _locToAddrs.end())
211
234
  {
212
235
  return it->second;
213
236
  }
214
237
  else
215
238
  {
216
- auto globIt = globalConsES._locToVAddrs.find(objId);
217
- if (globIt != globalConsES._locToVAddrs.end())
239
+ auto globIt = globalConsES._locToAddrs.find(objId);
240
+ if (globIt != globalConsES._locToAddrs.end())
218
241
  {
219
242
  return globIt->second;
220
243
  }
221
244
  else
222
245
  {
223
- return getVAddrs(0);
246
+ return getAddrs(0);
224
247
  }
225
248
  }
226
249
  }
@@ -228,15 +251,15 @@ public:
228
251
  virtual std::string varToAddrs(u32_t varId) const override
229
252
  {
230
253
  std::stringstream exprName;
231
- auto it = _varToVAddrs.find(varId);
232
- if (it == _varToVAddrs.end())
254
+ auto it = _varToAddrs.find(varId);
255
+ if (it == _varToAddrs.end())
233
256
  {
234
- auto git = globalConsES._varToVAddrs.find(varId);
235
- if (git == globalConsES._varToVAddrs.end())
257
+ auto git = globalConsES._varToAddrs.find(varId);
258
+ if (git == globalConsES._varToAddrs.end())
236
259
  exprName << "Var not in varToAddrs!\n";
237
260
  else
238
261
  {
239
- const VAddrs &vaddrs = git->second;
262
+ const Addrs &vaddrs = git->second;
240
263
  if (vaddrs.size() == 1)
241
264
  {
242
265
  exprName << "addr: {" << std::dec << getInternalID(*vaddrs.begin()) << "}\n";
@@ -254,7 +277,7 @@ public:
254
277
  }
255
278
  else
256
279
  {
257
- const VAddrs &vaddrs = it->second;
280
+ const Addrs &vaddrs = it->second;
258
281
  if (vaddrs.size() == 1)
259
282
  {
260
283
  exprName << "addr: {" << std::dec << getInternalID(*vaddrs.begin()) << "}\n";
@@ -275,15 +298,15 @@ public:
275
298
  virtual std::string locToAddrs(u32_t objId) const override
276
299
  {
277
300
  std::stringstream exprName;
278
- auto it = _locToVAddrs.find(objId);
279
- if (it == _locToVAddrs.end())
301
+ auto it = _locToAddrs.find(objId);
302
+ if (it == _locToAddrs.end())
280
303
  {
281
- auto git = globalConsES._locToVAddrs.find(objId);
282
- if (git == globalConsES._locToVAddrs.end())
304
+ auto git = globalConsES._locToAddrs.find(objId);
305
+ if (git == globalConsES._locToAddrs.end())
283
306
  exprName << "Obj not in locToVal!\n";
284
307
  else
285
308
  {
286
- const VAddrs &vaddrs = git->second;
309
+ const Addrs &vaddrs = git->second;
287
310
  if (vaddrs.size() == 1)
288
311
  {
289
312
  exprName << "addr: {" << std::dec << getInternalID(*vaddrs.begin()) << "}\n";
@@ -301,7 +324,7 @@ public:
301
324
  }
302
325
  else
303
326
  {
304
- const VAddrs &vaddrs = it->second;
327
+ const Addrs &vaddrs = it->second;
305
328
  if (vaddrs.size() == 1)
306
329
  {
307
330
  exprName << "addr: {" << std::dec << getInternalID(*vaddrs.begin()) << "}\n";
@@ -338,22 +361,10 @@ public:
338
361
 
339
362
  public:
340
363
 
341
- inline const VarToValMap &getVarToVal() const
342
- {
343
- return _varToVal;
344
- }
345
-
346
- inline const LocToValMap &getLocToVal() const
347
- {
348
- return _locToVal;
349
- }
350
364
 
351
365
 
352
366
  s64_t getNumber(u32_t lhs);
353
367
 
354
- public:
355
-
356
-
357
368
  static inline SingleAbsValue getIntOneZ3Expr()
358
369
  {
359
370
  return getContext().int_val(1);
@@ -375,14 +386,6 @@ public:
375
386
  }
376
387
 
377
388
  public:
378
- inline SingleAbsValue &operator[](u32_t varId)
379
- {
380
- auto it = globalConsES._varToVal.find(varId);
381
- if (it != globalConsES._varToVal.end())
382
- return it->second;
383
- else
384
- return _varToVal[varId];
385
- }
386
389
 
387
390
  /// Store value to location
388
391
  bool store(const SingleAbsValue &loc, const SingleAbsValue &value);