svf-tools 1.0.837 → 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 (401) hide show
  1. package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/Andersen_8cpp_source.html +20 -16
  3. package/SVF-doxygen/html/Andersen_8h_source.html +2 -2
  4. package/SVF-doxygen/html/BoundedZ3Expr_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/CFLAlias_8cpp_source.html +2 -2
  6. package/SVF-doxygen/html/CFLBase_8cpp_source.html +4 -4
  7. package/SVF-doxygen/html/CFLGraphBuilder_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/CFLSVFGBuilder_8cpp.html +86 -0
  9. package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +195 -0
  10. package/SVF-doxygen/html/CFLSVFGBuilder_8h.html +98 -0
  11. package/SVF-doxygen/html/CFLSVFGBuilder_8h_source.html +148 -0
  12. package/SVF-doxygen/html/CFLVF_8cpp_source.html +4 -4
  13. package/SVF-doxygen/html/CFLVF_8h.html +1 -1
  14. package/SVF-doxygen/html/CFLVF_8h_source.html +5 -5
  15. package/SVF-doxygen/html/CHGBuilder_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/ConsG_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/DCHG_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/DDAPass_8cpp_source.html +9 -9
  19. package/SVF-doxygen/html/DDAStat_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/DDAVFSolver_8h_source.html +1 -1
  21. package/SVF-doxygen/html/DoubleFreeChecker_8cpp_source.html +5 -5
  22. package/SVF-doxygen/html/DoubleFreeChecker_8h_source.html +1 -1
  23. package/SVF-doxygen/html/ExtAPI_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/FSMPTA_8cpp_source.html +3 -3
  25. package/SVF-doxygen/html/FileChecker_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/FileChecker_8h_source.html +1 -1
  27. package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/ICFG_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/IRGraph_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/LeakChecker_8cpp_source.html +3 -3
  33. package/SVF-doxygen/html/LeakChecker_8h_source.html +1 -1
  34. package/SVF-doxygen/html/LockResultValidator_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/MHP_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/MTAResultValidator_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/MTAStat_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/MemSSA_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/Options_8cpp_source.html +825 -892
  42. package/SVF-doxygen/html/Options_8h_source.html +275 -297
  43. package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +12 -12
  45. package/SVF-doxygen/html/ProgSlice_8cpp_source.html +170 -136
  46. package/SVF-doxygen/html/ProgSlice_8h_source.html +314 -298
  47. package/SVF-doxygen/html/SVFGBuilder_8cpp_source.html +4 -4
  48. package/SVF-doxygen/html/SVFGOPT_8cpp_source.html +4 -4
  49. package/SVF-doxygen/html/SVFGOPT_8h_source.html +5 -5
  50. package/SVF-doxygen/html/SVFGReadWrite_8cpp_source.html +2 -2
  51. package/SVF-doxygen/html/SVFG_8cpp_source.html +32 -32
  52. package/SVF-doxygen/html/SVFG_8h_source.html +446 -444
  53. package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/SVFIR_8cpp_source.html +2 -2
  55. package/SVF-doxygen/html/SVFStatements_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/SVFUtil_8cpp_source.html +1 -1
  57. package/SVF-doxygen/html/SVFVariables_8cpp_source.html +1 -1
  58. package/SVF-doxygen/html/SaberCondAllocator_8cpp_source.html +2 -2
  59. package/SVF-doxygen/html/SaberCondAllocator_8h_source.html +246 -235
  60. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp.html +1 -0
  61. package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +272 -266
  62. package/SVF-doxygen/html/SaberSVFGBuilder_8h_source.html +75 -62
  63. package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +261 -260
  64. package/SVF-doxygen/html/SrcSnkDDA_8h_source.html +18 -18
  65. package/SVF-doxygen/html/SymbolTableBuilder_8cpp_source.html +3 -3
  66. package/SVF-doxygen/html/SymbolTableInfo_8cpp_source.html +3 -3
  67. package/SVF-doxygen/html/TCT_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +1 -1
  69. package/SVF-doxygen/html/VFG_8cpp_source.html +1 -1
  70. package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +4 -4
  71. package/SVF-doxygen/html/WPAPass_8cpp_source.html +5 -5
  72. package/SVF-doxygen/html/Z3Expr_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/annotated.html +377 -376
  74. package/SVF-doxygen/html/classSVF_1_1AddrStmt.html +1 -1
  75. package/SVF-doxygen/html/classSVF_1_1Andersen.html +18 -14
  76. package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +4 -4
  77. package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +1 -1
  78. package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +1 -1
  79. package/SVF-doxygen/html/classSVF_1_1BinaryOPStmt.html +1 -1
  80. package/SVF-doxygen/html/classSVF_1_1BoundedZ3Expr.html +1 -1
  81. package/SVF-doxygen/html/classSVF_1_1BranchStmt.html +1 -1
  82. package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +2 -2
  83. package/SVF-doxygen/html/classSVF_1_1CFLBase.html +4 -4
  84. package/SVF-doxygen/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  85. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder-members.html +121 -0
  86. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +473 -0
  87. package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.png +0 -0
  88. package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +1 -1
  89. package/SVF-doxygen/html/classSVF_1_1CFLVF.html +11 -11
  90. package/SVF-doxygen/html/classSVF_1_1CHGBuilder.html +1 -1
  91. package/SVF-doxygen/html/classSVF_1_1CallPE.html +1 -1
  92. package/SVF-doxygen/html/classSVF_1_1CmpStmt.html +1 -1
  93. package/SVF-doxygen/html/classSVF_1_1ConstraintNode.html +1 -1
  94. package/SVF-doxygen/html/classSVF_1_1CopyStmt.html +1 -1
  95. package/SVF-doxygen/html/classSVF_1_1DCHGraph.html +1 -1
  96. package/SVF-doxygen/html/classSVF_1_1DDAPass.html +9 -9
  97. package/SVF-doxygen/html/classSVF_1_1DDAStat.html +1 -1
  98. package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
  99. package/SVF-doxygen/html/classSVF_1_1DoubleFreeChecker.html +6 -6
  100. package/SVF-doxygen/html/classSVF_1_1ExtAPI.html +1 -1
  101. package/SVF-doxygen/html/classSVF_1_1FIObjVar.html +1 -1
  102. package/SVF-doxygen/html/classSVF_1_1FileChecker.html +3 -3
  103. package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +1 -1
  104. package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +4 -4
  105. package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  106. package/SVF-doxygen/html/classSVF_1_1GepObjVar.html +1 -1
  107. package/SVF-doxygen/html/classSVF_1_1GepStmt.html +1 -1
  108. package/SVF-doxygen/html/classSVF_1_1GepValVar.html +1 -1
  109. package/SVF-doxygen/html/classSVF_1_1ICFG.html +1 -1
  110. package/SVF-doxygen/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
  111. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
  112. package/SVF-doxygen/html/classSVF_1_1LeakChecker.html +6 -6
  113. package/SVF-doxygen/html/classSVF_1_1LoadStmt.html +1 -1
  114. package/SVF-doxygen/html/classSVF_1_1LockResultValidator.html +1 -1
  115. package/SVF-doxygen/html/classSVF_1_1MHP.html +1 -1
  116. package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +1 -1
  117. package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +1 -1
  118. package/SVF-doxygen/html/classSVF_1_1MTAResultValidator.html +1 -1
  119. package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +3 -3
  120. package/SVF-doxygen/html/classSVF_1_1MTAStat.html +1 -1
  121. package/SVF-doxygen/html/classSVF_1_1MemSSA.html +2 -2
  122. package/SVF-doxygen/html/classSVF_1_1ObjTypeInfo.html +1 -1
  123. package/SVF-doxygen/html/classSVF_1_1ObjVar.html +1 -1
  124. package/SVF-doxygen/html/classSVF_1_1Options-members.html +64 -73
  125. package/SVF-doxygen/html/classSVF_1_1Options.html +128 -362
  126. package/SVF-doxygen/html/classSVF_1_1PhiStmt.html +1 -1
  127. package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +12 -12
  128. package/SVF-doxygen/html/classSVF_1_1ProgSlice-members.html +25 -22
  129. package/SVF-doxygen/html/classSVF_1_1ProgSlice.html +493 -366
  130. package/SVF-doxygen/html/classSVF_1_1RetPE.html +1 -1
  131. package/SVF-doxygen/html/classSVF_1_1SVFG-members.html +182 -181
  132. package/SVF-doxygen/html/classSVF_1_1SVFG.html +326 -300
  133. package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.html +6 -5
  134. package/SVF-doxygen/html/classSVF_1_1SVFGBuilder.png +0 -0
  135. package/SVF-doxygen/html/classSVF_1_1SVFGOPT.html +11 -11
  136. package/SVF-doxygen/html/classSVF_1_1SVFIR.html +2 -2
  137. package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +1 -1
  138. package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +7 -7
  139. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator-members.html +22 -19
  140. package/SVF-doxygen/html/classSVF_1_1SaberCondAllocator.html +239 -160
  141. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder-members.html +11 -9
  142. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +348 -286
  143. package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.png +0 -0
  144. package/SVF-doxygen/html/classSVF_1_1SelectStmt.html +1 -1
  145. package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +263 -261
  146. package/SVF-doxygen/html/classSVF_1_1StoreStmt.html +1 -1
  147. package/SVF-doxygen/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  148. package/SVF-doxygen/html/classSVF_1_1SymbolTableInfo.html +3 -3
  149. package/SVF-doxygen/html/classSVF_1_1TCT.html +1 -1
  150. package/SVF-doxygen/html/classSVF_1_1TDForkPE.html +1 -1
  151. package/SVF-doxygen/html/classSVF_1_1TDJoinPE.html +1 -1
  152. package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +1 -1
  153. package/SVF-doxygen/html/classSVF_1_1UnaryOPStmt.html +1 -1
  154. package/SVF-doxygen/html/classSVF_1_1VFG.html +1 -1
  155. package/SVF-doxygen/html/classSVF_1_1ValVar.html +1 -1
  156. package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +4 -4
  157. package/SVF-doxygen/html/classSVF_1_1WPAPass.html +5 -5
  158. package/SVF-doxygen/html/classSVF_1_1Z3Expr.html +1 -1
  159. package/SVF-doxygen/html/classes.html +95 -94
  160. package/SVF-doxygen/html/dir_1b8e404556d3e8597ae60437f0a084bf.html +2 -0
  161. package/SVF-doxygen/html/dir_8a9c8659eb68b9cbd3fead4690588a47.html +2 -0
  162. package/SVF-doxygen/html/files.html +6 -4
  163. package/SVF-doxygen/html/functions_b.html +7 -6
  164. package/SVF-doxygen/html/functions_c.html +38 -29
  165. package/SVF-doxygen/html/functions_d.html +0 -15
  166. package/SVF-doxygen/html/functions_f.html +9 -9
  167. package/SVF-doxygen/html/functions_func_b.html +3 -2
  168. package/SVF-doxygen/html/functions_func_c.html +29 -23
  169. package/SVF-doxygen/html/functions_func_g.html +14 -10
  170. package/SVF-doxygen/html/functions_func_r.html +6 -5
  171. package/SVF-doxygen/html/functions_func_s.html +20 -17
  172. package/SVF-doxygen/html/functions_func_~.html +3 -0
  173. package/SVF-doxygen/html/functions_g.html +10 -6
  174. package/SVF-doxygen/html/functions_m.html +4 -7
  175. package/SVF-doxygen/html/functions_n.html +6 -5
  176. package/SVF-doxygen/html/functions_p.html +15 -14
  177. package/SVF-doxygen/html/functions_r.html +10 -6
  178. package/SVF-doxygen/html/functions_rela_c.html +3 -0
  179. package/SVF-doxygen/html/functions_s.html +24 -21
  180. package/SVF-doxygen/html/functions_t.html +5 -11
  181. package/SVF-doxygen/html/functions_type_n.html +2 -1
  182. package/SVF-doxygen/html/functions_type_s.html +6 -1
  183. package/SVF-doxygen/html/functions_type_w.html +1 -0
  184. package/SVF-doxygen/html/functions_v.html +4 -6
  185. package/SVF-doxygen/html/functions_vars_d.html +0 -15
  186. package/SVF-doxygen/html/functions_vars_m.html +1 -4
  187. package/SVF-doxygen/html/functions_vars_p.html +3 -0
  188. package/SVF-doxygen/html/functions_vars_r.html +3 -0
  189. package/SVF-doxygen/html/functions_vars_s.html +2 -7
  190. package/SVF-doxygen/html/functions_vars_t.html +0 -6
  191. package/SVF-doxygen/html/functions_w.html +3 -2
  192. package/SVF-doxygen/html/functions_~.html +3 -0
  193. package/SVF-doxygen/html/hierarchy.html +2 -1
  194. package/SVF-doxygen/html/namespaceSVF.html +2 -0
  195. package/SVF-doxygen/html/search/all_10.js +207 -206
  196. package/SVF-doxygen/html/search/all_11.js +115 -114
  197. package/SVF-doxygen/html/search/all_12.js +335 -335
  198. package/SVF-doxygen/html/search/all_13.js +190 -192
  199. package/SVF-doxygen/html/search/all_14.js +67 -67
  200. package/SVF-doxygen/html/search/all_15.js +167 -167
  201. package/SVF-doxygen/html/search/all_16.js +63 -63
  202. package/SVF-doxygen/html/search/all_17.js +1 -1
  203. package/SVF-doxygen/html/search/all_18.js +1 -1
  204. package/SVF-doxygen/html/search/all_19.js +11 -11
  205. package/SVF-doxygen/html/search/all_1a.js +26 -25
  206. package/SVF-doxygen/html/search/all_2.js +2 -2
  207. package/SVF-doxygen/html/search/all_3.js +466 -462
  208. package/SVF-doxygen/html/search/all_4.js +230 -235
  209. package/SVF-doxygen/html/search/all_5.js +119 -119
  210. package/SVF-doxygen/html/search/all_6.js +226 -226
  211. package/SVF-doxygen/html/search/all_7.js +804 -803
  212. package/SVF-doxygen/html/search/all_9.js +3 -3
  213. package/SVF-doxygen/html/search/all_b.js +1 -1
  214. package/SVF-doxygen/html/search/all_c.js +1 -1
  215. package/SVF-doxygen/html/search/all_d.js +184 -185
  216. package/SVF-doxygen/html/search/all_e.js +207 -207
  217. package/SVF-doxygen/html/search/all_f.js +116 -116
  218. package/SVF-doxygen/html/search/classes_10.js +73 -73
  219. package/SVF-doxygen/html/search/classes_11.js +15 -15
  220. package/SVF-doxygen/html/search/classes_12.js +2 -2
  221. package/SVF-doxygen/html/search/classes_13.js +10 -10
  222. package/SVF-doxygen/html/search/classes_14.js +14 -14
  223. package/SVF-doxygen/html/search/classes_15.js +1 -1
  224. package/SVF-doxygen/html/search/classes_2.js +37 -36
  225. package/SVF-doxygen/html/search/classes_3.js +37 -37
  226. package/SVF-doxygen/html/search/classes_4.js +9 -9
  227. package/SVF-doxygen/html/search/classes_5.js +28 -28
  228. package/SVF-doxygen/html/search/classes_6.js +104 -104
  229. package/SVF-doxygen/html/search/classes_7.js +34 -34
  230. package/SVF-doxygen/html/search/classes_8.js +56 -56
  231. package/SVF-doxygen/html/search/classes_9.js +1 -1
  232. package/SVF-doxygen/html/search/classes_a.js +12 -12
  233. package/SVF-doxygen/html/search/classes_b.js +29 -29
  234. package/SVF-doxygen/html/search/classes_c.js +6 -6
  235. package/SVF-doxygen/html/search/classes_d.js +18 -18
  236. package/SVF-doxygen/html/search/classes_e.js +36 -36
  237. package/SVF-doxygen/html/search/classes_f.js +25 -25
  238. package/SVF-doxygen/html/search/defines_0.js +3 -3
  239. package/SVF-doxygen/html/search/defines_1.js +2 -2
  240. package/SVF-doxygen/html/search/defines_2.js +30 -30
  241. package/SVF-doxygen/html/search/defines_3.js +20 -20
  242. package/SVF-doxygen/html/search/defines_4.js +2 -2
  243. package/SVF-doxygen/html/search/defines_5.js +4 -4
  244. package/SVF-doxygen/html/search/defines_6.js +2 -2
  245. package/SVF-doxygen/html/search/defines_7.js +5 -5
  246. package/SVF-doxygen/html/search/defines_8.js +11 -11
  247. package/SVF-doxygen/html/search/defines_9.js +9 -9
  248. package/SVF-doxygen/html/search/defines_a.js +2 -2
  249. package/SVF-doxygen/html/search/defines_b.js +1 -1
  250. package/SVF-doxygen/html/search/defines_c.js +3 -3
  251. package/SVF-doxygen/html/search/defines_d.js +2 -2
  252. package/SVF-doxygen/html/search/defines_e.js +7 -7
  253. package/SVF-doxygen/html/search/defines_f.js +3 -3
  254. package/SVF-doxygen/html/search/enums_0.js +3 -3
  255. package/SVF-doxygen/html/search/enums_1.js +2 -2
  256. package/SVF-doxygen/html/search/enums_10.js +1 -1
  257. package/SVF-doxygen/html/search/enums_11.js +1 -1
  258. package/SVF-doxygen/html/search/enums_2.js +8 -8
  259. package/SVF-doxygen/html/search/enums_3.js +1 -1
  260. package/SVF-doxygen/html/search/enums_4.js +3 -3
  261. package/SVF-doxygen/html/search/enums_5.js +1 -1
  262. package/SVF-doxygen/html/search/enums_6.js +2 -2
  263. package/SVF-doxygen/html/search/enums_7.js +2 -2
  264. package/SVF-doxygen/html/search/enums_8.js +4 -4
  265. package/SVF-doxygen/html/search/enums_9.js +1 -1
  266. package/SVF-doxygen/html/search/enums_a.js +1 -1
  267. package/SVF-doxygen/html/search/enums_b.js +7 -7
  268. package/SVF-doxygen/html/search/enums_c.js +1 -1
  269. package/SVF-doxygen/html/search/enums_d.js +4 -4
  270. package/SVF-doxygen/html/search/enums_e.js +2 -2
  271. package/SVF-doxygen/html/search/enums_f.js +4 -4
  272. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  273. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  274. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  275. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  276. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  277. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  278. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  279. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  280. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  281. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  282. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  283. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  284. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  285. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  286. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  287. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  288. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  289. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  290. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  291. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  292. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  293. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  294. package/SVF-doxygen/html/search/files_0.js +13 -13
  295. package/SVF-doxygen/html/search/files_1.js +7 -7
  296. package/SVF-doxygen/html/search/files_10.js +8 -8
  297. package/SVF-doxygen/html/search/files_11.js +8 -8
  298. package/SVF-doxygen/html/search/files_12.js +2 -2
  299. package/SVF-doxygen/html/search/files_2.js +57 -55
  300. package/SVF-doxygen/html/search/files_3.js +14 -14
  301. package/SVF-doxygen/html/search/files_4.js +5 -5
  302. package/SVF-doxygen/html/search/files_5.js +13 -13
  303. package/SVF-doxygen/html/search/files_6.js +9 -9
  304. package/SVF-doxygen/html/search/files_7.js +14 -14
  305. package/SVF-doxygen/html/search/files_8.js +13 -13
  306. package/SVF-doxygen/html/search/files_9.js +18 -18
  307. package/SVF-doxygen/html/search/files_a.js +3 -3
  308. package/SVF-doxygen/html/search/files_b.js +2 -2
  309. package/SVF-doxygen/html/search/files_c.js +20 -20
  310. package/SVF-doxygen/html/search/files_d.js +4 -4
  311. package/SVF-doxygen/html/search/files_e.js +62 -62
  312. package/SVF-doxygen/html/search/files_f.js +8 -8
  313. package/SVF-doxygen/html/search/functions_0.js +13 -13
  314. package/SVF-doxygen/html/search/functions_1.js +362 -362
  315. package/SVF-doxygen/html/search/functions_10.js +140 -140
  316. package/SVF-doxygen/html/search/functions_11.js +139 -139
  317. package/SVF-doxygen/html/search/functions_12.js +289 -288
  318. package/SVF-doxygen/html/search/functions_13.js +59 -59
  319. package/SVF-doxygen/html/search/functions_14.js +39 -39
  320. package/SVF-doxygen/html/search/functions_15.js +71 -71
  321. package/SVF-doxygen/html/search/functions_16.js +32 -32
  322. package/SVF-doxygen/html/search/functions_17.js +3 -3
  323. package/SVF-doxygen/html/search/functions_18.js +173 -172
  324. package/SVF-doxygen/html/search/functions_2.js +89 -89
  325. package/SVF-doxygen/html/search/functions_3.js +260 -258
  326. package/SVF-doxygen/html/search/functions_4.js +78 -78
  327. package/SVF-doxygen/html/search/functions_5.js +53 -53
  328. package/SVF-doxygen/html/search/functions_6.js +60 -60
  329. package/SVF-doxygen/html/search/functions_7.js +856 -855
  330. package/SVF-doxygen/html/search/functions_8.js +149 -149
  331. package/SVF-doxygen/html/search/functions_9.js +424 -424
  332. package/SVF-doxygen/html/search/functions_a.js +30 -30
  333. package/SVF-doxygen/html/search/functions_b.js +2 -2
  334. package/SVF-doxygen/html/search/functions_c.js +25 -25
  335. package/SVF-doxygen/html/search/functions_d.js +79 -79
  336. package/SVF-doxygen/html/search/functions_e.js +35 -35
  337. package/SVF-doxygen/html/search/functions_f.js +56 -56
  338. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  339. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  340. package/SVF-doxygen/html/search/related_0.js +2 -2
  341. package/SVF-doxygen/html/search/related_1.js +2 -2
  342. package/SVF-doxygen/html/search/related_2.js +3 -2
  343. package/SVF-doxygen/html/search/related_3.js +2 -2
  344. package/SVF-doxygen/html/search/related_4.js +2 -2
  345. package/SVF-doxygen/html/search/related_5.js +1 -1
  346. package/SVF-doxygen/html/search/related_6.js +2 -2
  347. package/SVF-doxygen/html/search/related_7.js +4 -4
  348. package/SVF-doxygen/html/search/related_8.js +2 -2
  349. package/SVF-doxygen/html/search/related_9.js +4 -4
  350. package/SVF-doxygen/html/search/related_a.js +19 -19
  351. package/SVF-doxygen/html/search/related_b.js +4 -4
  352. package/SVF-doxygen/html/search/related_c.js +2 -2
  353. package/SVF-doxygen/html/search/related_d.js +12 -12
  354. package/SVF-doxygen/html/search/related_e.js +2 -2
  355. package/SVF-doxygen/html/search/related_f.js +2 -2
  356. package/SVF-doxygen/html/search/typedefs_10.js +17 -16
  357. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  358. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  359. package/SVF-doxygen/html/search/typedefs_13.js +33 -33
  360. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  361. package/SVF-doxygen/html/search/typedefs_c.js +1 -1
  362. package/SVF-doxygen/html/search/variables_0.js +151 -151
  363. package/SVF-doxygen/html/search/variables_1.js +75 -75
  364. package/SVF-doxygen/html/search/variables_10.js +98 -97
  365. package/SVF-doxygen/html/search/variables_11.js +45 -44
  366. package/SVF-doxygen/html/search/variables_12.js +90 -92
  367. package/SVF-doxygen/html/search/variables_13.js +4 -6
  368. package/SVF-doxygen/html/search/variables_2.js +38 -38
  369. package/SVF-doxygen/html/search/variables_3.js +142 -142
  370. package/SVF-doxygen/html/search/variables_4.js +50 -55
  371. package/SVF-doxygen/html/search/variables_5.js +37 -37
  372. package/SVF-doxygen/html/search/variables_6.js +66 -66
  373. package/SVF-doxygen/html/search/variables_7.js +34 -34
  374. package/SVF-doxygen/html/search/variables_8.js +7 -7
  375. package/SVF-doxygen/html/search/variables_9.js +78 -78
  376. package/SVF-doxygen/html/search/variables_a.js +4 -4
  377. package/SVF-doxygen/html/search/variables_b.js +10 -10
  378. package/SVF-doxygen/html/search/variables_c.js +45 -45
  379. package/SVF-doxygen/html/search/variables_d.js +55 -56
  380. package/SVF-doxygen/html/search/variables_e.js +123 -123
  381. package/SVF-doxygen/html/search/variables_f.js +30 -30
  382. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
  383. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
  384. package/SVF-doxygen/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
  385. package/SVF-doxygen/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  386. package/SVF-doxygen/html/svf-ex_8cpp.html +1 -1
  387. package/SVF-doxygen/html/svf-ex_8cpp_source.html +1 -1
  388. package/package.json +1 -1
  389. package/svf/include/CFL/CFLSVFGBuilder.h +58 -0
  390. package/svf/include/CFL/CFLVF.h +2 -2
  391. package/svf/include/Graphs/SVFG.h +1 -0
  392. package/svf/include/SABER/ProgSlice.h +11 -0
  393. package/svf/include/SABER/SaberCondAllocator.h +8 -0
  394. package/svf/include/SABER/SaberSVFGBuilder.h +12 -2
  395. package/svf/include/Util/Options.h +1 -14
  396. package/svf/lib/CFL/CFLSVFGBuilder.cpp +100 -0
  397. package/svf/lib/SABER/ProgSlice.cpp +48 -1
  398. package/svf/lib/SABER/SaberSVFGBuilder.cpp +5 -0
  399. package/svf/lib/SABER/SrcSnkDDA.cpp +1 -0
  400. package/svf/lib/Util/Options.cpp +6 -64
  401. package/svf/lib/WPA/Andersen.cpp +5 -2
@@ -819,55 +819,55 @@ Private Attributes</h2></td></tr>
819
819
  <p>Start analysis here. </p>
820
820
  <p>do not consider there is bug when reaching a global SVFGNode if we touch a global, then we assume the client uses this memory until the program exits.</p>
821
821
 
822
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00060">60</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
823
- <div class="fragment"><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div>
824
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
825
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">initialize</a>(module);</div>
826
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
827
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a3fd9cce83729bc62cd2fb568b0d53db5">Options::CxtLimit</a>());</div>
828
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
829
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> iter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0515c9079f28f8c5d4f0f9a2fc39a137">sourcesBegin</a>(), eiter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad0cb9de24cbc99d148f63b694dc3908e">sourcesEnd</a>();</div>
830
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; iter != eiter; ++iter)</div>
831
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
832
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">setCurSlice</a>(*iter);</div>
833
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
834
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Analysing slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
835
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div>
836
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>((*iter)-&gt;getId(),cxt);</div>
837
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">forwardTraverse</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>);</div>
838
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
839
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;isReachGlobal())</div>
840
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
841
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Forward analysis reaches globals for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
842
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
843
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">else</span></div>
844
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
845
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Forward process for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; (size = &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;getForwardSliceSize() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
846
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
847
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> sit = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1SrcSnkDDA.html#a79833c0cf1916d63e1dd32c2220056dd">sinksBegin</a>(), esit =</div>
848
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1SrcSnkDDA.html#aaabc8d3aed17c8a35ef37d878f141412">sinksEnd</a>(); sit != esit; ++sit)</div>
849
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
850
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div>
851
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>((*sit)-&gt;getId(),cxt);</div>
852
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">backwardTraverse</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>);</div>
853
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
854
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
855
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Backward process for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; (size = &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;getBackwardSliceSize() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
856
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
857
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ab9443e23bdcb60f118a7aab835f974db">Options::DumpSlice</a>())</div>
858
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">annotateSlice</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>);</div>
859
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
860
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">AllPathReachableSolve</a>())</div>
861
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">setAllReachable</a>();</div>
862
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
863
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Guard computation for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
864
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
865
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
866
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa87e9ca3c9a9dc6ae5cc88a0182a8154">reportBug</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>());</div>
867
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
868
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">finalize</a>();</div>
869
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
870
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
822
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00061">61</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
823
+ <div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div>
824
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
825
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">initialize</a>(module);</div>
826
+ <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
827
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a3fd9cce83729bc62cd2fb568b0d53db5">Options::CxtLimit</a>());</div>
828
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
829
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> iter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0515c9079f28f8c5d4f0f9a2fc39a137">sourcesBegin</a>(), eiter = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad0cb9de24cbc99d148f63b694dc3908e">sourcesEnd</a>();</div>
830
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; iter != eiter; ++iter)</div>
831
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
832
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">setCurSlice</a>(*iter);</div>
833
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
834
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Analysing slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
835
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div>
836
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>((*iter)-&gt;getId(),cxt);</div>
837
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">forwardTraverse</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>);</div>
838
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
839
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;isReachGlobal())</div>
840
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
841
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Forward analysis reaches globals for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
842
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
843
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">else</span></div>
844
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div>
845
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Forward process for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; (size = &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;getForwardSliceSize() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
846
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
847
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> sit = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1SrcSnkDDA.html#a79833c0cf1916d63e1dd32c2220056dd">sinksBegin</a>(), esit =</div>
848
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1SrcSnkDDA.html#aaabc8d3aed17c8a35ef37d878f141412">sinksEnd</a>(); sit != esit; ++sit)</div>
849
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div>
850
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div>
851
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>((*sit)-&gt;getId(),cxt);</div>
852
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">backwardTraverse</a>(<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>);</div>
853
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
854
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
855
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Backward process for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot; (size = &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;getBackwardSliceSize() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
856
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
857
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ab9443e23bdcb60f118a7aab835f974db">Options::DumpSlice</a>())</div>
858
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">annotateSlice</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>);</div>
859
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
860
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">AllPathReachableSolve</a>())</div>
861
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ae6102647fa4985142c293116516612cd">setAllReachable</a>();</div>
862
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
863
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Guard computation for slice:&quot;</span> &lt;&lt; (*iter)-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
864
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
865
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
866
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa87e9ca3c9a9dc6ae5cc88a0182a8154">reportBug</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>());</div>
867
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div>
868
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">finalize</a>();</div>
869
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
870
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div>
871
871
  </div><!-- fragment -->
872
872
  </div>
873
873
  </div>
@@ -895,16 +895,16 @@ Private Attributes</h2></td></tr>
895
895
  </table>
896
896
  </div><div class="memdoc">
897
897
 
898
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00283">283</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
899
- <div class="fragment"><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;{</div>
900
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#a59585ec387e8cc30a85eeec99a97e968">addToSources</a>(slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>());</div>
901
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> it = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>(), eit = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>(); it!=eit; ++it )</div>
902
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#add8a63f5e0f0057ce07d3992355ce3fa">addToSinks</a>(*it);</div>
903
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> it = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895">forwardSliceBegin</a>(), eit = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b">forwardSliceEnd</a>(); it!=eit; ++it )</div>
904
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#aee8cb3fa54e882bba54bf557bbc5e1a3">addToForwardSlice</a>(*it);</div>
905
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> it = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89">backwardSliceBegin</a>(), eit = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c">backwardSliceEnd</a>(); it!=eit; ++it )</div>
906
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#a54e61121cdfac31e336cd79fa0513419">addToBackwardSlice</a>(*it);</div>
907
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;}</div>
898
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00284">284</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
899
+ <div class="fragment"><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;{</div>
900
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#a59585ec387e8cc30a85eeec99a97e968">addToSources</a>(slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>());</div>
901
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> it = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>(), eit = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>(); it!=eit; ++it )</div>
902
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#add8a63f5e0f0057ce07d3992355ce3fa">addToSinks</a>(*it);</div>
903
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> it = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ae482fcb138aaf345586a39daa34ff895">forwardSliceBegin</a>(), eit = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#add10d8fd041ac7e6eb611df8a6b1384b">forwardSliceEnd</a>(); it!=eit; ++it )</div>
904
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#aee8cb3fa54e882bba54bf557bbc5e1a3">addToForwardSlice</a>(*it);</div>
905
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVFGNodeSetIter</a> it = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ab5810f8a7a994f0637c54b94d0367a89">backwardSliceBegin</a>(), eit = slice-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#aed4bedc716a3e252e44a6f28e677d61c">backwardSliceEnd</a>(); it!=eit; ++it )</div>
906
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-&gt;<a class="code" href="classSVF_1_1SVFGStat.html#a54e61121cdfac31e336cd79fa0513419">addToBackwardSlice</a>(*it);</div>
907
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;}</div>
908
908
  </div><!-- fragment -->
909
909
  </div>
910
910
  </div>
@@ -1013,19 +1013,19 @@ Private Attributes</h2></td></tr>
1013
1013
  <p>Propagate information backward without matching context, as forward analysis already did it. </p>
1014
1014
  <p>Propagate information backward without matching context, as forward analysis already did it </p>
1015
1015
 
1016
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00256">256</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1017
- <div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{</div>
1018
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;backward propagate from (&quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
1019
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div>
1020
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">backwardVisited</a>(srcNode))</div>
1021
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">return</span>;</div>
1022
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">else</span></div>
1023
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa061e2d72d3045c9712512c6df002544">addBackwardVisited</a>(srcNode);</div>
1024
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
1025
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div>
1026
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(srcNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), cxt);</div>
1027
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a>(newItem);</div>
1028
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div>
1016
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00257">257</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1017
+ <div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div>
1018
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;backward propagate from (&quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div>
1019
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>();</div>
1020
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">backwardVisited</a>(srcNode))</div>
1021
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span>;</div>
1022
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">else</span></div>
1023
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#aa061e2d72d3045c9712512c6df002544">addBackwardVisited</a>(srcNode);</div>
1024
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
1025
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div>
1026
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(srcNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(), cxt);</div>
1027
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a>(newItem);</div>
1028
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
1029
1029
  </div><!-- fragment -->
1030
1030
  </div>
1031
1031
  </div>
@@ -1085,12 +1085,12 @@ Private Attributes</h2></td></tr>
1085
1085
 
1086
1086
  <p>Dump <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> with annotated slice information. </p>
1087
1087
 
1088
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00294">294</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1089
- <div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div>
1090
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div>
1091
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ab9443e23bdcb60f118a7aab835f974db">Options::DumpSlice</a>())</div>
1092
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1SVFG.html">SVFG</a>*<span class="keyword">&gt;</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>())-&gt;<a class="code" href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">dump</a>(<span class="stringliteral">&quot;Slice&quot;</span>,<span class="keyword">true</span>);</div>
1093
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div>
1088
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00295">295</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1089
+ <div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div>
1090
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
1091
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ab9443e23bdcb60f118a7aab835f974db">Options::DumpSlice</a>())</div>
1092
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">const_cast&lt;</span><a class="code" href="classSVF_1_1SVFG.html">SVFG</a>*<span class="keyword">&gt;</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>())-&gt;<a class="code" href="namespaceSVF.html#aae350f79ebcb9efd22ec9efa6678cd13">dump</a>(<span class="stringliteral">&quot;Slice&quot;</span>,<span class="keyword">true</span>);</div>
1093
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}</div>
1094
1094
  </div><!-- fragment -->
1095
1095
  </div>
1096
1096
  </div>
@@ -1253,64 +1253,64 @@ Private Attributes</h2></td></tr>
1253
1253
  <p>perform context sensitive reachability</p>
1254
1254
  <p>whether this dstNode has been visited or not</p>
1255
1255
 
1256
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00191">191</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1257
- <div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;{</div>
1258
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n##processing source: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;getSource()-&gt;getId() &lt;&lt;<span class="stringliteral">&quot; forward propagate from (&quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</div>
1259
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
1260
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// for indirect SVFGEdge, the propagation should follow the def-use chains</span></div>
1261
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// points-to on the edge indicate whether the object of source node can be propagated</span></div>
1262
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
1263
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
1264
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(dstNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.getContexts());</div>
1265
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
1266
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">isGlobalSVFGNode</a>(dstNode) || <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;isReachGlobal())</div>
1267
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
1268
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">setReachGlobal</a>();</div>
1269
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span>;</div>
1270
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
1271
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
1256
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00192">192</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1257
+ <div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div>
1258
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n##processing source: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;getSource()-&gt;getId() &lt;&lt;<span class="stringliteral">&quot; forward propagate from (&quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>());</div>
1259
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
1260
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// for indirect SVFGEdge, the propagation should follow the def-use chains</span></div>
1261
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// points-to on the edge indicate whether the object of source node can be propagated</span></div>
1262
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
1263
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
1264
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> newItem(dstNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.getContexts());</div>
1265
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
1266
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">isGlobalSVFGNode</a>(dstNode) || <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;isReachGlobal())</div>
1267
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div>
1268
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a397632ce0c523c4a54c5dc578606d14d">setReachGlobal</a>();</div>
1269
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span>;</div>
1270
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
1272
1271
  <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
1273
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// push context for calling</span></div>
1274
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div>
1275
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div>
1276
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div>
1277
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast&lt;CallDirSVFGEdge&gt;(edge))</div>
1278
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; csId = callEdge-&gt;getCallSiteId();</div>
1279
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">else</span></div>
1280
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; csId = SVFUtil::cast&lt;CallIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div>
1281
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div>
1282
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; newItem.pushContext(csId);</div>
1283
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; push cxt [&quot;</span> &lt;&lt; csId &lt;&lt; <span class="stringliteral">&quot;] &quot;</span>);</div>
1284
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
1285
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// match context for return</span></div>
1286
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div>
1287
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div>
1288
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div>
1289
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast&lt;RetDirSVFGEdge&gt;(edge))</div>
1290
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; csId = callEdge-&gt;getCallSiteId();</div>
1291
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">else</span></div>
1292
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; csId = SVFUtil::cast&lt;RetIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div>
1293
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
1294
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (newItem.matchContext(csId) == <span class="keyword">false</span>)</div>
1295
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
1296
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-|-\n&quot;</span>);</div>
1297
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span>;</div>
1298
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
1299
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; pop cxt [&quot;</span> &lt;&lt; csId &lt;&lt; <span class="stringliteral">&quot;] &quot;</span>);</div>
1300
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
1301
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
1302
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a8c86d30498e86745883fbaea4f530eae">forwardVisited</a>(dstNode,newItem))</div>
1303
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
1304
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; node &quot;</span>&lt;&lt; dstNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt;<span class="stringliteral">&quot; has been visited\n&quot;</span>);</div>
1305
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span>;</div>
1306
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div>
1307
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span></div>
1308
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a51c65cb4b8ea107161e112a8fd3fb7d4">addForwardVisited</a>(dstNode, newItem);</div>
1309
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; </div>
1310
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a>(newItem))</div>
1311
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot;, cxt size: &quot;</span> &lt;&lt; newItem.getContexts().cxtSize() &lt;&lt;<span class="stringliteral">&quot;)\n&quot;</span>);</div>
1312
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
1313
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div>
1272
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; </div>
1273
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// push context for calling</span></div>
1274
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div>
1275
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div>
1276
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div>
1277
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast&lt;CallDirSVFGEdge&gt;(edge))</div>
1278
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; csId = callEdge-&gt;getCallSiteId();</div>
1279
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span></div>
1280
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; csId = SVFUtil::cast&lt;CallIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div>
1281
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
1282
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; newItem.pushContext(csId);</div>
1283
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; push cxt [&quot;</span> &lt;&lt; csId &lt;&lt; <span class="stringliteral">&quot;] &quot;</span>);</div>
1284
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div>
1285
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// match context for return</span></div>
1286
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div>
1287
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div>
1288
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = 0;</div>
1289
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast&lt;RetDirSVFGEdge&gt;(edge))</div>
1290
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; csId = callEdge-&gt;getCallSiteId();</div>
1291
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">else</span></div>
1292
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; csId = SVFUtil::cast&lt;RetIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div>
1293
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
1294
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (newItem.matchContext(csId) == <span class="keyword">false</span>)</div>
1295
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div>
1296
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;-|-\n&quot;</span>);</div>
1297
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span>;</div>
1298
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
1299
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; pop cxt [&quot;</span> &lt;&lt; csId &lt;&lt; <span class="stringliteral">&quot;] &quot;</span>);</div>
1300
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
1301
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
1302
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a8c86d30498e86745883fbaea4f530eae">forwardVisited</a>(dstNode,newItem))</div>
1303
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div>
1304
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; node &quot;</span>&lt;&lt; dstNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt;<span class="stringliteral">&quot; has been visited\n&quot;</span>);</div>
1305
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span>;</div>
1306
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
1307
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">else</span></div>
1308
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a51c65cb4b8ea107161e112a8fd3fb7d4">addForwardVisited</a>(dstNode, newItem);</div>
1309
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
1310
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a>(newItem))</div>
1311
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot;, cxt size: &quot;</span> &lt;&lt; newItem.getContexts().cxtSize() &lt;&lt;<span class="stringliteral">&quot;)\n&quot;</span>);</div>
1312
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
1313
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div>
1314
1314
  </div><!-- fragment -->
1315
1315
  </div>
1316
1316
  </div>
@@ -1596,18 +1596,19 @@ Private Attributes</h2></td></tr>
1596
1596
  <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
1597
1597
  <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
1598
1598
  <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1AndersenWaveDiff.html">AndersenWaveDiff</a>* ander = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(pag);</div>
1599
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a93970b0b5e0a6148a86ab192a812f34b">Options::SABERFULLSVFG</a>())</div>
1600
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div>
1601
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">else</span></div>
1602
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(ander);</div>
1603
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a0298a692295a8a4eae32ab151aa6ccc3">setGraph</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">getSVFG</a>());</div>
1604
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a> = ander-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div>
1605
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div>
1606
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"></span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>()-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a0014c59d7f3c7bd0845548aea05a9a5b">allocate</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>()-&gt;getModule());</div>
1607
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
1608
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">initSrcs</a>();</div>
1609
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">initSnks</a>();</div>
1610
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div>
1599
+ <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#a8eb03d4362685f361bc1110fc98925b9">setSaberCondAllocator</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>());</div>
1600
+ <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a93970b0b5e0a6148a86ab192a812f34b">Options::SABERFULLSVFG</a>())</div>
1601
+ <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div>
1602
+ <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">else</span></div>
1603
+ <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(ander);</div>
1604
+ <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a0298a692295a8a4eae32ab151aa6ccc3">setGraph</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">getSVFG</a>());</div>
1605
+ <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a> = ander-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div>
1606
+ <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div>
1607
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"></span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>()-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a0014c59d7f3c7bd0845548aea05a9a5b">allocate</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>()-&gt;getModule());</div>
1608
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
1609
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">initSrcs</a>();</div>
1610
+ <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">initSnks</a>();</div>
1611
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div>
1611
1612
  </div><!-- fragment -->
1612
1613
  </div>
1613
1614
  </div>
@@ -1760,75 +1761,75 @@ Private Attributes</h2></td></tr>
1760
1761
  <p>Identify allocation wrappers. </p>
1761
1762
  <p>determine whether a SVFGNode n is in a allocation wrapper function, if so, return all SVFGNodes which receive the value of node n </p>
1762
1763
 
1763
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00117">117</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1764
- <div class="fragment"><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div>
1765
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
1766
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> reachFunExit = <span class="keyword">false</span>;</div>
1767
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
1768
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a> <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>;</div>
1769
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(src);</div>
1770
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVFGNodeBS</a> visited;</div>
1771
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> step = 0;</div>
1772
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
1773
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
1774
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
1775
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
1776
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span>(visited.test(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==0)</div>
1777
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; visited.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div>
1778
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">else</span></div>
1779
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">continue</span>;</div>
1780
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// reaching maximum steps when traversing on SVFG to identify a memory allocation wrapper</span></div>
1781
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (step++ &gt; <a class="code" href="classSVF_1_1Options.html#aab0131558d9da9b0fe888387217ba919">Options::MaxStepInWrapper</a>())</div>
1782
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1783
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
1784
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
1785
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
1786
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div>
1787
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div>
1788
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">//assert(edge-&gt;isDirectVFGEdge() &amp;&amp; &quot;the edge should always be direct VF&quot;);</span></div>
1789
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// if this is a call edge</span></div>
1790
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a92e3da59f7f5a693945b9a93f169da04">isCallDirectVFGEdge</a>())</div>
1791
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
1792
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1793
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
1794
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// if this is a return edge</span></div>
1795
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a49cbf2a714c9b965b19452d266cd8bdf">isRetDirectVFGEdge</a>())</div>
1796
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
1797
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; reachFunExit = <span class="keyword">true</span>;</div>
1798
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; csIdSet.insert(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;getCallSite(SVFUtil::cast&lt;RetDirSVFGEdge&gt;(edge)-&gt;getCallSiteId()));</div>
1799
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
1800
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// (1) an intra direct edge, we will keep tracking</span></div>
1801
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// (2) an intra indirect edge, we only track if the succ SVFGNode is a load, which means we only track one level store-load pair .</span></div>
1802
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// (3) do not track for all other interprocedural edges.</span></div>
1803
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">else</span></div>
1804
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
1805
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* succ = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
1806
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;IntraDirSVFGEdge&gt;(edge))</div>
1807
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
1808
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a>&lt;<a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>, <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>, <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>,</div>
1809
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>, <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>,</div>
1810
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>&gt;(succ))</div>
1811
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div>
1812
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succ);</div>
1813
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
1814
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
1815
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;IntraIndSVFGEdge&gt;(edge))</div>
1816
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div>
1817
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode, IntraMSSAPHISVFGNode&gt;(succ))</div>
1818
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div>
1819
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succ);</div>
1820
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
1821
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
1822
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">else</span></div>
1823
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1824
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
1825
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
1826
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
1827
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(reachFunExit)</div>
1828
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
1829
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">else</span></div>
1830
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1831
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div>
1764
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00118">118</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1765
+ <div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div>
1766
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
1767
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">bool</span> reachFunExit = <span class="keyword">false</span>;</div>
1768
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
1769
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a> <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>;</div>
1770
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(src);</div>
1771
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVFGNodeBS</a> visited;</div>
1772
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> step = 0;</div>
1773
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">while</span> (!<a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
1774
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
1775
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
1776
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
1777
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(visited.test(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==0)</div>
1778
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; visited.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div>
1779
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">else</span></div>
1780
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">continue</span>;</div>
1781
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// reaching maximum steps when traversing on SVFG to identify a memory allocation wrapper</span></div>
1782
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span> (step++ &gt; <a class="code" href="classSVF_1_1Options.html#aab0131558d9da9b0fe888387217ba919">Options::MaxStepInWrapper</a>())</div>
1783
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1784
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
1785
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVFGNode::const_iterator</a> it = node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
1786
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
1787
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
1788
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div>
1789
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">//assert(edge-&gt;isDirectVFGEdge() &amp;&amp; &quot;the edge should always be direct VF&quot;);</span></div>
1790
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// if this is a call edge</span></div>
1791
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a92e3da59f7f5a693945b9a93f169da04">isCallDirectVFGEdge</a>())</div>
1792
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
1793
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1794
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
1795
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// if this is a return edge</span></div>
1796
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a49cbf2a714c9b965b19452d266cd8bdf">isRetDirectVFGEdge</a>())</div>
1797
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div>
1798
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; reachFunExit = <span class="keyword">true</span>;</div>
1799
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; csIdSet.insert(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>()-&gt;getCallSite(SVFUtil::cast&lt;RetDirSVFGEdge&gt;(edge)-&gt;getCallSiteId()));</div>
1800
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
1801
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// (1) an intra direct edge, we will keep tracking</span></div>
1802
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// (2) an intra indirect edge, we only track if the succ SVFGNode is a load, which means we only track one level store-load pair .</span></div>
1803
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// (3) do not track for all other interprocedural edges.</span></div>
1804
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">else</span></div>
1805
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
1806
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* succ = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
1807
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;IntraDirSVFGEdge&gt;(edge))</div>
1808
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
1809
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVFUtil::isa</a>&lt;<a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>, <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>, <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>,</div>
1810
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1FormalRetVFGNode.html">FormalRetSVFGNode</a>, <a class="code" href="classSVF_1_1ActualRetVFGNode.html">ActualRetSVFGNode</a>,</div>
1811
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>&gt;(succ))</div>
1812
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
1813
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succ);</div>
1814
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
1815
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
1816
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa&lt;IntraIndSVFGEdge&gt;(edge))</div>
1817
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
1818
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode, IntraMSSAPHISVFGNode&gt;(succ))</div>
1819
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
1820
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succ);</div>
1821
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
1822
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
1823
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div>
1824
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1825
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
1826
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
1827
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
1828
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(reachFunExit)</div>
1829
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
1830
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span></div>
1831
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
1832
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div>
1832
1833
  </div><!-- fragment -->
1833
1834
  </div>
1834
1835
  </div>
@@ -2077,12 +2078,12 @@ Private Attributes</h2></td></tr>
2077
2078
  </table>
2078
2079
  </div><div class="memdoc">
2079
2080
 
2080
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00301">301</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
2081
- <div class="fragment"><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;{</div>
2082
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; </div>
2083
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Z3 Mem usage: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>()-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa">getMemUsage</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
2084
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Z3 Number: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>()-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c">getCondNum</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
2085
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;}</div>
2081
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00302">302</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
2082
+ <div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div>
2083
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div>
2084
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Z3 Mem usage: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>()-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa">getMemUsage</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
2085
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Z3 Number: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>()-&gt;<a class="code" href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c">getCondNum</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
2086
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div>
2086
2087
  </div><!-- fragment -->
2087
2088
  </div>
2088
2089
  </div>
@@ -2143,17 +2144,17 @@ Private Attributes</h2></td></tr>
2143
2144
  <p>Slice operations. </p>
2144
2145
  <p>Set current slice. </p>
2145
2146
 
2146
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00271">271</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
2147
- <div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div>
2148
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>!=<span class="keyword">nullptr</span>)</div>
2149
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div>
2150
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div>
2151
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">nullptr</span>;</div>
2152
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">clearVisitedMap</a>();</div>
2153
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div>
2154
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
2155
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ProgSlice.html">ProgSlice</a>(src,<a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>(), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>());</div>
2156
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;}</div>
2147
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00272">272</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
2148
+ <div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div>
2149
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>!=<span class="keyword">nullptr</span>)</div>
2150
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
2151
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div>
2152
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">nullptr</span>;</div>
2153
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">clearVisitedMap</a>();</div>
2154
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
2155
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; </div>
2156
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ProgSlice.html">ProgSlice</a>(src,<a class="code" href="classSVF_1_1SrcSnkDDA.html#af4f725606567ce8cc66b805df87a7afb">getSaberCondAllocator</a>(), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>());</div>
2157
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div>
2157
2158
  </div><!-- fragment -->
2158
2159
  </div>
2159
2160
  </div>
@@ -2548,32 +2549,32 @@ Private Attributes</h2></td></tr>
2548
2549
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ad28ffe435790d36ad872cddc213ea799"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad28ffe435790d36ad872cddc213ea799">SVF::SrcSnkDDA::addToCurBackwardSlice</a></div><div class="ttdeci">void addToCurBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00167">SrcSnkDDA.h:167</a></div></div>
2549
2550
  <div class="ttc" id="aclassSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00097">GenericGraph.h:97</a></div></div>
2550
2551
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a4bde70a5d9dbf5a9234a93aaeaaacb94"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a4bde70a5d9dbf5a9234a93aaeaaacb94">SVF::SrcSnkDDA::isInCurForwardSlice</a></div><div class="ttdeci">bool isInCurForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00155">SrcSnkDDA.h:155</a></div></div>
2551
- <div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_afbcd75844af51ff51c09c377f80a49cf"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#afbcd75844af51ff51c09c377f80a49cf">SVF::SaberSVFGBuilder::isGlobalSVFGNode</a></div><div class="ttdeci">bool isGlobalSVFGNode(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00054">SaberSVFGBuilder.h:54</a></div></div>
2552
- <div class="ttc" id="aclassSVF_1_1Options_html_a93970b0b5e0a6148a86ab192a812f34b"><div class="ttname"><a href="classSVF_1_1Options.html#a93970b0b5e0a6148a86ab192a812f34b">SVF::Options::SABERFULLSVFG</a></div><div class="ttdeci">static const Option&lt; bool &gt; SABERFULLSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00253">Options.h:253</a></div></div>
2552
+ <div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_afbcd75844af51ff51c09c377f80a49cf"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#afbcd75844af51ff51c09c377f80a49cf">SVF::SaberSVFGBuilder::isGlobalSVFGNode</a></div><div class="ttdeci">bool isGlobalSVFGNode(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00057">SaberSVFGBuilder.h:57</a></div></div>
2553
+ <div class="ttc" id="aclassSVF_1_1Options_html_a93970b0b5e0a6148a86ab192a812f34b"><div class="ttname"><a href="classSVF_1_1Options.html#a93970b0b5e0a6148a86ab192a812f34b">SVF::Options::SABERFULLSVFG</a></div><div class="ttdeci">static const Option&lt; bool &gt; SABERFULLSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00240">Options.h:240</a></div></div>
2553
2554
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a4f37c66db2588cd691353a9ad1a4d5b1"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">SVF::SrcSnkDDA::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdoc">Get SVFIR.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00120">SrcSnkDDA.h:120</a></div></div>
2554
2555
  <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>
2555
- <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>
2556
+ <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>
2556
2557
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a1c8f91ffa0b9f01d51c8cd5e14f076d5"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">SVF::SrcSnkDDA::initSrcs</a></div><div class="ttdeci">virtual void initSrcs()=0</div></div>
2557
2558
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ad50e479db8f0733326974709d6ffe653"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">SVF::SrcSnkDDA::getCurSlice</a></div><div class="ttdeci">ProgSlice * getCurSlice() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00146">SrcSnkDDA.h:146</a></div></div>
2558
2559
  <div class="ttc" id="aclassSVF_1_1GraphReachSolver_html_a0b7f0923105dfb198a2a8428d6c1ca98"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">SVF::GraphReachSolver::getNode</a></div><div class="ttdeci">GNODE * getNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00084">GraphReachSolver.h:84</a></div></div>
2559
2560
  <div class="ttc" id="aclassSVF_1_1ActualRetVFGNode_html"><div class="ttname"><a href="classSVF_1_1ActualRetVFGNode.html">SVF::ActualRetVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00967">VFGNode.h:967</a></div></div>
2560
2561
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00174">PointerAnalysis.h:174</a></div></div>
2561
2562
  <div class="ttc" id="aclassSVF_1_1GraphReachSolver_html_ad1ad147241183e1077a4691ebe7861b5"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">SVF::GraphReachSolver::forwardTraverse</a></div><div class="ttdeci">virtual void forwardTraverse(DPIm &amp;it)</div><div class="ttdoc">CFL forward traverse solve.</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00093">GraphReachSolver.h:93</a></div></div>
2562
- <div class="ttc" id="aclassSVF_1_1Options_html_aab0131558d9da9b0fe888387217ba919"><div class="ttname"><a href="classSVF_1_1Options.html#aab0131558d9da9b0fe888387217ba919">SVF::Options::MaxStepInWrapper</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; MaxStepInWrapper</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00097">Options.h:97</a></div></div>
2563
+ <div class="ttc" id="aclassSVF_1_1Options_html_aab0131558d9da9b0fe888387217ba919"><div class="ttname"><a href="classSVF_1_1Options.html#aab0131558d9da9b0fe888387217ba919">SVF::Options::MaxStepInWrapper</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; MaxStepInWrapper</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00086">Options.h:86</a></div></div>
2563
2564
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
2564
2565
  <div class="ttc" id="aSVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00582">SVFType.h:582</a></div></div>
2565
2566
  <div class="ttc" id="aclassSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
2566
2567
  <div class="ttc" id="aclassSVF_1_1GraphReachSolver_html_a5032d3988dbce5a29274c55dc4dbe6bc"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">SVF::GraphReachSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution.</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00180">GraphReachSolver.h:180</a></div></div>
2567
- <div class="ttc" id="aclassSVF_1_1SVFG_html_a8ba934714a7f2caf2e041002fdb66137"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">SVF::SVFG::getStat</a></div><div class="ttdeci">SVFGStat * getStat() const</div><div class="ttdoc">Return statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00125">SVFG.h:125</a></div></div>
2568
- <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>
2568
+ <div class="ttc" id="aclassSVF_1_1SVFG_html_a8ba934714a7f2caf2e041002fdb66137"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">SVF::SVFG::getStat</a></div><div class="ttdeci">SVFGStat * getStat() const</div><div class="ttdoc">Return statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00126">SVFG.h:126</a></div></div>
2569
+ <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>
2569
2570
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
2570
2571
  <div class="ttc" id="aclassSVF_1_1CopyVFGNode_html"><div class="ttname"><a href="classSVF_1_1CopyVFGNode.html">SVF::CopyVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00281">VFGNode.h:281</a></div></div>
2571
2572
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ad0cb9de24cbc99d148f63b694dc3908e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad0cb9de24cbc99d148f63b694dc3908e">SVF::SrcSnkDDA::sourcesEnd</a></div><div class="ttdeci">SVFGNodeSetIter sourcesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00214">SrcSnkDDA.h:214</a></div></div>
2572
2573
  <div class="ttc" id="aclassSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
2573
- <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>
2574
+ <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>
2574
2575
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a57262e29e81cf71a40d4feb87b92925f"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">SVF::SrcSnkDDA::addToCurForwardSlice</a></div><div class="ttdeci">void addToCurForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00163">SrcSnkDDA.h:163</a></div></div>
2575
2576
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a1145c601df2e3dec1e32e43613447b96"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">SVF::SrcSnkDDA::getSinks</a></div><div class="ttdeci">const SVFGNodeSet &amp; getSinks() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00222">SrcSnkDDA.h:222</a></div></div>
2576
- <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>
2577
+ <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>
2577
2578
  <div class="ttc" id="aclassSVF_1_1SVFGStat_html_a54e61121cdfac31e336cd79fa0513419"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a54e61121cdfac31e336cd79fa0513419">SVF::SVFGStat::addToBackwardSlice</a></div><div class="ttdeci">void addToBackwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00249">SVFGStat.h:249</a></div></div>
2578
2579
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a51c65cb4b8ea107161e112a8fd3fb7d4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a51c65cb4b8ea107161e112a8fd3fb7d4">SVF::SrcSnkDDA::addForwardVisited</a></div><div class="ttdeci">void addForwardVisited(const SVFGNode *node, const DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00287">SrcSnkDDA.h:287</a></div></div>
2579
2580
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_af6ee1f79b67c736ceeb591d0cdba4b06"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">SVF::SrcSnkDDA::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalize analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00114">SrcSnkDDA.h:114</a></div></div>
@@ -2584,15 +2585,15 @@ Private Attributes</h2></td></tr>
2584
2585
  <div class="ttc" id="aclassSVF_1_1GraphReachSolver_html_a88775eedbbc3039caac1e350b48aa838"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">SVF::GraphReachSolver::graph</a></div><div class="ttdeci">const GraphType graph() const</div><div class="ttdoc">Get/Set graph methods.</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00074">GraphReachSolver.h:74</a></div></div>
2585
2586
  <div class="ttc" id="aSVFType_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFType_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00596">SVFType.h:596</a></div></div>
2586
2587
  <div class="ttc" id="aclassSVF_1_1GraphReachSolver_html_a53564d384938c19980cb138f720e34e9"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">SVF::GraphReachSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00160">GraphReachSolver.h:160</a></div></div>
2587
- <div class="ttc" id="aclassSVF_1_1Options_html_ab9443e23bdcb60f118a7aab835f974db"><div class="ttname"><a href="classSVF_1_1Options.html#ab9443e23bdcb60f118a7aab835f974db">SVF::Options::DumpSlice</a></div><div class="ttdeci">static const Option&lt; bool &gt; DumpSlice</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00203">Options.h:203</a></div></div>
2588
+ <div class="ttc" id="aclassSVF_1_1Options_html_ab9443e23bdcb60f118a7aab835f974db"><div class="ttname"><a href="classSVF_1_1Options.html#ab9443e23bdcb60f118a7aab835f974db">SVF::Options::DumpSlice</a></div><div class="ttdeci">static const Option&lt; bool &gt; DumpSlice</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00190">Options.h:190</a></div></div>
2588
2589
  <div class="ttc" id="aclassSVF_1_1ContextCond_html"><div class="ttname"><a href="classSVF_1_1ContextCond.html">SVF::ContextCond</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00206">DPItem.h:206</a></div></div>
2589
2590
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
2590
- <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ab35c0d1f02c83a2c10717905f1abf5cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">SVF::SrcSnkDDA::setCurSlice</a></div><div class="ttdeci">virtual void setCurSlice(const SVFGNode *src)</div><div class="ttdoc">Slice operations.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00271">SrcSnkDDA.cpp:271</a></div></div>
2591
+ <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ab35c0d1f02c83a2c10717905f1abf5cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">SVF::SrcSnkDDA::setCurSlice</a></div><div class="ttdeci">virtual void setCurSlice(const SVFGNode *src)</div><div class="ttdoc">Slice operations.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00272">SrcSnkDDA.cpp:272</a></div></div>
2591
2592
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_aa87e9ca3c9a9dc6ae5cc88a0182a8154"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aa87e9ca3c9a9dc6ae5cc88a0182a8154">SVF::SrcSnkDDA::reportBug</a></div><div class="ttdeci">virtual void reportBug(ProgSlice *slice)=0</div><div class="ttdoc">report bug on the current analyzed slice</div></div>
2592
2593
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a391bb031b2f244e930b266a29cda0af7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a391bb031b2f244e930b266a29cda0af7">SVF::SrcSnkDDA::isGlobalSVFGNode</a></div><div class="ttdeci">bool isGlobalSVFGNode(const SVFGNode *node) const</div><div class="ttdoc">Whether this svfg node may access global variable.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00138">SrcSnkDDA.h:138</a></div></div>
2593
2594
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_aa7d6999b99412cdc101152867778cd0a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aa7d6999b99412cdc101152867778cd0a">SVF::SrcSnkDDA::report</a></div><div class="ttdeci">SVFBugReport report</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00080">SrcSnkDDA.h:80</a></div></div>
2594
2595
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_aa061e2d72d3045c9712512c6df002544"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aa061e2d72d3045c9712512c6df002544">SVF::SrcSnkDDA::addBackwardVisited</a></div><div class="ttdeci">void addBackwardVisited(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00295">SrcSnkDDA.h:295</a></div></div>
2595
- <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>
2596
+ <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>
2596
2597
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a2349db6c540e418600e2fdbe2e665628"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">SVF::SrcSnkDDA::visitedSet</a></div><div class="ttdeci">SVFGNodeSet visitedSet</div><div class="ttdoc">record backward visited nodes</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00074">SrcSnkDDA.h:74</a></div></div>
2597
2598
  <div class="ttc" id="aclassSVF_1_1CallDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallDirSVFGEdge.html">SVF::CallDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00211">VFGEdge.h:211</a></div></div>
2598
2599
  <div class="ttc" id="aclassSVF_1_1PHIVFGNode_html"><div class="ttname"><a href="classSVF_1_1PHIVFGNode.html">SVF::PHIVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00635">VFGNode.h:635</a></div></div>
@@ -2600,6 +2601,7 @@ Private Attributes</h2></td></tr>
2600
2601
  <div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00041">SVFGBuilder.cpp:41</a></div></div>
2601
2602
  <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>
2602
2603
  <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a0014c59d7f3c7bd0845548aea05a9a5b"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a0014c59d7f3c7bd0845548aea05a9a5b">SVF::SaberCondAllocator::allocate</a></div><div class="ttdeci">void allocate(const SVFModule *module)</div><div class="ttdoc">Perform path allocation.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8cpp_source.html#l00058">SaberCondAllocator.cpp:58</a></div></div>
2604
+ <div class="ttc" id="aclassSVF_1_1SaberSVFGBuilder_html_a8eb03d4362685f361bc1110fc98925b9"><div class="ttname"><a href="classSVF_1_1SaberSVFGBuilder.html#a8eb03d4362685f361bc1110fc98925b9">SVF::SaberSVFGBuilder::setSaberCondAllocator</a></div><div class="ttdeci">void setSaberCondAllocator(SaberCondAllocator *allocator)</div><div class="ttdef"><b>Definition:</b> <a href="SaberSVFGBuilder_8h_source.html#l00068">SaberSVFGBuilder.h:68</a></div></div>
2603
2605
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a83d5ccf0836f8f751aff078f88328cca"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">SVF::SrcSnkDDA::DPIm</a></div><div class="ttdeci">CxtDPItem DPIm</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00061">SrcSnkDDA.h:61</a></div></div>
2604
2606
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a79833c0cf1916d63e1dd32c2220056dd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a79833c0cf1916d63e1dd32c2220056dd">SVF::SrcSnkDDA::sinksBegin</a></div><div class="ttdeci">SVFGNodeSetIter sinksBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00226">SrcSnkDDA.h:226</a></div></div>
2605
2607
  <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>
@@ -2607,23 +2609,23 @@ Private Attributes</h2></td></tr>
2607
2609
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a0f6cfa30c346aab1fb03a44e47c32559"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">SVF::SrcSnkDDA::initSnks</a></div><div class="ttdeci">virtual void initSnks()=0</div></div>
2608
2610
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00217">GenericGraph.h:217</a></div></div>
2609
2611
  <div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00049">SVFGBuilder.cpp:49</a></div></div>
2610
- <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a8817604b20724703121e9466e5cdb4cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">SVF::SrcSnkDDA::annotateSlice</a></div><div class="ttdeci">void annotateSlice(ProgSlice *slice)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00283">SrcSnkDDA.cpp:283</a></div></div>
2611
- <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>
2612
+ <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a8817604b20724703121e9466e5cdb4cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8817604b20724703121e9466e5cdb4cd">SVF::SrcSnkDDA::annotateSlice</a></div><div class="ttdeci">void annotateSlice(ProgSlice *slice)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00284">SrcSnkDDA.cpp:284</a></div></div>
2613
+ <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>
2612
2614
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a5c8cbc986cccb9d84f87aae162df3737"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5c8cbc986cccb9d84f87aae162df3737">SVF::SVFUtil::isa</a></div><div class="ttdeci">LLVM_NODISCARD bool isa(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00241">Casting.h:241</a></div></div>
2613
2615
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a32cc8a131b2448b5e8e1fe65d99fd286"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">SVF::SrcSnkDDA::backwardVisited</a></div><div class="ttdeci">bool backwardVisited(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00291">SrcSnkDDA.h:291</a></div></div>
2614
- <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>
2615
- <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>
2616
+ <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>
2617
+ <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>
2616
2618
  <div class="ttc" id="aclassSVF_1_1VFGEdge_html_a4352297ef44c4eff1efe2f348cce6fe9"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">SVF::VFGEdge::isCallVFGEdge</a></div><div class="ttdeci">bool isCallVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00084">VFGEdge.h:84</a></div></div>
2617
- <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>
2619
+ <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>
2618
2620
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ad6935e27bbd95d26a01b22b879efed58"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA::SVFGNodeSetIter</a></div><div class="ttdeci">SVFGNodeSet::const_iterator SVFGNodeSetIter</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00060">SrcSnkDDA.h:60</a></div></div>
2619
2621
  <div class="ttc" id="aclassSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00384">Andersen.h:384</a></div></div>
2620
- <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>
2621
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a634376c35eceaf4dc995a71484d9bc7c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c">SVF::SaberCondAllocator::getCondNum</a></div><div class="ttdeci">u32_t getCondNum()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00078">SaberCondAllocator.h:78</a></div></div>
2622
- <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>
2623
- <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>
2622
+ <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>
2623
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_a634376c35eceaf4dc995a71484d9bc7c"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#a634376c35eceaf4dc995a71484d9bc7c">SVF::SaberCondAllocator::getCondNum</a></div><div class="ttdeci">u32_t getCondNum()</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00079">SaberCondAllocator.h:79</a></div></div>
2624
+ <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>
2625
+ <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>
2624
2626
  <div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
2625
2627
  <div class="ttc" id="aclassSVF_1_1GepVFGNode_html"><div class="ttname"><a href="classSVF_1_1GepVFGNode.html">SVF::GepVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00594">VFGNode.h:594</a></div></div>
2626
- <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>
2628
+ <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>
2627
2629
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a60dcf333cb36230d5f3070e8d238ad6d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">SVF::SrcSnkDDA::_curSlice</a></div><div class="ttdeci">ProgSlice * _curSlice</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00069">SrcSnkDDA.h:69</a></div></div>
2628
2630
  <div class="ttc" id="anamespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00059">SVFType.h:59</a></div></div>
2629
2631
  <div class="ttc" id="aclassSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
@@ -2640,17 +2642,17 @@ Private Attributes</h2></td></tr>
2640
2642
  <div class="ttc" id="aclassSVF_1_1VFGEdge_html_a49cbf2a714c9b965b19452d266cd8bdf"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a49cbf2a714c9b965b19452d266cd8bdf">SVF::VFGEdge::isRetDirectVFGEdge</a></div><div class="ttdeci">bool isRetDirectVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00096">VFGEdge.h:96</a></div></div>
2641
2643
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ab6803f0a2b3507213ad2979b9b12f700"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">SVF::SrcSnkDDA::memSSA</a></div><div class="ttdeci">SaberSVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00077">SrcSnkDDA.h:77</a></div></div>
2642
2644
  <div class="ttc" id="aclassSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager.</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00395">Andersen.h:395</a></div></div>
2643
- <div class="ttc" id="aclassSVF_1_1Options_html_a3fd9cce83729bc62cd2fb568b0d53db5"><div class="ttname"><a href="classSVF_1_1Options.html#a3fd9cce83729bc62cd2fb568b0d53db5">SVF::Options::CxtLimit</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; CxtLimit</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00204">Options.h:204</a></div></div>
2644
- <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ac0060d6660cb022e599dbcb9eabc5aaa"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa">SVF::SaberCondAllocator::getMemUsage</a></div><div class="ttdeci">std::string getMemUsage()</div><div class="ttdoc">Statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00070">SaberCondAllocator.h:70</a></div></div>
2645
+ <div class="ttc" id="aclassSVF_1_1Options_html_a3fd9cce83729bc62cd2fb568b0d53db5"><div class="ttname"><a href="classSVF_1_1Options.html#a3fd9cce83729bc62cd2fb568b0d53db5">SVF::Options::CxtLimit</a></div><div class="ttdeci">static const Option&lt; u32_t &gt; CxtLimit</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00191">Options.h:191</a></div></div>
2646
+ <div class="ttc" id="aclassSVF_1_1SaberCondAllocator_html_ac0060d6660cb022e599dbcb9eabc5aaa"><div class="ttname"><a href="classSVF_1_1SaberCondAllocator.html#ac0060d6660cb022e599dbcb9eabc5aaa">SVF::SaberCondAllocator::getMemUsage</a></div><div class="ttdeci">std::string getMemUsage()</div><div class="ttdoc">Statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SaberCondAllocator_8h_source.html#l00071">SaberCondAllocator.h:71</a></div></div>
2645
2647
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_aaffd4b48be1f99e0450b23f20f034b1e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">SVF::SrcSnkDDA::sinks</a></div><div class="ttdeci">SVFGNodeSet sinks</div><div class="ttdoc">source nodes</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00071">SrcSnkDDA.h:71</a></div></div>
2646
2648
  <div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00576">SVFType.h:576</a></div></div>
2647
- <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>
2649
+ <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>
2648
2650
  <div class="ttc" id="aclassSVF_1_1GraphReachSolver_html_a0298a692295a8a4eae32ab151aa6ccc3"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a0298a692295a8a4eae32ab151aa6ccc3">SVF::GraphReachSolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00078">GraphReachSolver.h:78</a></div></div>
2649
2651
  <div class="ttc" id="aclassSVF_1_1ContextCond_html_a92e89bbae0f31bb9eb971ab3edcc8071"><div class="ttname"><a href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">SVF::ContextCond::setMaxCxtLen</a></div><div class="ttdeci">static void setMaxCxtLen(u32_t max)</div><div class="ttdoc">set max context limit</div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00265">DPItem.h:265</a></div></div>
2650
- <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_acae985068ff1c20fb81c4c9ba730aaba"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#acae985068ff1c20fb81c4c9ba730aaba">SVF::SrcSnkDDA::dumpSlices</a></div><div class="ttdeci">void dumpSlices()</div><div class="ttdoc">Dump SVFG with annotated slice information.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00294">SrcSnkDDA.cpp:294</a></div></div>
2652
+ <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_acae985068ff1c20fb81c4c9ba730aaba"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#acae985068ff1c20fb81c4c9ba730aaba">SVF::SrcSnkDDA::dumpSlices</a></div><div class="ttdeci">void dumpSlices()</div><div class="ttdoc">Dump SVFG with annotated slice information.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00295">SrcSnkDDA.cpp:295</a></div></div>
2651
2653
  <div class="ttc" id="aclassSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
2652
- <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>
2653
- <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>
2654
+ <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>
2655
+ <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>
2654
2656
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a8883b9a42106ed8c55835d2ba9a579cd"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">SVF::SrcSnkDDA::initialize</a></div><div class="ttdeci">virtual void initialize(SVFModule *module)</div><div class="ttdoc">Initialize analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00041">SrcSnkDDA.cpp:41</a></div></div>
2655
2657
  <div class="ttc" id="aclassSVF_1_1SVFGStat_html_aee8cb3fa54e882bba54bf557bbc5e1a3"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#aee8cb3fa54e882bba54bf557bbc5e1a3">SVF::SVFGStat::addToForwardSlice</a></div><div class="ttdeci">void addToForwardSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00245">SVFGStat.h:245</a></div></div>
2656
2658
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_a0515c9079f28f8c5d4f0f9a2fc39a137"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0515c9079f28f8c5d4f0f9a2fc39a137">SVF::SrcSnkDDA::sourcesBegin</a></div><div class="ttdeci">SVFGNodeSetIter sourcesBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00210">SrcSnkDDA.h:210</a></div></div>
@@ -2660,7 +2662,7 @@ Private Attributes</h2></td></tr>
2660
2662
  <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>
2661
2663
  <div class="ttc" id="aclassSVF_1_1VFGEdge_html_a92e3da59f7f5a693945b9a93f169da04"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a92e3da59f7f5a693945b9a93f169da04">SVF::VFGEdge::isCallDirectVFGEdge</a></div><div class="ttdeci">bool isCallDirectVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00092">VFGEdge.h:92</a></div></div>
2662
2664
  <div class="ttc" id="aclassSVF_1_1SrcSnkDDA_html_ae657ebdeae8a083cfec210859a0023e4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">SVF::SrcSnkDDA::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00078">SrcSnkDDA.h:78</a></div></div>
2663
- <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>
2665
+ <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>
2664
2666
  <!-- start footer part -->
2665
2667
  <hr class="footer"/><address class="footer"><small>
2666
2668
  Generated by &#160;<a href="http://www.doxygen.org/index.html">