svf-tools 1.0.838 → 1.0.839

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 (317) hide show
  1. package/SVF-doxygen/html/CFLSVFGBuilder_8cpp.html +86 -0
  2. package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +195 -0
  3. package/SVF-doxygen/html/CFLSVFGBuilder_8h.html +98 -0
  4. package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +148 -0
  5. package/SVF-doxygen/html/CFLVF_8h.html +1 -1
  6. package/SVF-doxygen/html/CFLVF_8h_source.html +5 -5
  7. package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +1 -1
  9. package/SVF-doxygen/html/DoubleFreeChecker_8cpp_source.html +4 -4
  10. package/SVF-doxygen/html/DoubleFreeChecker_8h_source.html +1 -1
  11. package/SVF-doxygen/html/FileChecker_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/FileChecker_8h_source.html +1 -1
  13. package/SVF-doxygen/html/LeakChecker_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
  15. package/SVF-doxygen/html/ProgSlice_8cpp_source.html +170 -136
  16. package/SVF-doxygen/html/ProgSlice_8h_source.html +314 -298
  17. package/SVF-doxygen/html/SVFGOPT_8h_source.html +5 -5
  18. package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/SVFG_8cpp_source.html +29 -29
  20. package/SVF-doxygen/html/SVFG_8h_source.html +446 -444
  21. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +246 -235
  23. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp.html +1 -0
  24. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +271 -265
  25. package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +75 -62
  26. package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +257 -256
  27. package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +18 -18
  28. package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  29. package/SVF-doxygen/html/WPAPass_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/annotated.html +377 -376
  31. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder-members.html +121 -0
  32. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +473 -0
  33. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.png +0 -0
  34. package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +1 -1
  35. package/SVF-doxygen/html/classSVF_1_1CFLVF.html +7 -7
  36. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
  37. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
  38. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +5 -5
  39. package/SVF-doxygen/html/classSVF_1_1FileChecker.html +3 -3
  40. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +1 -1
  41. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  42. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +5 -5
  43. package/SVF-doxygen/html/classSVF_1_1ProgSlice-members.html +25 -22
  44. package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +493 -366
  45. package/SVF-doxygen/html/classSVF_1_1SVFG-members.html +182 -181
  46. package/SVF-doxygen/html/classSVF_1_1SVFG.html +324 -298
  47. package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.html +2 -1
  48. package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.png +0 -0
  49. package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +7 -7
  50. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator-members.html +22 -19
  51. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +238 -159
  52. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder-members.html +11 -9
  53. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +347 -285
  54. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.png +0 -0
  55. package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +259 -257
  56. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  57. package/SVF-doxygen/html/classSVF_1_1WPAPass.html +1 -1
  58. package/SVF-doxygen/html/classes.html +95 -94
  59. package/SVF-doxygen/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +2 -0
  60. package/SVF-doxygen/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -0
  61. package/SVF-doxygen/html/files.html +6 -4
  62. package/SVF-doxygen/html/functions_b.html +4 -3
  63. package/SVF-doxygen/html/functions_c.html +38 -29
  64. package/SVF-doxygen/html/functions_f.html +6 -6
  65. package/SVF-doxygen/html/functions_func_b.html +3 -2
  66. package/SVF-doxygen/html/functions_func_c.html +29 -23
  67. package/SVF-doxygen/html/functions_func_g.html +14 -10
  68. package/SVF-doxygen/html/functions_func_i.html +1 -1
  69. package/SVF-doxygen/html/functions_func_r.html +6 -5
  70. package/SVF-doxygen/html/functions_func_s.html +20 -17
  71. package/SVF-doxygen/html/functions_func_~.html +3 -0
  72. package/SVF-doxygen/html/functions_g.html +10 -6
  73. package/SVF-doxygen/html/functions_i.html +5 -5
  74. package/SVF-doxygen/html/functions_m.html +1 -1
  75. package/SVF-doxygen/html/functions_n.html +8 -7
  76. package/SVF-doxygen/html/functions_p.html +15 -15
  77. package/SVF-doxygen/html/functions_r.html +12 -6
  78. package/SVF-doxygen/html/functions_rela_c.html +3 -0
  79. package/SVF-doxygen/html/functions_s.html +22 -11
  80. package/SVF-doxygen/html/functions_t.html +7 -7
  81. package/SVF-doxygen/html/functions_type_n.html +2 -1
  82. package/SVF-doxygen/html/functions_type_s.html +6 -1
  83. package/SVF-doxygen/html/functions_type_w.html +1 -0
  84. package/SVF-doxygen/html/functions_v.html +4 -6
  85. package/SVF-doxygen/html/functions_vars_m.html +1 -1
  86. package/SVF-doxygen/html/functions_vars_r.html +3 -0
  87. package/SVF-doxygen/html/functions_vars_s.html +2 -1
  88. package/SVF-doxygen/html/functions_w.html +4 -3
  89. package/SVF-doxygen/html/functions_~.html +3 -0
  90. package/SVF-doxygen/html/hierarchy.html +2 -1
  91. package/SVF-doxygen/html/namespaceSVF.html +2 -0
  92. package/SVF-doxygen/html/search/all_10.js +325 -325
  93. package/SVF-doxygen/html/search/all_11.js +224 -223
  94. package/SVF-doxygen/html/search/all_12.js +553 -551
  95. package/SVF-doxygen/html/search/all_13.js +190 -190
  96. package/SVF-doxygen/html/search/all_14.js +67 -67
  97. package/SVF-doxygen/html/search/all_15.js +167 -167
  98. package/SVF-doxygen/html/search/all_16.js +63 -63
  99. package/SVF-doxygen/html/search/all_17.js +1 -1
  100. package/SVF-doxygen/html/search/all_18.js +1 -1
  101. package/SVF-doxygen/html/search/all_19.js +11 -11
  102. package/SVF-doxygen/html/search/all_1a.js +173 -172
  103. package/SVF-doxygen/html/search/all_2.js +1 -1
  104. package/SVF-doxygen/html/search/all_3.js +466 -462
  105. package/SVF-doxygen/html/search/all_4.js +230 -230
  106. package/SVF-doxygen/html/search/all_5.js +119 -119
  107. package/SVF-doxygen/html/search/all_6.js +226 -226
  108. package/SVF-doxygen/html/search/all_7.js +1047 -1046
  109. package/SVF-doxygen/html/search/all_8.js +198 -198
  110. package/SVF-doxygen/html/search/all_9.js +608 -608
  111. package/SVF-doxygen/html/search/all_a.js +46 -46
  112. package/SVF-doxygen/html/search/all_b.js +26 -26
  113. package/SVF-doxygen/html/search/all_c.js +115 -115
  114. package/SVF-doxygen/html/search/all_d.js +197 -197
  115. package/SVF-doxygen/html/search/all_e.js +207 -207
  116. package/SVF-doxygen/html/search/all_f.js +116 -116
  117. package/SVF-doxygen/html/search/classes_0.js +26 -26
  118. package/SVF-doxygen/html/search/classes_1.js +9 -9
  119. package/SVF-doxygen/html/search/classes_10.js +73 -73
  120. package/SVF-doxygen/html/search/classes_11.js +15 -15
  121. package/SVF-doxygen/html/search/classes_12.js +2 -2
  122. package/SVF-doxygen/html/search/classes_13.js +10 -10
  123. package/SVF-doxygen/html/search/classes_14.js +14 -14
  124. package/SVF-doxygen/html/search/classes_15.js +1 -1
  125. package/SVF-doxygen/html/search/classes_2.js +81 -80
  126. package/SVF-doxygen/html/search/classes_3.js +37 -37
  127. package/SVF-doxygen/html/search/classes_4.js +9 -9
  128. package/SVF-doxygen/html/search/classes_5.js +28 -28
  129. package/SVF-doxygen/html/search/classes_6.js +104 -104
  130. package/SVF-doxygen/html/search/classes_7.js +34 -34
  131. package/SVF-doxygen/html/search/classes_8.js +56 -56
  132. package/SVF-doxygen/html/search/classes_9.js +1 -1
  133. package/SVF-doxygen/html/search/classes_a.js +12 -12
  134. package/SVF-doxygen/html/search/classes_b.js +29 -29
  135. package/SVF-doxygen/html/search/classes_c.js +6 -6
  136. package/SVF-doxygen/html/search/classes_d.js +18 -18
  137. package/SVF-doxygen/html/search/classes_e.js +36 -36
  138. package/SVF-doxygen/html/search/classes_f.js +25 -25
  139. package/SVF-doxygen/html/search/defines_0.js +3 -3
  140. package/SVF-doxygen/html/search/defines_1.js +2 -2
  141. package/SVF-doxygen/html/search/defines_2.js +30 -30
  142. package/SVF-doxygen/html/search/defines_3.js +20 -20
  143. package/SVF-doxygen/html/search/defines_4.js +2 -2
  144. package/SVF-doxygen/html/search/defines_5.js +4 -4
  145. package/SVF-doxygen/html/search/defines_6.js +2 -2
  146. package/SVF-doxygen/html/search/defines_7.js +5 -5
  147. package/SVF-doxygen/html/search/defines_8.js +11 -11
  148. package/SVF-doxygen/html/search/defines_9.js +9 -9
  149. package/SVF-doxygen/html/search/defines_a.js +2 -2
  150. package/SVF-doxygen/html/search/defines_b.js +1 -1
  151. package/SVF-doxygen/html/search/defines_c.js +3 -3
  152. package/SVF-doxygen/html/search/defines_d.js +2 -2
  153. package/SVF-doxygen/html/search/defines_e.js +7 -7
  154. package/SVF-doxygen/html/search/defines_f.js +3 -3
  155. package/SVF-doxygen/html/search/enums_0.js +3 -3
  156. package/SVF-doxygen/html/search/enums_1.js +2 -2
  157. package/SVF-doxygen/html/search/enums_10.js +1 -1
  158. package/SVF-doxygen/html/search/enums_11.js +1 -1
  159. package/SVF-doxygen/html/search/enums_2.js +8 -8
  160. package/SVF-doxygen/html/search/enums_3.js +1 -1
  161. package/SVF-doxygen/html/search/enums_4.js +3 -3
  162. package/SVF-doxygen/html/search/enums_5.js +1 -1
  163. package/SVF-doxygen/html/search/enums_6.js +2 -2
  164. package/SVF-doxygen/html/search/enums_7.js +2 -2
  165. package/SVF-doxygen/html/search/enums_8.js +4 -4
  166. package/SVF-doxygen/html/search/enums_9.js +1 -1
  167. package/SVF-doxygen/html/search/enums_a.js +1 -1
  168. package/SVF-doxygen/html/search/enums_b.js +7 -7
  169. package/SVF-doxygen/html/search/enums_c.js +1 -1
  170. package/SVF-doxygen/html/search/enums_d.js +4 -4
  171. package/SVF-doxygen/html/search/enums_e.js +2 -2
  172. package/SVF-doxygen/html/search/enums_f.js +4 -4
  173. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  174. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  175. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  176. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  177. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  178. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  179. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  180. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  181. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  182. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  183. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  184. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  185. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  186. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  187. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  188. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  189. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  190. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  191. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  192. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  193. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  194. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  195. package/SVF-doxygen/html/search/files_0.js +13 -13
  196. package/SVF-doxygen/html/search/files_1.js +7 -7
  197. package/SVF-doxygen/html/search/files_10.js +8 -8
  198. package/SVF-doxygen/html/search/files_11.js +8 -8
  199. package/SVF-doxygen/html/search/files_12.js +2 -2
  200. package/SVF-doxygen/html/search/files_2.js +57 -55
  201. package/SVF-doxygen/html/search/files_3.js +14 -14
  202. package/SVF-doxygen/html/search/files_4.js +5 -5
  203. package/SVF-doxygen/html/search/files_5.js +13 -13
  204. package/SVF-doxygen/html/search/files_6.js +9 -9
  205. package/SVF-doxygen/html/search/files_7.js +14 -14
  206. package/SVF-doxygen/html/search/files_8.js +13 -13
  207. package/SVF-doxygen/html/search/files_9.js +18 -18
  208. package/SVF-doxygen/html/search/files_a.js +3 -3
  209. package/SVF-doxygen/html/search/files_b.js +2 -2
  210. package/SVF-doxygen/html/search/files_c.js +20 -20
  211. package/SVF-doxygen/html/search/files_d.js +4 -4
  212. package/SVF-doxygen/html/search/files_e.js +62 -62
  213. package/SVF-doxygen/html/search/files_f.js +8 -8
  214. package/SVF-doxygen/html/search/functions_0.js +13 -13
  215. package/SVF-doxygen/html/search/functions_1.js +362 -362
  216. package/SVF-doxygen/html/search/functions_10.js +140 -140
  217. package/SVF-doxygen/html/search/functions_11.js +139 -139
  218. package/SVF-doxygen/html/search/functions_12.js +289 -288
  219. package/SVF-doxygen/html/search/functions_13.js +59 -59
  220. package/SVF-doxygen/html/search/functions_14.js +39 -39
  221. package/SVF-doxygen/html/search/functions_15.js +71 -71
  222. package/SVF-doxygen/html/search/functions_16.js +32 -32
  223. package/SVF-doxygen/html/search/functions_17.js +3 -3
  224. package/SVF-doxygen/html/search/functions_18.js +173 -172
  225. package/SVF-doxygen/html/search/functions_2.js +89 -89
  226. package/SVF-doxygen/html/search/functions_3.js +260 -258
  227. package/SVF-doxygen/html/search/functions_4.js +78 -78
  228. package/SVF-doxygen/html/search/functions_5.js +53 -53
  229. package/SVF-doxygen/html/search/functions_6.js +60 -60
  230. package/SVF-doxygen/html/search/functions_7.js +856 -855
  231. package/SVF-doxygen/html/search/functions_8.js +149 -149
  232. package/SVF-doxygen/html/search/functions_9.js +424 -424
  233. package/SVF-doxygen/html/search/functions_a.js +30 -30
  234. package/SVF-doxygen/html/search/functions_b.js +2 -2
  235. package/SVF-doxygen/html/search/functions_c.js +25 -25
  236. package/SVF-doxygen/html/search/functions_d.js +79 -79
  237. package/SVF-doxygen/html/search/functions_e.js +35 -35
  238. package/SVF-doxygen/html/search/functions_f.js +56 -56
  239. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  240. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  241. package/SVF-doxygen/html/search/related_0.js +2 -2
  242. package/SVF-doxygen/html/search/related_1.js +2 -2
  243. package/SVF-doxygen/html/search/related_2.js +3 -2
  244. package/SVF-doxygen/html/search/related_3.js +2 -2
  245. package/SVF-doxygen/html/search/related_4.js +2 -2
  246. package/SVF-doxygen/html/search/related_5.js +1 -1
  247. package/SVF-doxygen/html/search/related_6.js +2 -2
  248. package/SVF-doxygen/html/search/related_7.js +4 -4
  249. package/SVF-doxygen/html/search/related_8.js +2 -2
  250. package/SVF-doxygen/html/search/related_9.js +4 -4
  251. package/SVF-doxygen/html/search/related_a.js +19 -19
  252. package/SVF-doxygen/html/search/related_b.js +4 -4
  253. package/SVF-doxygen/html/search/related_c.js +2 -2
  254. package/SVF-doxygen/html/search/related_d.js +12 -12
  255. package/SVF-doxygen/html/search/related_e.js +2 -2
  256. package/SVF-doxygen/html/search/related_f.js +2 -2
  257. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  258. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  259. package/SVF-doxygen/html/search/typedefs_10.js +62 -61
  260. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  261. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  262. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  263. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  264. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  265. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  266. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  267. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  268. package/SVF-doxygen/html/search/typedefs_6.js +56 -56
  269. package/SVF-doxygen/html/search/typedefs_7.js +44 -44
  270. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  271. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  272. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  273. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  274. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  275. package/SVF-doxygen/html/search/typedefs_d.js +14 -14
  276. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  277. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  278. package/SVF-doxygen/html/search/variables_0.js +151 -151
  279. package/SVF-doxygen/html/search/variables_1.js +75 -75
  280. package/SVF-doxygen/html/search/variables_10.js +98 -98
  281. package/SVF-doxygen/html/search/variables_11.js +45 -44
  282. package/SVF-doxygen/html/search/variables_12.js +90 -90
  283. package/SVF-doxygen/html/search/variables_13.js +74 -74
  284. package/SVF-doxygen/html/search/variables_14.js +14 -14
  285. package/SVF-doxygen/html/search/variables_15.js +48 -48
  286. package/SVF-doxygen/html/search/variables_16.js +9 -9
  287. package/SVF-doxygen/html/search/variables_17.js +1 -1
  288. package/SVF-doxygen/html/search/variables_18.js +2 -2
  289. package/SVF-doxygen/html/search/variables_2.js +38 -38
  290. package/SVF-doxygen/html/search/variables_3.js +142 -142
  291. package/SVF-doxygen/html/search/variables_4.js +50 -50
  292. package/SVF-doxygen/html/search/variables_5.js +37 -37
  293. package/SVF-doxygen/html/search/variables_6.js +66 -66
  294. package/SVF-doxygen/html/search/variables_7.js +34 -34
  295. package/SVF-doxygen/html/search/variables_8.js +7 -7
  296. package/SVF-doxygen/html/search/variables_9.js +78 -78
  297. package/SVF-doxygen/html/search/variables_a.js +4 -4
  298. package/SVF-doxygen/html/search/variables_b.js +10 -10
  299. package/SVF-doxygen/html/search/variables_c.js +45 -45
  300. package/SVF-doxygen/html/search/variables_d.js +55 -55
  301. package/SVF-doxygen/html/search/variables_e.js +123 -123
  302. package/SVF-doxygen/html/search/variables_f.js +30 -30
  303. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +1 -1
  304. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  305. package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
  306. package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
  307. package/package.json +1 -1
  308. package/svf/include/CFL/CFLSVFGBuilder.h +58 -0
  309. package/svf/include/CFL/CFLVF.h +2 -2
  310. package/svf/include/Graphs/SVFG.h +1 -0
  311. package/svf/include/SABER/ProgSlice.h +11 -0
  312. package/svf/include/SABER/SaberCondAllocator.h +8 -0
  313. package/svf/include/SABER/SaberSVFGBuilder.h +12 -2
  314. package/svf/lib/CFL/CFLSVFGBuilder.cpp +100 -0
  315. package/svf/lib/SABER/ProgSlice.cpp +48 -1
  316. package/svf/lib/SABER/SaberSVFGBuilder.cpp +5 -0
  317. package/svf/lib/SABER/SrcSnkDDA.cpp +1 -0
@@ -129,340 +129,356 @@ $(function() {
129
129
  <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a684e44ade783439c6f77a8d84eed282c"> 58</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const SVFGNode*&gt;</a> <a class="code" href="classSVF_1_1ProgSlice.html#a684e44ade783439c6f77a8d84eed282c">VFWorkList</a>; </div>
130
130
  <div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a7076e2b7e187a295824189f30ca894e5"> 59</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const SVFBasicBlock*&gt;</a> <a class="code" href="classSVF_1_1ProgSlice.html#a7076e2b7e187a295824189f30ca894e5">CFWorkList</a>; </div>
131
131
  <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
132
- <div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#afbf864cc47d6d06286529dbcc01c03c0"> 62</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#afbf864cc47d6d06286529dbcc01c03c0">ProgSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src, <a class="code" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a>* pa, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* graph):</div>
133
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">root</a>(src), <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
134
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>(pa), <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a>(nullptr), <a class="code" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">finalCond</a>(pa-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">getFalseCond</a>()), <a class="code" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">svfg</a>(graph)</div>
135
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
136
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
137
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
138
- <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ad761a9848d2dab7700a7fdeb91c2454d"> 69</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ProgSlice.html#ad761a9848d2dab7700a7fdeb91c2454d">~ProgSlice</a>()</div>
139
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
140
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">destroy</a>();</div>
141
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
142
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
143
- <div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b"> 74</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">getForwardSliceSize</a>()<span class="keyword"> const</span></div>
144
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword"> </span>{</div>
145
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.size();</div>
146
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
147
- <div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b"> 78</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">getBackwardSliceSize</a>()<span class="keyword"> const</span></div>
148
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword"> </span>{</div>
149
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.size();</div>
150
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
151
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
152
- <div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd"> 84</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">addToForwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
153
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
154
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.insert(node);</div>
155
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
156
- <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1"> 88</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">addToBackwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
157
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
158
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.insert(node);</div>
159
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
160
- <div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6"> 92</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">inForwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
161
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
162
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.find(node)!=<a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.end();</div>
163
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
164
- <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7"> 96</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">inBackwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
165
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
166
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.find(node)!=<a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.end();</div>
167
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
168
- <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895"> 100</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895">forwardSliceBegin</a>()<span class="keyword"> const</span></div>
169
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword"> </span>{</div>
170
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.begin();</div>
171
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
172
- <div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b"> 104</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b">forwardSliceEnd</a>()<span class="keyword"> const</span></div>
173
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword"> </span>{</div>
174
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.end();</div>
175
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
176
- <div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89"> 108</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89">backwardSliceBegin</a>()<span class="keyword"> const</span></div>
177
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword"> </span>{</div>
178
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.begin();</div>
179
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
180
- <div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c"> 112</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c">backwardSliceEnd</a>()<span class="keyword"> const</span></div>
181
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword"> </span>{</div>
182
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.end();</div>
183
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
184
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
185
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
186
- <div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0"> 120</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>()<span class="keyword"> const</span></div>
187
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword"> </span>{</div>
188
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">root</a>;</div>
189
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
190
- <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed"> 124</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">addToSinks</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
191
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
192
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>.insert(node);</div>
193
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
194
- <div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d"> 128</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a>&amp; <a class="code" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">getSinks</a>()<span class="keyword"> const</span></div>
195
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword"> </span>{</div>
196
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>;</div>
197
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
198
- <div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2"> 132</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>()<span class="keyword"> const</span></div>
199
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"> </span>{</div>
200
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>.begin();</div>
201
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
202
- <div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31"> 136</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>()<span class="keyword"> const</span></div>
203
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"> </span>{</div>
204
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>.end();</div>
205
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
206
- <div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d"> 140</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">setPartialReachable</a>()</div>
207
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
208
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a> = <span class="keyword">true</span>;</div>
209
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
210
- <div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd"> 144</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">setAllReachable</a>()</div>
211
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
212
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a> = <span class="keyword">true</span>;</div>
213
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
214
- <div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d"> 148</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">setReachGlobal</a>()</div>
215
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
216
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a> = <span class="keyword">true</span>;</div>
217
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
218
- <div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2"> 152</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">isPartialReachable</a>()<span class="keyword"> const</span></div>
219
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword"> </span>{</div>
220
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a> || <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>;</div>
221
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
222
- <div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e"> 156</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">isAllReachable</a>()<span class="keyword"> const</span></div>
223
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword"> </span>{</div>
224
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a> || <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>;</div>
225
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
226
- <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e"> 160</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">isReachGlobal</a>()<span class="keyword"> const</span></div>
227
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword"> </span>{</div>
228
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>;</div>
229
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
230
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
231
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">AllPathReachableSolve</a>();</div>
232
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed">isSatisfiableForAll</a>();</div>
233
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">isSatisfiableForPairs</a>();</div>
234
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
235
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
236
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d">getCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge) <span class="keyword">const</span>;</div>
237
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886">getRetSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge) <span class="keyword">const</span>;</div>
238
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
239
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
240
- <div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aceb26d08f0d12367e4726e1ff0e25953"> 179</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#aceb26d08f0d12367e4726e1ff0e25953">condAnd</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;rhs)</div>
241
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
242
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4">condAnd</a>(lhs,rhs);</div>
243
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div>
244
- <div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a3e729aba81cd64e8628df630f5a0f416"> 183</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a3e729aba81cd64e8628df630f5a0f416">condOr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;rhs)</div>
245
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
246
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161">condOr</a>(lhs,rhs);</div>
247
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div>
248
- <div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a0dfd466a758dd0be4c2bc5832c50fbd8"> 187</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a0dfd466a758dd0be4c2bc5832c50fbd8">condNeg</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;cond)</div>
249
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
250
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817">condNeg</a>(cond);</div>
251
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
252
- <div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a59cbb196069a863830b05904f16a190e"> 191</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a59cbb196069a863830b05904f16a190e">getTrueCond</a>()<span class="keyword"> const</span></div>
253
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword"> </span>{</div>
254
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3">getTrueCond</a>();</div>
255
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
256
- <div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573"> 195</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">getFalseCond</a>()<span class="keyword"> const</span></div>
257
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword"> </span>{</div>
258
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">getFalseCond</a>();</div>
259
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
260
- <div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a03d4ae6a3df1adf7f1ee5eebf1028c9c"> 199</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ProgSlice.html#a03d4ae6a3df1adf7f1ee5eebf1028c9c">dumpCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>&amp; cond)<span class="keyword"> const</span></div>
261
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword"> </span>{</div>
262
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed">dumpCond</a>(cond);</div>
263
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
264
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">evalFinalCond</a>() <span class="keyword">const</span>;</div>
265
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9">evalFinalCond2Event</a>(<a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &amp;eventStack) <span class="keyword">const</span>;</div>
266
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
267
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keyword">protected</span>:</div>
268
- <div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a32ffd130984483b201c485da91ec467f"> 210</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a32ffd130984483b201c485da91ec467f">getSVFG</a>()<span class="keyword"> const</span></div>
269
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keyword"> </span>{</div>
270
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">svfg</a>;</div>
271
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
272
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
273
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">destroy</a>();</div>
274
- <div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab514f387ae2122e919030c5006f1bbce"> 218</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab514f387ae2122e919030c5006f1bbce">clearCFCond</a>()</div>
275
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div>
276
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c">clearCFCond</a>();</div>
277
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
278
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
279
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
280
- <div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aeb1924daad67a0b7ed9e5b4974755261"> 226</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#aeb1924daad67a0b7ed9e5b4974755261">getVFCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)<span class="keyword"> const</span></div>
281
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keyword"> </span>{</div>
282
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; SVFGNodeToCondMap::const_iterator it = <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.find(node);</div>
283
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(it==<a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.end())</div>
284
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
285
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">getFalseCond</a>();</div>
286
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div>
287
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
288
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
289
- <div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab5de7bf99935818ef1b0962e36b8624c"> 235</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab5de7bf99935818ef1b0962e36b8624c">setVFCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;cond)</div>
290
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
291
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; SVFGNodeToCondMap::iterator it = <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.find(node);</div>
292
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// until a fixed-point is reached (condition is not changed)</span></div>
293
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.end() &amp;&amp; <a class="code" href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07">isEquivalentBranchCond</a>(it-&gt;second, cond))</div>
294
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
295
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
296
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>[node] = cond;</div>
297
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
298
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div>
299
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
300
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
301
- <div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ae7f6f66b7e70cf872dc572b073f6d67b"> 249</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#ae7f6f66b7e70cf872dc572b073f6d67b">ComputeIntraVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst)</div>
302
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div>
303
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#af77d3631664b21a16818f54b03b5a832">ComputeIntraVFGGuard</a>(src,dst);</div>
304
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
305
- <div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a7a3ba7e6c08d84f82690a594e286205f"> 253</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a7a3ba7e6c08d84f82690a594e286205f">ComputeInterCallVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* callBB)</div>
306
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div>
307
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#aedb63308f8980bbaf2b6c1bd2826a710">ComputeInterCallVFGGuard</a>(src,dst,callBB);</div>
308
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
309
- <div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab7311a806f1c3899b5a4de106eac24b7"> 257</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#ab7311a806f1c3899b5a4de106eac24b7">ComputeInterRetVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* retBB)</div>
310
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div>
311
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a8bb7f9ce20b5a640aa48c32176f429bf">ComputeInterRetVFGGuard</a>(src,dst,retBB);</div>
312
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
313
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; </div>
314
- <div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07"> 263</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07">isEquivalentBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;rhs)<span class="keyword"> const</span></div>
315
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword"> </span>{</div>
316
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#aa9027574586fd4fbb12039f595ecec71">isEquivalentBranchCond</a>(lhs, rhs);</div>
317
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; };</div>
318
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; </div>
319
- <div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#abca08cad9cadc72caf6743df3ff934e7"> 271</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="classSVF_1_1ProgSlice.html#abca08cad9cadc72caf6743df3ff934e7">getSVFGNodeBB</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)<span class="keyword"> const</span></div>
320
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="keyword"> </span>{</div>
321
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode = node-&gt;<a class="code" href="classSVF_1_1VFGNode.html#a0675465e11d1d42ee7e2b7ab3c5de829">getICFGNode</a>();</div>
322
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;NullPtrSVFGNode&gt;(node) == <span class="keyword">false</span>)</div>
323
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
324
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> icfgNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ae7e734f4ceca40c6cf46f16d088780ca">getBB</a>();</div>
325
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
326
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
327
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
328
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; </div>
329
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
330
- <div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#afad8cd2f720bf01eedd825c3c418abc0"> 283</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#afad8cd2f720bf01eedd825c3c418abc0">getCurSVFGNode</a>()<span class="keyword"> const</span></div>
331
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="keyword"> </span>{</div>
332
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a>;</div>
333
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div>
334
- <div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aee72d029c185c24b2bf01cdc0dcb25d8"> 287</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#aee72d029c185c24b2bf01cdc0dcb25d8">setCurSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
335
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div>
336
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a> = node;</div>
337
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0">setCurEvalSVFGNode</a>(node);</div>
338
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
339
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#af55830503ef47b4b1c15c0e5b3cd6a3f">setFinalCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ProgSlice.html#aadf1128c0006981dff0d64dd1201e0c7">Condition</a> &amp;cond)</div>
340
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div>
341
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">finalCond</a> = cond;</div>
342
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
343
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
344
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="keyword">private</span>:</div>
345
- <div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab"> 300</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>; </div>
346
- <div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0"> 301</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>; </div>
347
- <div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80"> 302</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>; </div>
348
- <div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087"> 303</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">root</a>; </div>
349
- <div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce"> 304</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#adaf0bb2e3104c9d86d997b2e7c93275e">SVFGNodeToCondMap</a> <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>; </div>
350
- <div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9"> 305</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a>; </div>
351
- <div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f"> 306</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a>; </div>
352
- <div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5"> 307</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>; </div>
353
- <div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef"> 308</a></span>&#160; <a class="code" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a>* <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>; </div>
354
- <div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b"> 309</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a>; </div>
355
- <div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47"> 310</a></span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">finalCond</a>; </div>
356
- <div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde"> 311</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">svfg</a>; </div>
357
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;};</div>
358
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div>
359
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;} <span class="comment">// End namespace SVF</span></div>
360
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div>
361
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PROGSLICE_H_ */</span><span class="preprocessor"></span></div>
132
+ <div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a256122a6455854a99131b807f7eb8335"> 61</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SaberCondAllocator.html#a1e5ab069ebb4d17f04788a37fa616cab">SaberCondAllocator::SVFGNodeToSVFGNodeSetMap</a> <a class="code" href="classSVF_1_1ProgSlice.html#a256122a6455854a99131b807f7eb8335">SVFGNodeToSVFGNodeSetMap</a>;</div>
133
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
134
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
135
+ <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#afbf864cc47d6d06286529dbcc01c03c0"> 65</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#afbf864cc47d6d06286529dbcc01c03c0">ProgSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src, <a class="code" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a>* pa, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* graph):</div>
136
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">root</a>(src), <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>),</div>
137
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>(pa), <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a>(nullptr), <a class="code" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">finalCond</a>(pa-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">getFalseCond</a>()), <a class="code" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">svfg</a>(graph)</div>
138
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
139
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
140
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
141
+ <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ad761a9848d2dab7700a7fdeb91c2454d"> 72</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ProgSlice.html#ad761a9848d2dab7700a7fdeb91c2454d">~ProgSlice</a>()</div>
142
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; {</div>
143
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">destroy</a>();</div>
144
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
145
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
146
+ <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b"> 77</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">getForwardSliceSize</a>()<span class="keyword"> const</span></div>
147
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keyword"> </span>{</div>
148
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.size();</div>
149
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
150
+ <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b"> 81</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">getBackwardSliceSize</a>()<span class="keyword"> const</span></div>
151
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"> </span>{</div>
152
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.size();</div>
153
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
154
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
155
+ <div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd"> 87</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">addToForwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
156
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
157
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.insert(node);</div>
158
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
159
+ <div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1"> 91</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">addToBackwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
160
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
161
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.insert(node);</div>
162
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
163
+ <div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6"> 95</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">inForwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
164
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
165
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.find(node)!=<a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.end();</div>
166
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
167
+ <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7"> 99</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">inBackwardSlice</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
168
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
169
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.find(node)!=<a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.end();</div>
170
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
171
+ <div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895"> 103</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895">forwardSliceBegin</a>()<span class="keyword"> const</span></div>
172
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div>
173
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.begin();</div>
174
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
175
+ <div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b"> 107</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b">forwardSliceEnd</a>()<span class="keyword"> const</span></div>
176
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword"> </span>{</div>
177
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>.end();</div>
178
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
179
+ <div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89"> 111</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89">backwardSliceBegin</a>()<span class="keyword"> const</span></div>
180
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword"> </span>{</div>
181
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.begin();</div>
182
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
183
+ <div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c"> 115</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c">backwardSliceEnd</a>()<span class="keyword"> const</span></div>
184
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"> </span>{</div>
185
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>.end();</div>
186
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
187
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
188
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
189
+ <div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0"> 123</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>()<span class="keyword"> const</span></div>
190
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword"> </span>{</div>
191
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">root</a>;</div>
192
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
193
+ <div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed"> 127</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">addToSinks</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
194
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
195
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>.insert(node);</div>
196
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
197
+ <div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d"> 131</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a>&amp; <a class="code" href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">getSinks</a>()<span class="keyword"> const</span></div>
198
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword"> </span>{</div>
199
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>;</div>
200
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
201
+ <div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2"> 135</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>()<span class="keyword"> const</span></div>
202
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword"> </span>{</div>
203
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>.begin();</div>
204
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
205
+ <div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31"> 139</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVFGNodeSetIter</a> <a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>()<span class="keyword"> const</span></div>
206
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keyword"> </span>{</div>
207
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>.end();</div>
208
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
209
+ <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d"> 143</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">setPartialReachable</a>()</div>
210
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
211
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a> = <span class="keyword">true</span>;</div>
212
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
213
+ <div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd"> 147</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">setAllReachable</a>()</div>
214
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
215
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a> = <span class="keyword">true</span>;</div>
216
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
217
+ <div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d"> 151</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">setReachGlobal</a>()</div>
218
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
219
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a> = <span class="keyword">true</span>;</div>
220
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
221
+ <div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2"> 155</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">isPartialReachable</a>()<span class="keyword"> const</span></div>
222
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword"> </span>{</div>
223
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a> || <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>;</div>
224
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
225
+ <div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e"> 159</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">isAllReachable</a>()<span class="keyword"> const</span></div>
226
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword"> </span>{</div>
227
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a> || <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>;</div>
228
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
229
+ <div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e"> 163</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">isReachGlobal</a>()<span class="keyword"> const</span></div>
230
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keyword"> </span>{</div>
231
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>;</div>
232
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
233
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
234
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">AllPathReachableSolve</a>();</div>
235
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed">isSatisfiableForAll</a>();</div>
236
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">isSatisfiableForPairs</a>();</div>
237
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
238
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
239
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d">getCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge) <span class="keyword">const</span>;</div>
240
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886">getRetSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge) <span class="keyword">const</span>;</div>
241
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
242
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
243
+ <div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aceb26d08f0d12367e4726e1ff0e25953"> 182</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#aceb26d08f0d12367e4726e1ff0e25953">condAnd</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;rhs)</div>
244
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div>
245
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4">condAnd</a>(lhs,rhs);</div>
246
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
247
+ <div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a3e729aba81cd64e8628df630f5a0f416"> 186</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a3e729aba81cd64e8628df630f5a0f416">condOr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;rhs)</div>
248
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div>
249
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161">condOr</a>(lhs,rhs);</div>
250
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
251
+ <div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a0dfd466a758dd0be4c2bc5832c50fbd8"> 190</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a0dfd466a758dd0be4c2bc5832c50fbd8">condNeg</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;cond)</div>
252
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div>
253
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817">condNeg</a>(cond);</div>
254
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
255
+ <div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a59cbb196069a863830b05904f16a190e"> 194</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a59cbb196069a863830b05904f16a190e">getTrueCond</a>()<span class="keyword"> const</span></div>
256
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword"> </span>{</div>
257
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3">getTrueCond</a>();</div>
258
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
259
+ <div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573"> 198</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">getFalseCond</a>()<span class="keyword"> const</span></div>
260
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword"> </span>{</div>
261
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">getFalseCond</a>();</div>
262
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
263
+ <div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a03d4ae6a3df1adf7f1ee5eebf1028c9c"> 202</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ProgSlice.html#a03d4ae6a3df1adf7f1ee5eebf1028c9c">dumpCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a>&amp; cond)<span class="keyword"> const</span></div>
264
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword"> </span>{</div>
265
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed">dumpCond</a>(cond);</div>
266
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
267
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">evalFinalCond</a>() <span class="keyword">const</span>;</div>
268
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9">evalFinalCond2Event</a>(<a class="code" href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">GenericBug::EventStack</a> &amp;eventStack) <span class="keyword">const</span>;</div>
269
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
270
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keyword">protected</span>:</div>
271
+ <div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a32ffd130984483b201c485da91ec467f"> 213</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a32ffd130984483b201c485da91ec467f">getSVFG</a>()<span class="keyword"> const</span></div>
272
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keyword"> </span>{</div>
273
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">svfg</a>;</div>
274
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
275
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
276
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">destroy</a>();</div>
277
+ <div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab514f387ae2122e919030c5006f1bbce"> 221</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab514f387ae2122e919030c5006f1bbce">clearCFCond</a>()</div>
278
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
279
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c">clearCFCond</a>();</div>
280
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div>
281
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
282
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
283
+ <div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aeb1924daad67a0b7ed9e5b4974755261"> 229</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#aeb1924daad67a0b7ed9e5b4974755261">getVFCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)<span class="keyword"> const</span></div>
284
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="keyword"> </span>{</div>
285
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; SVFGNodeToCondMap::const_iterator it = <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.find(node);</div>
286
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(it==<a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.end())</div>
287
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div>
288
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">getFalseCond</a>();</div>
289
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
290
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
291
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
292
+ <div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab5de7bf99935818ef1b0962e36b8624c"> 238</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab5de7bf99935818ef1b0962e36b8624c">setVFCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;cond)</div>
293
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div>
294
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; SVFGNodeToCondMap::iterator it = <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.find(node);</div>
295
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// until a fixed-point is reached (condition is not changed)</span></div>
296
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>.end() &amp;&amp; <a class="code" href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07">isEquivalentBranchCond</a>(it-&gt;second, cond))</div>
297
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
298
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
299
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>[node] = cond;</div>
300
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
301
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div>
302
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; </div>
303
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
304
+ <div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ae7f6f66b7e70cf872dc572b073f6d67b"> 252</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#ae7f6f66b7e70cf872dc572b073f6d67b">ComputeIntraVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst)</div>
305
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div>
306
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#af77d3631664b21a16818f54b03b5a832">ComputeIntraVFGGuard</a>(src,dst);</div>
307
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
308
+ <div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a7a3ba7e6c08d84f82690a594e286205f"> 256</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a7a3ba7e6c08d84f82690a594e286205f">ComputeInterCallVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* callBB)</div>
309
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div>
310
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#aedb63308f8980bbaf2b6c1bd2826a710">ComputeInterCallVFGGuard</a>(src,dst,callBB);</div>
311
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
312
+ <div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab7311a806f1c3899b5a4de106eac24b7"> 260</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#ab7311a806f1c3899b5a4de106eac24b7">ComputeInterRetVFGGuard</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* src, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* retBB)</div>
313
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div>
314
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a8bb7f9ce20b5a640aa48c32176f429bf">ComputeInterRetVFGGuard</a>(src,dst,retBB);</div>
315
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div>
316
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
317
+ <div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07"> 266</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07">isEquivalentBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> &amp;rhs)<span class="keyword"> const</span></div>
318
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keyword"> </span>{</div>
319
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#aa9027574586fd4fbb12039f595ecec71">isEquivalentBranchCond</a>(lhs, rhs);</div>
320
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; };</div>
321
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
322
+ <div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#abca08cad9cadc72caf6743df3ff934e7"> 274</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* <a class="code" href="classSVF_1_1ProgSlice.html#abca08cad9cadc72caf6743df3ff934e7">getSVFGNodeBB</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)<span class="keyword"> const</span></div>
323
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keyword"> </span>{</div>
324
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* icfgNode = node-&gt;<a class="code" href="classSVF_1_1VFGNode.html#a0675465e11d1d42ee7e2b7ab3c5de829">getICFGNode</a>();</div>
325
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;NullPtrSVFGNode&gt;(node) == <span class="keyword">false</span>)</div>
326
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div>
327
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> icfgNode-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ae7e734f4ceca40c6cf46f16d088780ca">getBB</a>();</div>
328
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
329
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
330
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div>
331
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
332
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
333
+ <div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#afad8cd2f720bf01eedd825c3c418abc0"> 286</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#afad8cd2f720bf01eedd825c3c418abc0">getCurSVFGNode</a>()<span class="keyword"> const</span></div>
334
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keyword"> </span>{</div>
335
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a>;</div>
336
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
337
+ <div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aee72d029c185c24b2bf01cdc0dcb25d8"> 290</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#aee72d029c185c24b2bf01cdc0dcb25d8">setCurSVFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node)</div>
338
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div>
339
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a> = node;</div>
340
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0">setCurEvalSVFGNode</a>(node);</div>
341
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div>
342
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ProgSlice.html#af55830503ef47b4b1c15c0e5b3cd6a3f">setFinalCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ProgSlice.html#aadf1128c0006981dff0d64dd1201e0c7">Condition</a> &amp;cond)</div>
343
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div>
344
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">finalCond</a> = cond;</div>
345
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
346
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; </div>
347
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#aadf1128c0006981dff0d64dd1201e0c7">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#abe0cc350db350bd4e9a9973c9052fc41">computeInvalidCondFromRemovedSUVFEdge</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a> * cur);</div>
348
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
349
+ <div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a174a74103c69afbbff58d30f5a41404c"> 305</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ProgSlice.html#a256122a6455854a99131b807f7eb8335">SVFGNodeToSVFGNodeSetMap</a>&amp; <a class="code" href="classSVF_1_1ProgSlice.html#a174a74103c69afbbff58d30f5a41404c">getRemovedSUVFEdges</a>()<span class="keyword"> const</span></div>
350
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="keyword"> </span>{</div>
351
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#aaac0aab3bb5c3533889779b4f63bd6a4">getRemovedSUVFEdges</a>();</div>
352
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div>
353
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; </div>
354
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="keyword">private</span>:</div>
355
+ <div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab"> 311</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a> <a class="code" href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">forwardslice</a>; </div>
356
+ <div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0"> 312</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a> <a class="code" href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">backwardslice</a>; </div>
357
+ <div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80"> 313</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVFGNodeSet</a> <a class="code" href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">sinks</a>; </div>
358
+ <div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087"> 314</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">root</a>; </div>
359
+ <div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce"> 315</a></span>&#160; <a class="code" href="classSVF_1_1ProgSlice.html#adaf0bb2e3104c9d86d997b2e7c93275e">SVFGNodeToCondMap</a> <a class="code" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">svfgNodeToCondMap</a>; </div>
360
+ <div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9"> 316</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">partialReachable</a>; </div>
361
+ <div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f"> 317</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">fullReachable</a>; </div>
362
+ <div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5"> 318</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">reachGlob</a>; </div>
363
+ <div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef"> 319</a></span>&#160; <a class="code" href="classSVF_1_1SaberCondAllocator.html">SaberCondAllocator</a>* <a class="code" href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">pathAllocator</a>; </div>
364
+ <div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b"> 320</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* <a class="code" href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">_curSVFGNode</a>; </div>
365
+ <div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47"> 321</a></span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Condition</a> <a class="code" href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">finalCond</a>; </div>
366
+ <div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde"> 322</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">svfg</a>; </div>
367
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;};</div>
368
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
369
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;} <span class="comment">// End namespace SVF</span></div>
370
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; </div>
371
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* PROGSLICE_H_ */</span><span class="preprocessor"></span></div>
362
372
  </div><!-- fragment --></div><!-- contents -->
363
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ada13c2389d43973ff7db18b7fca90087"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">SVF::ProgSlice::root</a></div><div class="ttdeci">const SVFGNode * root</div><div class="ttdoc">root node on the slice</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00303">ProgSlice.h:303</a></div></div>
364
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a7a3ba7e6c08d84f82690a594e286205f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a7a3ba7e6c08d84f82690a594e286205f">SVF::ProgSlice::ComputeInterCallVFGGuard</a></div><div class="ttdeci">Condition ComputeInterCallVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *callBB)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00253">ProgSlice.h:253</a></div></div>
365
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a6c63e9641e4d3d3f2f8c4a73bfba7a07"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07">SVF::ProgSlice::isEquivalentBranchCond</a></div><div class="ttdeci">bool isEquivalentBranchCond(const Condition &amp;lhs, const Condition &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00263">ProgSlice.h:263</a></div></div>
366
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a2a7a3a6dc518fd375f506d43b0ac9fc9"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">SVF::ProgSlice::partialReachable</a></div><div class="ttdeci">bool partialReachable</div><div class="ttdoc">reachable from some paths</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00305">ProgSlice.h:305</a></div></div>
373
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ada13c2389d43973ff7db18b7fca90087"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ada13c2389d43973ff7db18b7fca90087">SVF::ProgSlice::root</a></div><div class="ttdeci">const SVFGNode * root</div><div class="ttdoc">root node on the slice</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00314">ProgSlice.h:314</a></div></div>
374
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a7a3ba7e6c08d84f82690a594e286205f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a7a3ba7e6c08d84f82690a594e286205f">SVF::ProgSlice::ComputeInterCallVFGGuard</a></div><div class="ttdeci">Condition ComputeInterCallVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *callBB)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00256">ProgSlice.h:256</a></div></div>
375
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a6c63e9641e4d3d3f2f8c4a73bfba7a07"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a6c63e9641e4d3d3f2f8c4a73bfba7a07">SVF::ProgSlice::isEquivalentBranchCond</a></div><div class="ttdeci">bool isEquivalentBranchCond(const Condition &amp;lhs, const Condition &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00266">ProgSlice.h:266</a></div></div>
376
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a2a7a3a6dc518fd375f506d43b0ac9fc9"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a2a7a3a6dc518fd375f506d43b0ac9fc9">SVF::ProgSlice::partialReachable</a></div><div class="ttdeci">bool partialReachable</div><div class="ttdoc">reachable from some paths</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00316">ProgSlice.h:316</a></div></div>
367
377
  <div class="ttc" id="aclassSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
368
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a067480a9815fdb728cd259ef9b687e3e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">SVF::ProgSlice::isReachGlobal</a></div><div class="ttdeci">bool isReachGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00160">ProgSlice.h:160</a></div></div>
369
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9b52da69d79746765d0c12a5ce1b08f4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">SVF::SaberCondAllocator::getFalseCond</a></div><div class="ttdeci">Condition getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00102">SaberCondAllocator.h:102</a></div></div>
378
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a067480a9815fdb728cd259ef9b687e3e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">SVF::ProgSlice::isReachGlobal</a></div><div class="ttdeci">bool isReachGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00163">ProgSlice.h:163</a></div></div>
379
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a9b52da69d79746765d0c12a5ce1b08f4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a9b52da69d79746765d0c12a5ce1b08f4">SVF::SaberCondAllocator::getFalseCond</a></div><div class="ttdeci">Condition getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00103">SaberCondAllocator.h:103</a></div></div>
370
380
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aa7979418bed24fcecfc6fa04532cd586"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">SVF::ProgSlice::AllPathReachableSolve</a></div><div class="ttdeci">bool AllPathReachableSolve()</div><div class="ttdoc">Guarded reachability solve.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00043">ProgSlice.cpp:43</a></div></div>
371
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a03d4ae6a3df1adf7f1ee5eebf1028c9c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a03d4ae6a3df1adf7f1ee5eebf1028c9c">SVF::ProgSlice::dumpCond</a></div><div class="ttdeci">std::string dumpCond(const Condition &amp;cond) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00199">ProgSlice.h:199</a></div></div>
381
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a03d4ae6a3df1adf7f1ee5eebf1028c9c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a03d4ae6a3df1adf7f1ee5eebf1028c9c">SVF::ProgSlice::dumpCond</a></div><div class="ttdeci">std::string dumpCond(const Condition &amp;cond) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00202">ProgSlice.h:202</a></div></div>
372
382
  <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>
373
383
  <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>
374
384
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html"><div class="ttname"><a href="classSVF_1_1ProgSlice.html">SVF::ProgSlice</a></div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00049">ProgSlice.h:49</a></div></div>
375
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_adf620c97daed49735d21b485c448b4a2"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">SVF::ProgSlice::sinksBegin</a></div><div class="ttdeci">SVFGNodeSetIter sinksBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00132">ProgSlice.h:132</a></div></div>
376
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab36bc2aa24a2a90555a9714dcbfc83e5"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">SVF::ProgSlice::reachGlob</a></div><div class="ttdeci">bool reachGlob</div><div class="ttdoc">Whether slice reach a global.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00307">ProgSlice.h:307</a></div></div>
377
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a45fb7711498bcba60e931c9c2a9ccec4"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">SVF::ProgSlice::isSatisfiableForPairs</a></div><div class="ttdeci">bool isSatisfiableForPairs()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00111">ProgSlice.cpp:111</a></div></div>
378
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aeb1924daad67a0b7ed9e5b4974755261"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aeb1924daad67a0b7ed9e5b4974755261">SVF::ProgSlice::getVFCond</a></div><div class="ttdeci">Condition getVFCond(const SVFGNode *node) const</div><div class="ttdoc">Get/set VF (value-flow) and CF (control-flow) conditions.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00226">ProgSlice.h:226</a></div></div>
379
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab4da58e7c4cd2c80b4830efeaa896f80"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">SVF::ProgSlice::sinks</a></div><div class="ttdeci">SVFGNodeSet sinks</div><div class="ttdoc">a set of sink nodes</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00302">ProgSlice.h:302</a></div></div>
385
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_adf620c97daed49735d21b485c448b4a2"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">SVF::ProgSlice::sinksBegin</a></div><div class="ttdeci">SVFGNodeSetIter sinksBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00135">ProgSlice.h:135</a></div></div>
386
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab36bc2aa24a2a90555a9714dcbfc83e5"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab36bc2aa24a2a90555a9714dcbfc83e5">SVF::ProgSlice::reachGlob</a></div><div class="ttdeci">bool reachGlob</div><div class="ttdoc">Whether slice reach a global.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00318">ProgSlice.h:318</a></div></div>
387
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a45fb7711498bcba60e931c9c2a9ccec4"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">SVF::ProgSlice::isSatisfiableForPairs</a></div><div class="ttdeci">bool isSatisfiableForPairs()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00158">ProgSlice.cpp:158</a></div></div>
388
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aeb1924daad67a0b7ed9e5b4974755261"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aeb1924daad67a0b7ed9e5b4974755261">SVF::ProgSlice::getVFCond</a></div><div class="ttdeci">Condition getVFCond(const SVFGNode *node) const</div><div class="ttdoc">Get/set VF (value-flow) and CF (control-flow) conditions.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00229">ProgSlice.h:229</a></div></div>
389
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab4da58e7c4cd2c80b4830efeaa896f80"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab4da58e7c4cd2c80b4830efeaa896f80">SVF::ProgSlice::sinks</a></div><div class="ttdeci">SVFGNodeSet sinks</div><div class="ttdoc">a set of sink nodes</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00313">ProgSlice.h:313</a></div></div>
380
390
  <div class="ttc" id="acJSON_8cpp_html_a65e9886d74aaee76545e83dd09011727"><div class="ttname"><a href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a></div><div class="ttdeci">#define false</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00070">cJSON.cpp:70</a></div></div>
391
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a1e5ab069ebb4d17f04788a37fa616cab"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a1e5ab069ebb4d17f04788a37fa616cab">SVF::SaberCondAllocator::SVFGNodeToSVFGNodeSetMap</a></div><div class="ttdeci">Map&lt; const SVFGNode *, Set&lt; const SVFGNode * &gt; &gt; SVFGNodeToSVFGNodeSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00059">SaberCondAllocator.h:59</a></div></div>
381
392
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a4864972e12f3e95f06bcf2bf8c847b3a"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a4864972e12f3e95f06bcf2bf8c847b3a">SVF::ProgSlice::SVFGNodeSet</a></div><div class="ttdeci">Set&lt; const SVFGNode * &gt; SVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00053">ProgSlice.h:53</a></div></div>
382
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a967fa01a8baae0dd086b5c09ae0faa7b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">SVF::ProgSlice::getBackwardSliceSize</a></div><div class="ttdeci">u32_t getBackwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00078">ProgSlice.h:78</a></div></div>
383
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a632db4b2e69848955925746ac721d94f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">SVF::ProgSlice::fullReachable</a></div><div class="ttdeci">bool fullReachable</div><div class="ttdoc">reachable from all paths</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00306">ProgSlice.h:306</a></div></div>
384
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aae54f4e8a827f55abe08762b69d9f84b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">SVF::ProgSlice::getForwardSliceSize</a></div><div class="ttdeci">u32_t getForwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00074">ProgSlice.h:74</a></div></div>
393
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a967fa01a8baae0dd086b5c09ae0faa7b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">SVF::ProgSlice::getBackwardSliceSize</a></div><div class="ttdeci">u32_t getBackwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00081">ProgSlice.h:81</a></div></div>
394
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a632db4b2e69848955925746ac721d94f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a632db4b2e69848955925746ac721d94f">SVF::ProgSlice::fullReachable</a></div><div class="ttdeci">bool fullReachable</div><div class="ttdoc">reachable from all paths</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00317">ProgSlice.h:317</a></div></div>
395
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aae54f4e8a827f55abe08762b69d9f84b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">SVF::ProgSlice::getForwardSliceSize</a></div><div class="ttdeci">u32_t getForwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00077">ProgSlice.h:77</a></div></div>
385
396
  <div class="ttc" id="aclassSVF_1_1GenericBug_html_acc65b033bfd61257d5b6fdbf932dfafe"><div class="ttname"><a href="classSVF_1_1GenericBug.html#acc65b033bfd61257d5b6fdbf932dfafe">SVF::GenericBug::EventStack</a></div><div class="ttdeci">std::vector&lt; SVFBugEvent &gt; EventStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBugReport_8h_source.html#l00083">SVFBugReport.h:83</a></div></div>
386
397
  <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>
387
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a32ffd130984483b201c485da91ec467f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a32ffd130984483b201c485da91ec467f">SVF::ProgSlice::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00210">ProgSlice.h:210</a></div></div>
388
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab5810f8a7a994f0637c54b94d0367a89"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89">SVF::ProgSlice::backwardSliceBegin</a></div><div class="ttdeci">SVFGNodeSetIter backwardSliceBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00108">ProgSlice.h:108</a></div></div>
389
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a8ae327bc7bf72f892d87730edfc67d0d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d">SVF::ProgSlice::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite(const SVFGEdge *edge) const</div><div class="ttdoc">Get callsite ID and get returnsiteID from SVFGEdge.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00132">ProgSlice.cpp:132</a></div></div>
390
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ae6102647fa4985142c293116516612cd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">SVF::ProgSlice::setAllReachable</a></div><div class="ttdeci">void setAllReachable()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00144">ProgSlice.h:144</a></div></div>
391
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab514f387ae2122e919030c5006f1bbce"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab514f387ae2122e919030c5006f1bbce">SVF::ProgSlice::clearCFCond</a></div><div class="ttdeci">void clearCFCond()</div><div class="ttdoc">Clear Control flow conditions before each VF computation.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00218">ProgSlice.h:218</a></div></div>
398
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a32ffd130984483b201c485da91ec467f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a32ffd130984483b201c485da91ec467f">SVF::ProgSlice::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00213">ProgSlice.h:213</a></div></div>
399
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab5810f8a7a994f0637c54b94d0367a89"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89">SVF::ProgSlice::backwardSliceBegin</a></div><div class="ttdeci">SVFGNodeSetIter backwardSliceBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00111">ProgSlice.h:111</a></div></div>
400
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a8ae327bc7bf72f892d87730edfc67d0d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a8ae327bc7bf72f892d87730edfc67d0d">SVF::ProgSlice::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite(const SVFGEdge *edge) const</div><div class="ttdoc">Get callsite ID and get returnsiteID from SVFGEdge.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00179">ProgSlice.cpp:179</a></div></div>
401
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ae6102647fa4985142c293116516612cd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">SVF::ProgSlice::setAllReachable</a></div><div class="ttdeci">void setAllReachable()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00147">ProgSlice.h:147</a></div></div>
402
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab514f387ae2122e919030c5006f1bbce"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab514f387ae2122e919030c5006f1bbce">SVF::ProgSlice::clearCFCond</a></div><div class="ttdeci">void clearCFCond()</div><div class="ttdoc">Clear Control flow conditions before each VF computation.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00221">ProgSlice.h:221</a></div></div>
392
403
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aadf1128c0006981dff0d64dd1201e0c7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aadf1128c0006981dff0d64dd1201e0c7">SVF::ProgSlice::Condition</a></div><div class="ttdeci">SaberCondAllocator::Condition Condition</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00055">ProgSlice.h:55</a></div></div>
393
404
  <div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
394
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a011fcd4f081926e808e15630cb2d4b47"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">SVF::ProgSlice::finalCond</a></div><div class="ttdeci">Condition finalCond</div><div class="ttdoc">final condition</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00310">ProgSlice.h:310</a></div></div>
395
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_acee5145fb261280a1f8187184e393aed"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">SVF::ProgSlice::addToSinks</a></div><div class="ttdeci">void addToSinks(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00124">ProgSlice.h:124</a></div></div>
396
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a215c9142830814ae838d15d9b7b40af9"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9">SVF::ProgSlice::evalFinalCond2Event</a></div><div class="ttdeci">void evalFinalCond2Event(GenericBug::EventStack &amp;eventStack) const</div><div class="ttdoc">Add final condition to eventStack.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00149">ProgSlice.cpp:149</a></div></div>
405
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a011fcd4f081926e808e15630cb2d4b47"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a011fcd4f081926e808e15630cb2d4b47">SVF::ProgSlice::finalCond</a></div><div class="ttdeci">Condition finalCond</div><div class="ttdoc">final condition</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00321">ProgSlice.h:321</a></div></div>
406
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_acee5145fb261280a1f8187184e393aed"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">SVF::ProgSlice::addToSinks</a></div><div class="ttdeci">void addToSinks(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00127">ProgSlice.h:127</a></div></div>
407
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a215c9142830814ae838d15d9b7b40af9"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a215c9142830814ae838d15d9b7b40af9">SVF::ProgSlice::evalFinalCond2Event</a></div><div class="ttdeci">void evalFinalCond2Event(GenericBug::EventStack &amp;eventStack) const</div><div class="ttdoc">Add final condition to eventStack.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00196">ProgSlice.cpp:196</a></div></div>
397
408
  <div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00522">SVFValue.h:522</a></div></div>
398
409
  <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>
410
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a174a74103c69afbbff58d30f5a41404c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a174a74103c69afbbff58d30f5a41404c">SVF::ProgSlice::getRemovedSUVFEdges</a></div><div class="ttdeci">const SVFGNodeToSVFGNodeSetMap &amp; getRemovedSUVFEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00305">ProgSlice.h:305</a></div></div>
399
411
  <div class="ttc" id="aclassSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00385">ICFGNode.h:385</a></div></div>
400
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a79682a4e4da23d0eaf0066a91c2f7bd4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4">SVF::SaberCondAllocator::condAnd</a></div><div class="ttdeci">Condition condAnd(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdoc">Condition operations.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00086">SaberCondAllocator.h:86</a></div></div>
401
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aeda61b2786b128e8c45089de60dcafce"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice::svfgNodeToCondMap</a></div><div class="ttdeci">SVFGNodeToCondMap svfgNodeToCondMap</div><div class="ttdoc">map a SVFGNode to its path condition starting from root</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00304">ProgSlice.h:304</a></div></div>
402
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a03a1ef4d56958fa4a0c3a3a95806203d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">SVF::ProgSlice::getSinks</a></div><div class="ttdeci">const SVFGNodeSet &amp; getSinks() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00128">ProgSlice.h:128</a></div></div>
403
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00120">ProgSlice.h:120</a></div></div>
412
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a79682a4e4da23d0eaf0066a91c2f7bd4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a79682a4e4da23d0eaf0066a91c2f7bd4">SVF::SaberCondAllocator::condAnd</a></div><div class="ttdeci">Condition condAnd(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdoc">Condition operations.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00087">SaberCondAllocator.h:87</a></div></div>
413
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a256122a6455854a99131b807f7eb8335"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a256122a6455854a99131b807f7eb8335">SVF::ProgSlice::SVFGNodeToSVFGNodeSetMap</a></div><div class="ttdeci">SaberCondAllocator::SVFGNodeToSVFGNodeSetMap SVFGNodeToSVFGNodeSetMap</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00061">ProgSlice.h:61</a></div></div>
414
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aaac0aab3bb5c3533889779b4f63bd6a4"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aaac0aab3bb5c3533889779b4f63bd6a4">SVF::SaberCondAllocator::getRemovedSUVFEdges</a></div><div class="ttdeci">SVFGNodeToSVFGNodeSetMap &amp; getRemovedSUVFEdges()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00244">SaberCondAllocator.h:244</a></div></div>
415
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aeda61b2786b128e8c45089de60dcafce"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice::svfgNodeToCondMap</a></div><div class="ttdeci">SVFGNodeToCondMap svfgNodeToCondMap</div><div class="ttdoc">map a SVFGNode to its path condition starting from root</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00315">ProgSlice.h:315</a></div></div>
416
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a03a1ef4d56958fa4a0c3a3a95806203d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a03a1ef4d56958fa4a0c3a3a95806203d">SVF::ProgSlice::getSinks</a></div><div class="ttdeci">const SVFGNodeSet &amp; getSinks() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00131">ProgSlice.h:131</a></div></div>
417
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00123">ProgSlice.h:123</a></div></div>
404
418
  <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aa9027574586fd4fbb12039f595ecec71"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aa9027574586fd4fbb12039f595ecec71">SVF::SaberCondAllocator::isEquivalentBranchCond</a></div><div class="ttdeci">bool isEquivalentBranchCond(const Condition &amp;lhs, const Condition &amp;rhs) const</div><div class="ttdoc">Whether lhs and rhs are equivalent branch conditions.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00610">SaberCondAllocator.cpp:610</a></div></div>
405
419
  <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_aedb63308f8980bbaf2b6c1bd2826a710"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#aedb63308f8980bbaf2b6c1bd2826a710">SVF::SaberCondAllocator::ComputeInterCallVFGGuard</a></div><div class="ttdeci">virtual Condition ComputeInterCallVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *callBB)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00485">SaberCondAllocator.cpp:485</a></div></div>
406
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ac12dc4caa0c764ae69175e787efad2ab"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">SVF::ProgSlice::forwardslice</a></div><div class="ttdeci">SVFGNodeSet forwardslice</div><div class="ttdoc">the forward slice</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00300">ProgSlice.h:300</a></div></div>
407
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a0dfd466a758dd0be4c2bc5832c50fbd8"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a0dfd466a758dd0be4c2bc5832c50fbd8">SVF::ProgSlice::condNeg</a></div><div class="ttdeci">Condition condNeg(const Condition &amp;cond)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00187">ProgSlice.h:187</a></div></div>
408
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_af3095788fc3d7798abfae10e3216968b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">SVF::ProgSlice::_curSVFGNode</a></div><div class="ttdeci">const SVFGNode * _curSVFGNode</div><div class="ttdoc">current svfg node during guard computation</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00309">ProgSlice.h:309</a></div></div>
420
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ac12dc4caa0c764ae69175e787efad2ab"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac12dc4caa0c764ae69175e787efad2ab">SVF::ProgSlice::forwardslice</a></div><div class="ttdeci">SVFGNodeSet forwardslice</div><div class="ttdoc">the forward slice</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00311">ProgSlice.h:311</a></div></div>
421
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a0dfd466a758dd0be4c2bc5832c50fbd8"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a0dfd466a758dd0be4c2bc5832c50fbd8">SVF::ProgSlice::condNeg</a></div><div class="ttdeci">Condition condNeg(const Condition &amp;cond)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00190">ProgSlice.h:190</a></div></div>
422
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_af3095788fc3d7798abfae10e3216968b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af3095788fc3d7798abfae10e3216968b">SVF::ProgSlice::_curSVFGNode</a></div><div class="ttdeci">const SVFGNode * _curSVFGNode</div><div class="ttdoc">current svfg node during guard computation</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00320">ProgSlice.h:320</a></div></div>
409
423
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html_adaf0bb2e3104c9d86d997b2e7c93275e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#adaf0bb2e3104c9d86d997b2e7c93275e">SVF::ProgSlice::SVFGNodeToCondMap</a></div><div class="ttdeci">Map&lt; const SVFGNode *, Condition &gt; SVFGNodeToCondMap</div><div class="ttdoc">map a SVFGNode to its condition during value-flow guard computation</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00056">ProgSlice.h:56</a></div></div>
410
424
  <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>
411
425
  <div class="ttc" id="aSVFBugReport_8h_html"><div class="ttname"><a href="SVFBugReport_8h.html">SVFBugReport.h</a></div></div>
412
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_afbf864cc47d6d06286529dbcc01c03c0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afbf864cc47d6d06286529dbcc01c03c0">SVF::ProgSlice::ProgSlice</a></div><div class="ttdeci">ProgSlice(const SVFGNode *src, SaberCondAllocator *pa, const SVFG *graph)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00062">ProgSlice.h:62</a></div></div>
426
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_abe0cc350db350bd4e9a9973c9052fc41"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#abe0cc350db350bd4e9a9973c9052fc41">SVF::ProgSlice::computeInvalidCondFromRemovedSUVFEdge</a></div><div class="ttdeci">Condition computeInvalidCondFromRemovedSUVFEdge(const SVFGNode *cur)</div><div class="ttdoc">Compute invalid branch condition stemming from removed strong update value-flow edges.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00108">ProgSlice.cpp:108</a></div></div>
427
+ <div class="ttc" id="anamespaceSVF_html_a5dfa3fa5129bacdc0be0c051ccf386df"><div class="ttname"><a href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVF::SVFGNode</a></div><div class="ttdeci">VFGNode SVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00043">SVFG.h:43</a></div></div>
428
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_afbf864cc47d6d06286529dbcc01c03c0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afbf864cc47d6d06286529dbcc01c03c0">SVF::ProgSlice::ProgSlice</a></div><div class="ttdeci">ProgSlice(const SVFGNode *src, SaberCondAllocator *pa, const SVFG *graph)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00065">ProgSlice.h:65</a></div></div>
413
429
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html_ae7e734f4ceca40c6cf46f16d088780ca"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ae7e734f4ceca40c6cf46f16d088780ca">SVF::ICFGNode::getBB</a></div><div class="ttdeci">virtual const SVFBasicBlock * getBB() const</div><div class="ttdoc">Return the basic block of this ICFGNode.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00092">ICFGNode.h:92</a></div></div>
414
430
  <div class="ttc" id="aSVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
415
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a100c1962eac6d7af420defc827a025ed"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed">SVF::SaberCondAllocator::dumpCond</a></div><div class="ttdeci">std::string dumpCond(const Condition &amp;cond) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00114">SaberCondAllocator.h:114</a></div></div>
416
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a59cbb196069a863830b05904f16a190e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a59cbb196069a863830b05904f16a190e">SVF::ProgSlice::getTrueCond</a></div><div class="ttdeci">Condition getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00191">ProgSlice.h:191</a></div></div>
417
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_addb781260db48c0571c0083a45065ca0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">SVF::ProgSlice::backwardslice</a></div><div class="ttdeci">SVFGNodeSet backwardslice</div><div class="ttdoc">the backward slice</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00301">ProgSlice.h:301</a></div></div>
431
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a100c1962eac6d7af420defc827a025ed"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a100c1962eac6d7af420defc827a025ed">SVF::SaberCondAllocator::dumpCond</a></div><div class="ttdeci">std::string dumpCond(const Condition &amp;cond) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00115">SaberCondAllocator.h:115</a></div></div>
432
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a59cbb196069a863830b05904f16a190e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a59cbb196069a863830b05904f16a190e">SVF::ProgSlice::getTrueCond</a></div><div class="ttdeci">Condition getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00194">ProgSlice.h:194</a></div></div>
433
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_addb781260db48c0571c0083a45065ca0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#addb781260db48c0571c0083a45065ca0">SVF::ProgSlice::backwardslice</a></div><div class="ttdeci">SVFGNodeSet backwardslice</div><div class="ttdoc">the backward slice</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00312">ProgSlice.h:312</a></div></div>
418
434
  <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a8bb7f9ce20b5a640aa48c32176f429bf"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a8bb7f9ce20b5a640aa48c32176f429bf">SVF::SaberCondAllocator::ComputeInterRetVFGGuard</a></div><div class="ttdeci">virtual Condition ComputeInterRetVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *retBB)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00502">SaberCondAllocator.cpp:502</a></div></div>
419
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ae482fcb138aaf345586a39daa34ff895"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895">SVF::ProgSlice::forwardSliceBegin</a></div><div class="ttdeci">SVFGNodeSetIter forwardSliceBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00100">ProgSlice.h:100</a></div></div>
420
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a899332b210414ac991b57e83851ee5be"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">SVF::ProgSlice::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00199">ProgSlice.cpp:199</a></div></div>
421
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a066430ffa98a3fa0a5ad48d26e0450f7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">SVF::ProgSlice::inBackwardSlice</a></div><div class="ttdeci">bool inBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00096">ProgSlice.h:96</a></div></div>
422
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_af6f137be08ca0e743424ff07d679777d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">SVF::ProgSlice::setPartialReachable</a></div><div class="ttdeci">void setPartialReachable()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00140">ProgSlice.h:140</a></div></div>
423
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aee72d029c185c24b2bf01cdc0dcb25d8"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aee72d029c185c24b2bf01cdc0dcb25d8">SVF::ProgSlice::setCurSVFGNode</a></div><div class="ttdeci">void setCurSVFGNode(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00287">ProgSlice.h:287</a></div></div>
424
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a27636f096ec825c4d5cb1dca608afb31"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">SVF::ProgSlice::sinksEnd</a></div><div class="ttdeci">SVFGNodeSetIter sinksEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00136">ProgSlice.h:136</a></div></div>
425
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab5de7bf99935818ef1b0962e36b8624c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab5de7bf99935818ef1b0962e36b8624c">SVF::ProgSlice::setVFCond</a></div><div class="ttdeci">bool setVFCond(const SVFGNode *node, const Condition &amp;cond)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00235">ProgSlice.h:235</a></div></div>
426
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a0017e160c2a5412947c170f944e593bd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">SVF::ProgSlice::addToForwardSlice</a></div><div class="ttdeci">void addToForwardSlice(const SVFGNode *node)</div><div class="ttdoc">Forward and backward slice operations.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00084">ProgSlice.h:84</a></div></div>
427
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a3822badbbe9ac808296d5248f2dbf8e2"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">SVF::ProgSlice::isPartialReachable</a></div><div class="ttdeci">bool isPartialReachable() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00152">ProgSlice.h:152</a></div></div>
428
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ac98eccef9fc2521b833a8c14b43e49e1"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">SVF::ProgSlice::addToBackwardSlice</a></div><div class="ttdeci">void addToBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00088">ProgSlice.h:88</a></div></div>
429
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_afad8cd2f720bf01eedd825c3c418abc0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afad8cd2f720bf01eedd825c3c418abc0">SVF::ProgSlice::getCurSVFGNode</a></div><div class="ttdeci">const SVFGNode * getCurSVFGNode() const</div><div class="ttdoc">Get/set current SVFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00283">ProgSlice.h:283</a></div></div>
435
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ae482fcb138aaf345586a39daa34ff895"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895">SVF::ProgSlice::forwardSliceBegin</a></div><div class="ttdeci">SVFGNodeSetIter forwardSliceBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00103">ProgSlice.h:103</a></div></div>
436
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a899332b210414ac991b57e83851ee5be"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a899332b210414ac991b57e83851ee5be">SVF::ProgSlice::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Release memory.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00246">ProgSlice.cpp:246</a></div></div>
437
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a066430ffa98a3fa0a5ad48d26e0450f7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">SVF::ProgSlice::inBackwardSlice</a></div><div class="ttdeci">bool inBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00099">ProgSlice.h:99</a></div></div>
438
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_af6f137be08ca0e743424ff07d679777d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">SVF::ProgSlice::setPartialReachable</a></div><div class="ttdeci">void setPartialReachable()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00143">ProgSlice.h:143</a></div></div>
439
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aee72d029c185c24b2bf01cdc0dcb25d8"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aee72d029c185c24b2bf01cdc0dcb25d8">SVF::ProgSlice::setCurSVFGNode</a></div><div class="ttdeci">void setCurSVFGNode(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00290">ProgSlice.h:290</a></div></div>
440
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a27636f096ec825c4d5cb1dca608afb31"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">SVF::ProgSlice::sinksEnd</a></div><div class="ttdeci">SVFGNodeSetIter sinksEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00139">ProgSlice.h:139</a></div></div>
441
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab5de7bf99935818ef1b0962e36b8624c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab5de7bf99935818ef1b0962e36b8624c">SVF::ProgSlice::setVFCond</a></div><div class="ttdeci">bool setVFCond(const SVFGNode *node, const Condition &amp;cond)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00238">ProgSlice.h:238</a></div></div>
442
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a0017e160c2a5412947c170f944e593bd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">SVF::ProgSlice::addToForwardSlice</a></div><div class="ttdeci">void addToForwardSlice(const SVFGNode *node)</div><div class="ttdoc">Forward and backward slice operations.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00087">ProgSlice.h:87</a></div></div>
443
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a3822badbbe9ac808296d5248f2dbf8e2"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">SVF::ProgSlice::isPartialReachable</a></div><div class="ttdeci">bool isPartialReachable() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00155">ProgSlice.h:155</a></div></div>
444
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ac98eccef9fc2521b833a8c14b43e49e1"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">SVF::ProgSlice::addToBackwardSlice</a></div><div class="ttdeci">void addToBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00091">ProgSlice.h:91</a></div></div>
445
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_afad8cd2f720bf01eedd825c3c418abc0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afad8cd2f720bf01eedd825c3c418abc0">SVF::ProgSlice::getCurSVFGNode</a></div><div class="ttdeci">const SVFGNode * getCurSVFGNode() const</div><div class="ttdoc">Get/set current SVFG node.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00286">ProgSlice.h:286</a></div></div>
430
446
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a684e44ade783439c6f77a8d84eed282c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a684e44ade783439c6f77a8d84eed282c">SVF::ProgSlice::VFWorkList</a></div><div class="ttdeci">FIFOWorkList&lt; const SVFGNode * &gt; VFWorkList</div><div class="ttdoc">worklist for value-flow guard computation</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00058">ProgSlice.h:58</a></div></div>
431
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a2f96f034b7236791fe1d4d351174722e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">SVF::ProgSlice::isAllReachable</a></div><div class="ttdeci">bool isAllReachable() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00156">ProgSlice.h:156</a></div></div>
447
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a2f96f034b7236791fe1d4d351174722e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">SVF::ProgSlice::isAllReachable</a></div><div class="ttdeci">bool isAllReachable() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00159">ProgSlice.h:159</a></div></div>
432
448
  <div class="ttc" id="aSaberCondAllocator_8h_html"><div class="ttname"><a href="SaberCondAllocator_8h.html">SaberCondAllocator.h</a></div></div>
433
449
  <div class="ttc" id="aDPItem_8h_html"><div class="ttname"><a href="DPItem_8h.html">DPItem.h</a></div></div>
434
450
  <div class="ttc" id="aWorkList_8h_html"><div class="ttname"><a href="WorkList_8h.html">WorkList.h</a></div></div>
435
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_afac06b0be2b04cb8a65af21fd697b756"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">SVF::ProgSlice::evalFinalCond</a></div><div class="ttdeci">std::string evalFinalCond() const</div><div class="ttdoc">Evaluate final condition.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00173">ProgSlice.cpp:173</a></div></div>
451
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_afac06b0be2b04cb8a65af21fd697b756"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">SVF::ProgSlice::evalFinalCond</a></div><div class="ttdeci">std::string evalFinalCond() const</div><div class="ttdoc">Evaluate final condition.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00220">ProgSlice.cpp:220</a></div></div>
436
452
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
437
453
  <div class="ttc" id="aclassSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
438
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ae7f6f66b7e70cf872dc572b073f6d67b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae7f6f66b7e70cf872dc572b073f6d67b">SVF::ProgSlice::ComputeIntraVFGGuard</a></div><div class="ttdeci">Condition ComputeIntraVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst)</div><div class="ttdoc">Compute guards for value-flows.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00249">ProgSlice.h:249</a></div></div>
439
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5406e73b860c419143035ee3774e7c1c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c">SVF::SaberCondAllocator::clearCFCond</a></div><div class="ttdeci">void clearCFCond()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00176">SaberCondAllocator.h:176</a></div></div>
440
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ae717f565b947a72651c0de19bf6bcca0"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0">SVF::SaberCondAllocator::setCurEvalSVFGNode</a></div><div class="ttdeci">void setCurEvalSVFGNode(const SVFGNode *node)</div><div class="ttdoc">Set current value for branch condition evaluation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00181">SaberCondAllocator.h:181</a></div></div>
454
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ae7f6f66b7e70cf872dc572b073f6d67b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ae7f6f66b7e70cf872dc572b073f6d67b">SVF::ProgSlice::ComputeIntraVFGGuard</a></div><div class="ttdeci">Condition ComputeIntraVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst)</div><div class="ttdoc">Compute guards for value-flows.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00252">ProgSlice.h:252</a></div></div>
455
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a5406e73b860c419143035ee3774e7c1c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a5406e73b860c419143035ee3774e7c1c">SVF::SaberCondAllocator::clearCFCond</a></div><div class="ttdeci">void clearCFCond()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00177">SaberCondAllocator.h:177</a></div></div>
456
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ae717f565b947a72651c0de19bf6bcca0"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ae717f565b947a72651c0de19bf6bcca0">SVF::SaberCondAllocator::setCurEvalSVFGNode</a></div><div class="ttdeci">void setCurEvalSVFGNode(const SVFGNode *node)</div><div class="ttdoc">Set current value for branch condition evaluation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00182">SaberCondAllocator.h:182</a></div></div>
441
457
  <div class="ttc" id="aclassSVF_1_1VFGNode_html_a0675465e11d1d42ee7e2b7ab3c5de829"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a0675465e11d1d42ee7e2b7ab3c5de829">SVF::VFGNode::getICFGNode</a></div><div class="ttdeci">virtual const ICFGNode * getICFGNode() const</div><div class="ttdoc">Return corresponding ICFG node.</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00072">VFGNode.h:72</a></div></div>
442
458
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a7076e2b7e187a295824189f30ca894e5"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a7076e2b7e187a295824189f30ca894e5">SVF::ProgSlice::CFWorkList</a></div><div class="ttdeci">FIFOWorkList&lt; const SVFBasicBlock * &gt; CFWorkList</div><div class="ttdoc">worklist for control-flow guard computation</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00059">ProgSlice.h:59</a></div></div>
443
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a3e729aba81cd64e8628df630f5a0f416"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a3e729aba81cd64e8628df630f5a0f416">SVF::ProgSlice::condOr</a></div><div class="ttdeci">Condition condOr(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00183">ProgSlice.h:183</a></div></div>
444
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a457a759c552a1418538769d79d7a7dde"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">SVF::ProgSlice::svfg</a></div><div class="ttdeci">const SVFG * svfg</div><div class="ttdoc">SVFG.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00311">ProgSlice.h:311</a></div></div>
445
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_af55830503ef47b4b1c15c0e5b3cd6a3f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af55830503ef47b4b1c15c0e5b3cd6a3f">SVF::ProgSlice::setFinalCond</a></div><div class="ttdeci">void setFinalCond(const Condition &amp;cond)</div><div class="ttdoc">Set final condition after all path reachability analysis.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00294">ProgSlice.h:294</a></div></div>
446
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aceb26d08f0d12367e4726e1ff0e25953"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aceb26d08f0d12367e4726e1ff0e25953">SVF::ProgSlice::condAnd</a></div><div class="ttdeci">Condition condAnd(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdoc">Condition operations.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00179">ProgSlice.h:179</a></div></div>
447
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aaf001b6abc4ecb466ab74b26981ea7ef"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">SVF::ProgSlice::pathAllocator</a></div><div class="ttdeci">SaberCondAllocator * pathAllocator</div><div class="ttdoc">path condition allocator</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00308">ProgSlice.h:308</a></div></div>
448
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ab9d7f1f5c5f22b190ec34255dead41b3"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3">SVF::SaberCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00098">SaberCondAllocator.h:98</a></div></div>
459
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a3e729aba81cd64e8628df630f5a0f416"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a3e729aba81cd64e8628df630f5a0f416">SVF::ProgSlice::condOr</a></div><div class="ttdeci">Condition condOr(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00186">ProgSlice.h:186</a></div></div>
460
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a457a759c552a1418538769d79d7a7dde"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a457a759c552a1418538769d79d7a7dde">SVF::ProgSlice::svfg</a></div><div class="ttdeci">const SVFG * svfg</div><div class="ttdoc">SVFG.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00322">ProgSlice.h:322</a></div></div>
461
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_af55830503ef47b4b1c15c0e5b3cd6a3f"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af55830503ef47b4b1c15c0e5b3cd6a3f">SVF::ProgSlice::setFinalCond</a></div><div class="ttdeci">void setFinalCond(const Condition &amp;cond)</div><div class="ttdoc">Set final condition after all path reachability analysis.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00297">ProgSlice.h:297</a></div></div>
462
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aceb26d08f0d12367e4726e1ff0e25953"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aceb26d08f0d12367e4726e1ff0e25953">SVF::ProgSlice::condAnd</a></div><div class="ttdeci">Condition condAnd(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdoc">Condition operations.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00182">ProgSlice.h:182</a></div></div>
463
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aaf001b6abc4ecb466ab74b26981ea7ef"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aaf001b6abc4ecb466ab74b26981ea7ef">SVF::ProgSlice::pathAllocator</a></div><div class="ttdeci">SaberCondAllocator * pathAllocator</div><div class="ttdoc">path condition allocator</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00319">ProgSlice.h:319</a></div></div>
464
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ab9d7f1f5c5f22b190ec34255dead41b3"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ab9d7f1f5c5f22b190ec34255dead41b3">SVF::SaberCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00099">SaberCondAllocator.h:99</a></div></div>
449
465
  <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_af77d3631664b21a16818f54b03b5a832"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#af77d3631664b21a16818f54b03b5a832">SVF::SaberCondAllocator::ComputeIntraVFGGuard</a></div><div class="ttdeci">virtual Condition ComputeIntraVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst)</div><div class="ttdoc">Guard Computation for a value-flow (between two basic blocks)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00516">SaberCondAllocator.cpp:516</a></div></div>
450
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a5a4b7f34001cc90f9b60222caee1bde6"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">SVF::ProgSlice::inForwardSlice</a></div><div class="ttdeci">bool inForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00092">ProgSlice.h:92</a></div></div>
466
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a5a4b7f34001cc90f9b60222caee1bde6"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">SVF::ProgSlice::inForwardSlice</a></div><div class="ttdeci">bool inForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00095">ProgSlice.h:95</a></div></div>
451
467
  <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html">SVF::SaberCondAllocator</a></div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00046">SaberCondAllocator.h:46</a></div></div>
452
468
  <div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
453
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aed4bedc716a3e252e44a6f28e677d61c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c">SVF::ProgSlice::backwardSliceEnd</a></div><div class="ttdeci">SVFGNodeSetIter backwardSliceEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00112">ProgSlice.h:112</a></div></div>
454
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a397632ce0c523c4a54c5dc578606d14d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">SVF::ProgSlice::setReachGlobal</a></div><div class="ttdeci">bool setReachGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00148">ProgSlice.h:148</a></div></div>
455
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ad761a9848d2dab7700a7fdeb91c2454d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ad761a9848d2dab7700a7fdeb91c2454d">SVF::ProgSlice::~ProgSlice</a></div><div class="ttdeci">virtual ~ProgSlice()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00069">ProgSlice.h:69</a></div></div>
456
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a9d81f792b6a8b15395a63d06daf56573"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">SVF::ProgSlice::getFalseCond</a></div><div class="ttdeci">Condition getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00195">ProgSlice.h:195</a></div></div>
457
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a2e4c3f5149a5085a5c8bb7547eae8161"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161">SVF::SaberCondAllocator::condOr</a></div><div class="ttdeci">Condition condOr(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00090">SaberCondAllocator.h:90</a></div></div>
458
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_abca08cad9cadc72caf6743df3ff934e7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#abca08cad9cadc72caf6743df3ff934e7">SVF::ProgSlice::getSVFGNodeBB</a></div><div class="ttdeci">const SVFBasicBlock * getSVFGNodeBB(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00271">ProgSlice.h:271</a></div></div>
459
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a07ce77afbf69d5e2a47afaa39eaea886"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886">SVF::ProgSlice::getRetSite</a></div><div class="ttdeci">const CallICFGNode * getRetSite(const SVFGEdge *edge) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00140">ProgSlice.cpp:140</a></div></div>
469
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_aed4bedc716a3e252e44a6f28e677d61c"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c">SVF::ProgSlice::backwardSliceEnd</a></div><div class="ttdeci">SVFGNodeSetIter backwardSliceEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00115">ProgSlice.h:115</a></div></div>
470
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a397632ce0c523c4a54c5dc578606d14d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">SVF::ProgSlice::setReachGlobal</a></div><div class="ttdeci">bool setReachGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00151">ProgSlice.h:151</a></div></div>
471
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ad761a9848d2dab7700a7fdeb91c2454d"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ad761a9848d2dab7700a7fdeb91c2454d">SVF::ProgSlice::~ProgSlice</a></div><div class="ttdeci">virtual ~ProgSlice()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00072">ProgSlice.h:72</a></div></div>
472
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a9d81f792b6a8b15395a63d06daf56573"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a9d81f792b6a8b15395a63d06daf56573">SVF::ProgSlice::getFalseCond</a></div><div class="ttdeci">Condition getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00198">ProgSlice.h:198</a></div></div>
473
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a2e4c3f5149a5085a5c8bb7547eae8161"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a2e4c3f5149a5085a5c8bb7547eae8161">SVF::SaberCondAllocator::condOr</a></div><div class="ttdeci">Condition condOr(const Condition &amp;lhs, const Condition &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00091">SaberCondAllocator.h:91</a></div></div>
474
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_abca08cad9cadc72caf6743df3ff934e7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#abca08cad9cadc72caf6743df3ff934e7">SVF::ProgSlice::getSVFGNodeBB</a></div><div class="ttdeci">const SVFBasicBlock * getSVFGNodeBB(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00274">ProgSlice.h:274</a></div></div>
475
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a07ce77afbf69d5e2a47afaa39eaea886"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a07ce77afbf69d5e2a47afaa39eaea886">SVF::ProgSlice::getRetSite</a></div><div class="ttdeci">const CallICFGNode * getRetSite(const SVFGEdge *edge) const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00187">ProgSlice.cpp:187</a></div></div>
460
476
  <div class="ttc" id="aclassSVF_1_1ProgSlice_html_af41c438baa739406a35bcb2e9ba431dd"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVF::ProgSlice::SVFGNodeSetIter</a></div><div class="ttdeci">SVFGNodeSet::const_iterator SVFGNodeSetIter</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00054">ProgSlice.h:54</a></div></div>
461
477
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
462
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a620d53b9af8dd30523c478f4e9655817"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817">SVF::SaberCondAllocator::condNeg</a></div><div class="ttdeci">Condition condNeg(const Condition &amp;cond)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00094">SaberCondAllocator.h:94</a></div></div>
463
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a62a9f2c107f27d6c04c30ef153ffb8ed"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed">SVF::ProgSlice::isSatisfiableForAll</a></div><div class="ttdeci">bool isSatisfiableForAll()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00095">ProgSlice.cpp:95</a></div></div>
464
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_add10d8fd041ac7e6eb611df8a6b1384b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b">SVF::ProgSlice::forwardSliceEnd</a></div><div class="ttdeci">SVFGNodeSetIter forwardSliceEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00104">ProgSlice.h:104</a></div></div>
465
- <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab7311a806f1c3899b5a4de106eac24b7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab7311a806f1c3899b5a4de106eac24b7">SVF::ProgSlice::ComputeInterRetVFGGuard</a></div><div class="ttdeci">Condition ComputeInterRetVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *retBB)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00257">ProgSlice.h:257</a></div></div>
478
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a620d53b9af8dd30523c478f4e9655817"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a620d53b9af8dd30523c478f4e9655817">SVF::SaberCondAllocator::condNeg</a></div><div class="ttdeci">Condition condNeg(const Condition &amp;cond)</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00095">SaberCondAllocator.h:95</a></div></div>
479
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_a62a9f2c107f27d6c04c30ef153ffb8ed"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a62a9f2c107f27d6c04c30ef153ffb8ed">SVF::ProgSlice::isSatisfiableForAll</a></div><div class="ttdeci">bool isSatisfiableForAll()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00142">ProgSlice.cpp:142</a></div></div>
480
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_add10d8fd041ac7e6eb611df8a6b1384b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b">SVF::ProgSlice::forwardSliceEnd</a></div><div class="ttdeci">SVFGNodeSetIter forwardSliceEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00107">ProgSlice.h:107</a></div></div>
481
+ <div class="ttc" id="aclassSVF_1_1ProgSlice_html_ab7311a806f1c3899b5a4de106eac24b7"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ab7311a806f1c3899b5a4de106eac24b7">SVF::ProgSlice::ComputeInterRetVFGGuard</a></div><div class="ttdeci">Condition ComputeInterRetVFGGuard(const SVFBasicBlock *src, const SVFBasicBlock *dst, const SVFBasicBlock *retBB)</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00260">ProgSlice.h:260</a></div></div>
466
482
  <!-- start footer part -->
467
483
  <hr class="footer"/><address class="footer"><small>
468
484
  Generated by &#160;<a href="http://www.doxygen.org/index.html">