svf-tools 1.0.811 → 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 (341) hide show
  1. package/SVF-doxygen/html/AccessPath_8cpp_source.html +159 -136
  2. package/SVF-doxygen/html/AccessPath_8h_source.html +45 -42
  3. package/SVF-doxygen/html/ConsExeState_8cpp_source.html +21 -21
  4. package/SVF-doxygen/html/ConsExeState_8h_source.html +384 -385
  5. package/SVF-doxygen/html/ConsG_8cpp_source.html +8 -8
  6. package/SVF-doxygen/html/ContextDDA_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/ExeState_8cpp_source.html +24 -24
  8. package/SVF-doxygen/html/ExeState_8h_source.html +227 -217
  9. package/SVF-doxygen/html/FlowDDA_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/ICFGEdge_8h_source.html +2 -2
  12. package/SVF-doxygen/html/ICFG_8cpp_source.html +2 -2
  13. package/SVF-doxygen/html/IRGraph_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/IntervalExeState_8cpp_source.html +8 -8
  15. package/SVF-doxygen/html/IntervalExeState_8h_source.html +412 -408
  16. package/SVF-doxygen/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  17. package/SVF-doxygen/html/RelationSolver_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +13 -13
  19. package/SVF-doxygen/html/SVFFileSystem_8h_source.html +11 -11
  20. package/SVF-doxygen/html/SVFIR2ConsExeState_8cpp_source.html +273 -272
  21. package/SVF-doxygen/html/SVFIR2ConsExeState_8h_source.html +28 -28
  22. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +980 -973
  23. package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +169 -169
  24. package/SVF-doxygen/html/SVFIR2Relation_8cpp_source.html +33 -33
  25. package/SVF-doxygen/html/SVFIRBuilder_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/SVFIRBuilder_8h_source.html +11 -11
  27. package/SVF-doxygen/html/SVFIR_8cpp_source.html +14 -14
  28. package/SVF-doxygen/html/SVFIR_8h_source.html +11 -11
  29. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +19 -19
  30. package/SVF-doxygen/html/SVFStatements_8h_source.html +829 -830
  31. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +7 -7
  32. package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +2 -2
  33. package/SVF-doxygen/html/SymState_8h_source.html +1 -1
  34. package/SVF-doxygen/html/VFGNode_8h_source.html +7 -7
  35. package/SVF-doxygen/html/VFG_8cpp_source.html +15 -15
  36. package/SVF-doxygen/html/VFG_8h_source.html +10 -10
  37. package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +18 -17
  38. package/SVF-doxygen/html/classSVF_1_1AccessPath.html +206 -153
  39. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +68 -68
  40. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +51 -51
  41. package/SVF-doxygen/html/classSVF_1_1BranchVFGNode.html +3 -3
  42. package/SVF-doxygen/html/classSVF_1_1CallPE.html +35 -35
  43. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +97 -97
  44. package/SVF-doxygen/html/classSVF_1_1ConsExeState-members.html +74 -74
  45. package/SVF-doxygen/html/classSVF_1_1ConsExeState.html +412 -394
  46. package/SVF-doxygen/html/classSVF_1_1ConstraintGraph.html +8 -8
  47. package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +1 -1
  48. package/SVF-doxygen/html/classSVF_1_1ExeState-members.html +34 -34
  49. package/SVF-doxygen/html/classSVF_1_1ExeState.html +287 -272
  50. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +1 -1
  51. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
  52. package/SVF-doxygen/html/classSVF_1_1GepStmt-members.html +1 -1
  53. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +37 -37
  54. package/SVF-doxygen/html/classSVF_1_1ICFG.html +2 -2
  55. package/SVF-doxygen/html/classSVF_1_1IntervalExeState-members.html +78 -78
  56. package/SVF-doxygen/html/classSVF_1_1IntervalExeState.html +445 -434
  57. package/SVF-doxygen/html/classSVF_1_1MultiOpndStmt.html +48 -48
  58. package/SVF-doxygen/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  59. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +46 -46
  60. package/SVF-doxygen/html/classSVF_1_1RelationSolver.html +3 -3
  61. package/SVF-doxygen/html/classSVF_1_1RetPE.html +35 -35
  62. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +13 -13
  63. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState-members.html +28 -28
  64. package/SVF-doxygen/html/classSVF_1_1SVFIR2ConsExeState.html +296 -295
  65. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState-members.html +15 -16
  66. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1087 -1128
  67. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +4 -4
  68. package/SVF-doxygen/html/classSVF_1_1SVFIRReader.html +1 -1
  69. package/SVF-doxygen/html/classSVF_1_1SVFIRWriter.html +1 -1
  70. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +7 -7
  71. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +38 -38
  72. package/SVF-doxygen/html/classSVF_1_1SymState.html +2 -2
  73. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +22 -22
  74. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +21 -21
  75. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +44 -44
  76. package/SVF-doxygen/html/classSVF_1_1VFG.html +15 -15
  77. package/SVF-doxygen/html/functions.html +6 -6
  78. package/SVF-doxygen/html/functions_a.html +13 -8
  79. package/SVF-doxygen/html/functions_b.html +3 -3
  80. package/SVF-doxygen/html/functions_e.html +2 -2
  81. package/SVF-doxygen/html/functions_func_e.html +2 -2
  82. package/SVF-doxygen/html/functions_func_g.html +44 -45
  83. package/SVF-doxygen/html/functions_func_i.html +12 -22
  84. package/SVF-doxygen/html/functions_func_l.html +6 -6
  85. package/SVF-doxygen/html/functions_func_n.html +3 -3
  86. package/SVF-doxygen/html/functions_func_p.html +1 -1
  87. package/SVF-doxygen/html/functions_func_s.html +7 -7
  88. package/SVF-doxygen/html/functions_func_w.html +3 -3
  89. package/SVF-doxygen/html/functions_g.html +42 -43
  90. package/SVF-doxygen/html/functions_i.html +30 -37
  91. package/SVF-doxygen/html/functions_l.html +8 -8
  92. package/SVF-doxygen/html/functions_n.html +7 -7
  93. package/SVF-doxygen/html/functions_o.html +20 -21
  94. package/SVF-doxygen/html/functions_p.html +12 -12
  95. package/SVF-doxygen/html/functions_r.html +3 -1
  96. package/SVF-doxygen/html/functions_s.html +18 -20
  97. package/SVF-doxygen/html/functions_t.html +10 -10
  98. package/SVF-doxygen/html/functions_type.html +5 -0
  99. package/SVF-doxygen/html/functions_type_i.html +4 -4
  100. package/SVF-doxygen/html/functions_type_v.html +3 -8
  101. package/SVF-doxygen/html/functions_v.html +10 -13
  102. package/SVF-doxygen/html/functions_vars.html +6 -6
  103. package/SVF-doxygen/html/functions_vars_g.html +2 -2
  104. package/SVF-doxygen/html/functions_vars_i.html +3 -0
  105. package/SVF-doxygen/html/functions_vars_o.html +0 -3
  106. package/SVF-doxygen/html/functions_w.html +11 -11
  107. package/SVF-doxygen/html/search/all_0.js +4 -4
  108. package/SVF-doxygen/html/search/all_1.js +210 -209
  109. package/SVF-doxygen/html/search/all_10.js +324 -324
  110. package/SVF-doxygen/html/search/all_11.js +222 -222
  111. package/SVF-doxygen/html/search/all_12.js +544 -544
  112. package/SVF-doxygen/html/search/all_13.js +191 -191
  113. package/SVF-doxygen/html/search/all_14.js +67 -67
  114. package/SVF-doxygen/html/search/all_15.js +167 -169
  115. package/SVF-doxygen/html/search/all_16.js +63 -63
  116. package/SVF-doxygen/html/search/all_17.js +1 -1
  117. package/SVF-doxygen/html/search/all_18.js +1 -1
  118. package/SVF-doxygen/html/search/all_19.js +11 -11
  119. package/SVF-doxygen/html/search/all_1a.js +172 -172
  120. package/SVF-doxygen/html/search/all_2.js +169 -169
  121. package/SVF-doxygen/html/search/all_3.js +642 -642
  122. package/SVF-doxygen/html/search/all_4.js +233 -233
  123. package/SVF-doxygen/html/search/all_5.js +119 -119
  124. package/SVF-doxygen/html/search/all_6.js +225 -225
  125. package/SVF-doxygen/html/search/all_7.js +868 -868
  126. package/SVF-doxygen/html/search/all_8.js +197 -197
  127. package/SVF-doxygen/html/search/all_9.js +606 -611
  128. package/SVF-doxygen/html/search/all_a.js +46 -46
  129. package/SVF-doxygen/html/search/all_b.js +26 -26
  130. package/SVF-doxygen/html/search/all_c.js +116 -116
  131. package/SVF-doxygen/html/search/all_d.js +196 -196
  132. package/SVF-doxygen/html/search/all_e.js +207 -207
  133. package/SVF-doxygen/html/search/all_f.js +115 -116
  134. package/SVF-doxygen/html/search/classes_0.js +26 -26
  135. package/SVF-doxygen/html/search/classes_1.js +9 -9
  136. package/SVF-doxygen/html/search/classes_10.js +73 -73
  137. package/SVF-doxygen/html/search/classes_11.js +15 -15
  138. package/SVF-doxygen/html/search/classes_12.js +2 -2
  139. package/SVF-doxygen/html/search/classes_13.js +10 -10
  140. package/SVF-doxygen/html/search/classes_14.js +14 -14
  141. package/SVF-doxygen/html/search/classes_15.js +1 -1
  142. package/SVF-doxygen/html/search/classes_2.js +80 -80
  143. package/SVF-doxygen/html/search/classes_3.js +37 -37
  144. package/SVF-doxygen/html/search/classes_4.js +9 -9
  145. package/SVF-doxygen/html/search/classes_5.js +28 -28
  146. package/SVF-doxygen/html/search/classes_6.js +104 -104
  147. package/SVF-doxygen/html/search/classes_7.js +33 -33
  148. package/SVF-doxygen/html/search/classes_8.js +56 -56
  149. package/SVF-doxygen/html/search/classes_9.js +1 -1
  150. package/SVF-doxygen/html/search/classes_a.js +12 -12
  151. package/SVF-doxygen/html/search/classes_b.js +29 -29
  152. package/SVF-doxygen/html/search/classes_c.js +6 -6
  153. package/SVF-doxygen/html/search/classes_d.js +18 -18
  154. package/SVF-doxygen/html/search/classes_e.js +36 -36
  155. package/SVF-doxygen/html/search/classes_f.js +25 -25
  156. package/SVF-doxygen/html/search/defines_0.js +3 -3
  157. package/SVF-doxygen/html/search/defines_1.js +2 -2
  158. package/SVF-doxygen/html/search/defines_2.js +30 -30
  159. package/SVF-doxygen/html/search/defines_3.js +21 -21
  160. package/SVF-doxygen/html/search/defines_4.js +2 -2
  161. package/SVF-doxygen/html/search/defines_5.js +4 -4
  162. package/SVF-doxygen/html/search/defines_6.js +2 -2
  163. package/SVF-doxygen/html/search/defines_7.js +5 -5
  164. package/SVF-doxygen/html/search/defines_8.js +11 -11
  165. package/SVF-doxygen/html/search/defines_9.js +9 -9
  166. package/SVF-doxygen/html/search/defines_a.js +2 -2
  167. package/SVF-doxygen/html/search/defines_b.js +1 -1
  168. package/SVF-doxygen/html/search/defines_c.js +3 -3
  169. package/SVF-doxygen/html/search/defines_d.js +2 -2
  170. package/SVF-doxygen/html/search/defines_e.js +7 -7
  171. package/SVF-doxygen/html/search/defines_f.js +3 -3
  172. package/SVF-doxygen/html/search/enums_0.js +3 -3
  173. package/SVF-doxygen/html/search/enums_1.js +2 -2
  174. package/SVF-doxygen/html/search/enums_10.js +1 -1
  175. package/SVF-doxygen/html/search/enums_11.js +1 -1
  176. package/SVF-doxygen/html/search/enums_2.js +8 -8
  177. package/SVF-doxygen/html/search/enums_3.js +1 -1
  178. package/SVF-doxygen/html/search/enums_4.js +3 -3
  179. package/SVF-doxygen/html/search/enums_5.js +1 -1
  180. package/SVF-doxygen/html/search/enums_6.js +2 -2
  181. package/SVF-doxygen/html/search/enums_7.js +2 -2
  182. package/SVF-doxygen/html/search/enums_8.js +4 -4
  183. package/SVF-doxygen/html/search/enums_9.js +1 -1
  184. package/SVF-doxygen/html/search/enums_a.js +1 -1
  185. package/SVF-doxygen/html/search/enums_b.js +7 -7
  186. package/SVF-doxygen/html/search/enums_c.js +1 -1
  187. package/SVF-doxygen/html/search/enums_d.js +4 -4
  188. package/SVF-doxygen/html/search/enums_e.js +2 -2
  189. package/SVF-doxygen/html/search/enums_f.js +4 -4
  190. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  191. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  192. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  193. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  194. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  195. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  196. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  197. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  198. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  199. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  200. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  201. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  202. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  203. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  204. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  205. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  206. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  207. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  208. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  209. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  210. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  211. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  212. package/SVF-doxygen/html/search/files_0.js +13 -13
  213. package/SVF-doxygen/html/search/files_1.js +7 -7
  214. package/SVF-doxygen/html/search/files_10.js +8 -8
  215. package/SVF-doxygen/html/search/files_11.js +8 -8
  216. package/SVF-doxygen/html/search/files_12.js +2 -2
  217. package/SVF-doxygen/html/search/files_2.js +55 -55
  218. package/SVF-doxygen/html/search/files_3.js +14 -14
  219. package/SVF-doxygen/html/search/files_4.js +5 -5
  220. package/SVF-doxygen/html/search/files_5.js +13 -13
  221. package/SVF-doxygen/html/search/files_6.js +9 -9
  222. package/SVF-doxygen/html/search/files_7.js +14 -14
  223. package/SVF-doxygen/html/search/files_8.js +13 -13
  224. package/SVF-doxygen/html/search/files_9.js +18 -18
  225. package/SVF-doxygen/html/search/files_a.js +3 -3
  226. package/SVF-doxygen/html/search/files_b.js +2 -2
  227. package/SVF-doxygen/html/search/files_c.js +20 -20
  228. package/SVF-doxygen/html/search/files_d.js +4 -4
  229. package/SVF-doxygen/html/search/files_e.js +62 -62
  230. package/SVF-doxygen/html/search/files_f.js +8 -8
  231. package/SVF-doxygen/html/search/functions_0.js +12 -12
  232. package/SVF-doxygen/html/search/functions_1.js +360 -360
  233. package/SVF-doxygen/html/search/functions_10.js +140 -140
  234. package/SVF-doxygen/html/search/functions_11.js +138 -138
  235. package/SVF-doxygen/html/search/functions_12.js +279 -279
  236. package/SVF-doxygen/html/search/functions_13.js +59 -59
  237. package/SVF-doxygen/html/search/functions_14.js +39 -39
  238. package/SVF-doxygen/html/search/functions_15.js +71 -71
  239. package/SVF-doxygen/html/search/functions_16.js +32 -32
  240. package/SVF-doxygen/html/search/functions_17.js +3 -3
  241. package/SVF-doxygen/html/search/functions_18.js +172 -172
  242. package/SVF-doxygen/html/search/functions_2.js +87 -87
  243. package/SVF-doxygen/html/search/functions_3.js +257 -257
  244. package/SVF-doxygen/html/search/functions_4.js +75 -75
  245. package/SVF-doxygen/html/search/functions_5.js +53 -53
  246. package/SVF-doxygen/html/search/functions_6.js +59 -59
  247. package/SVF-doxygen/html/search/functions_7.js +852 -852
  248. package/SVF-doxygen/html/search/functions_8.js +149 -149
  249. package/SVF-doxygen/html/search/functions_9.js +423 -428
  250. package/SVF-doxygen/html/search/functions_a.js +30 -30
  251. package/SVF-doxygen/html/search/functions_b.js +2 -2
  252. package/SVF-doxygen/html/search/functions_c.js +26 -26
  253. package/SVF-doxygen/html/search/functions_d.js +77 -77
  254. package/SVF-doxygen/html/search/functions_e.js +35 -35
  255. package/SVF-doxygen/html/search/functions_f.js +56 -56
  256. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  257. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  258. package/SVF-doxygen/html/search/related_0.js +2 -2
  259. package/SVF-doxygen/html/search/related_1.js +2 -2
  260. package/SVF-doxygen/html/search/related_2.js +2 -2
  261. package/SVF-doxygen/html/search/related_3.js +2 -2
  262. package/SVF-doxygen/html/search/related_4.js +2 -2
  263. package/SVF-doxygen/html/search/related_5.js +1 -1
  264. package/SVF-doxygen/html/search/related_6.js +2 -2
  265. package/SVF-doxygen/html/search/related_7.js +4 -4
  266. package/SVF-doxygen/html/search/related_8.js +2 -2
  267. package/SVF-doxygen/html/search/related_9.js +4 -4
  268. package/SVF-doxygen/html/search/related_a.js +19 -19
  269. package/SVF-doxygen/html/search/related_b.js +4 -4
  270. package/SVF-doxygen/html/search/related_c.js +1 -1
  271. package/SVF-doxygen/html/search/related_d.js +12 -12
  272. package/SVF-doxygen/html/search/related_e.js +2 -2
  273. package/SVF-doxygen/html/search/related_f.js +2 -2
  274. package/SVF-doxygen/html/search/typedefs_0.js +19 -18
  275. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  276. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  277. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  278. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  279. package/SVF-doxygen/html/search/typedefs_13.js +33 -34
  280. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  281. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  282. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  283. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  284. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  285. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  286. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  287. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  288. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  289. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  290. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  291. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  292. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  293. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  294. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  295. package/SVF-doxygen/html/search/variables_0.js +151 -151
  296. package/SVF-doxygen/html/search/variables_1.js +75 -75
  297. package/SVF-doxygen/html/search/variables_10.js +97 -97
  298. package/SVF-doxygen/html/search/variables_11.js +44 -44
  299. package/SVF-doxygen/html/search/variables_12.js +92 -92
  300. package/SVF-doxygen/html/search/variables_13.js +75 -75
  301. package/SVF-doxygen/html/search/variables_14.js +14 -14
  302. package/SVF-doxygen/html/search/variables_15.js +48 -48
  303. package/SVF-doxygen/html/search/variables_16.js +9 -9
  304. package/SVF-doxygen/html/search/variables_17.js +1 -1
  305. package/SVF-doxygen/html/search/variables_18.js +2 -2
  306. package/SVF-doxygen/html/search/variables_2.js +38 -38
  307. package/SVF-doxygen/html/search/variables_3.js +142 -142
  308. package/SVF-doxygen/html/search/variables_4.js +55 -55
  309. package/SVF-doxygen/html/search/variables_5.js +37 -37
  310. package/SVF-doxygen/html/search/variables_6.js +66 -66
  311. package/SVF-doxygen/html/search/variables_7.js +33 -33
  312. package/SVF-doxygen/html/search/variables_8.js +7 -7
  313. package/SVF-doxygen/html/search/variables_9.js +78 -77
  314. package/SVF-doxygen/html/search/variables_a.js +4 -4
  315. package/SVF-doxygen/html/search/variables_b.js +10 -10
  316. package/SVF-doxygen/html/search/variables_c.js +45 -45
  317. package/SVF-doxygen/html/search/variables_d.js +56 -56
  318. package/SVF-doxygen/html/search/variables_e.js +123 -123
  319. package/SVF-doxygen/html/search/variables_f.js +29 -30
  320. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  321. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html +9 -9
  322. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ConsExeState_01_4.html +5 -5
  323. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +5 -5
  324. package/SVF-doxygen/html/structstd_1_1hash_3_01SVF_1_1IntervalExeState_01_4.html +5 -5
  325. package/SVF-doxygen/html/svf-ex_8cpp.html +17 -17
  326. package/SVF-doxygen/html/svf-ex_8cpp_source.html +17 -17
  327. package/package.json +1 -1
  328. package/svf/include/AbstractExecution/ConsExeState.h +99 -96
  329. package/svf/include/AbstractExecution/ExeState.h +66 -53
  330. package/svf/include/AbstractExecution/IntervalExeState.h +66 -61
  331. package/svf/include/AbstractExecution/SVFIR2ConsExeState.h +7 -7
  332. package/svf/include/AbstractExecution/SVFIR2ItvExeState.h +22 -19
  333. package/svf/include/MemoryModel/AccessPath.h +13 -11
  334. package/svf/include/SVFIR/SVFStatements.h +2 -3
  335. package/svf/lib/AbstractExecution/ConsExeState.cpp +13 -13
  336. package/svf/lib/AbstractExecution/ExeState.cpp +19 -19
  337. package/svf/lib/AbstractExecution/IntervalExeState.cpp +4 -4
  338. package/svf/lib/AbstractExecution/SVFIR2ConsExeState.cpp +38 -37
  339. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +273 -287
  340. package/svf/lib/MemoryModel/AccessPath.cpp +39 -17
  341. package/svf/lib/SVFIR/SVFFileSystem.cpp +2 -2
@@ -478,53 +478,53 @@ 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#l00973">SVFIR2ItvExeState.cpp:973</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>
485
485
  <div class="ttc" id="aclassSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00156">Andersen.h:156</a></div></div>
486
486
  <div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
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
- <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#l00749">SVFStatements.h:749</a></div></div>
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#l00903">SVFIR2ItvExeState.cpp:903</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>
494
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00515">SVFIR2ItvExeState.cpp:515</a></div></div>
495
- <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00817">SVFStatements.h:817</a></div></div>
494
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00498">SVFIR2ItvExeState.cpp:498</a></div></div>
495
+ <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00816">SVFStatements.h:816</a></div></div>
496
496
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00108">LLVMModule.h:108</a></div></div>
497
497
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
498
- <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00606">SVFStatements.h:606</a></div></div>
498
+ <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00605">SVFStatements.h:605</a></div></div>
499
499
  <div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00141">svf-ex.cpp:141</a></div></div>
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#l00872">SVFStatements.h:872</a></div></div>
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
- <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#l00596">SVFIR2ItvExeState.cpp:596</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#l00877">SVFIR2ItvExeState.cpp:877</a></div></div>
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#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#l00931">SVFIR2ItvExeState.cpp:931</a></div></div>
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#l00546">SVFStatements.h:546</a></div></div>
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#l00780">SVFIR2ItvExeState.cpp:780</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
+ <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
+ <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
- <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#l00958">SVFStatements.h:958</a></div></div>
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#l00988">SVFIR2ItvExeState.cpp:988</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
- <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#l00534">SVFIR2ItvExeState.cpp:534</a></div></div>
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#l00826">SVFIR2ItvExeState.cpp:826</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#l00855">SVFIR2ItvExeState.cpp:855</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#l00973">SVFIR2ItvExeState.cpp:973</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>
@@ -316,48 +316,48 @@ $(function() {
316
316
  <div class="ttc" id="aclassSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00156">Andersen.h:156</a></div></div>
317
317
  <div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
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
- <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#l00749">SVFStatements.h:749</a></div></div>
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#l00903">SVFIR2ItvExeState.cpp:903</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>
325
325
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
326
326
  <div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
327
327
  <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>
328
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00515">SVFIR2ItvExeState.cpp:515</a></div></div>
329
- <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00817">SVFStatements.h:817</a></div></div>
328
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00498">SVFIR2ItvExeState.cpp:498</a></div></div>
329
+ <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00816">SVFStatements.h:816</a></div></div>
330
330
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00108">LLVMModule.h:108</a></div></div>
331
331
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
332
332
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00058">PointerAnalysis.h:58</a></div></div>
333
- <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00606">SVFStatements.h:606</a></div></div>
333
+ <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00605">SVFStatements.h:605</a></div></div>
334
334
  <div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00141">svf-ex.cpp:141</a></div></div>
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#l00872">SVFStatements.h:872</a></div></div>
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
- <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#l00596">SVFIR2ItvExeState.cpp:596</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#l00877">SVFIR2ItvExeState.cpp:877</a></div></div>
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#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#l00931">SVFIR2ItvExeState.cpp:931</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
- <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#l00546">SVFStatements.h:546</a></div></div>
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#l00780">SVFIR2ItvExeState.cpp:780</a></div></div>
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
+ <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>
347
347
  <div class="ttc" id="asvf-ex_8cpp_html_ad58149e5445ad22ce478339e103ab42b"><div class="ttname"><a href="svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b">traverseOnVFG</a></div><div class="ttdeci">void traverseOnVFG(const SVFG *vfg, SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00168">svf-ex.cpp:168</a></div></div>
348
348
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
349
349
  <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>
350
350
  <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>
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#l00958">SVFStatements.h:958</a></div></div>
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#l00988">SVFIR2ItvExeState.cpp:988</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
- <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#l00534">SVFIR2ItvExeState.cpp:534</a></div></div>
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#l00826">SVFIR2ItvExeState.cpp:826</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#l00855">SVFIR2ItvExeState.cpp:855</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.811",
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);