svf-tools 1.0.442 → 1.0.445

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 (518) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
  15. package/SVF-doxygen/html/html/BitVector_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/BitVector_8h_source.html +1 -1
  17. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/CFGNormalizer_8cpp.html +86 -0
  20. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +104 -0
  21. package/SVF-doxygen/html/html/CFGNormalizer_8h.html +95 -0
  22. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +95 -0
  23. package/SVF-doxygen/html/html/CFLAlias_8h.html +100 -0
  24. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +136 -0
  25. package/SVF-doxygen/html/html/CFLGrammar_8cpp.html +81 -0
  26. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +90 -0
  27. package/SVF-doxygen/html/html/CFLGrammar_8h.html +97 -0
  28. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +114 -0
  29. package/SVF-doxygen/html/html/CFLGraph_8cpp.html +96 -0
  30. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +123 -0
  31. package/SVF-doxygen/html/html/CFLGraph_8h.html +124 -0
  32. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +114 -0
  33. package/SVF-doxygen/html/html/CFLSolver_8cpp.html +80 -0
  34. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +107 -0
  35. package/SVF-doxygen/html/html/CFLSolver_8h.html +6 -5
  36. package/SVF-doxygen/html/html/CFLSolver_8h_source.html +27 -33
  37. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/CHG_8cpp_source.html +2 -2
  40. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/CSC_8h_source.html +1 -1
  45. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/Casting_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  49. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +1 -1
  50. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +6 -6
  51. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  52. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
  55. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +1 -1
  57. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  59. package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
  60. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  62. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  65. package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
  66. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
  75. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  76. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  79. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  83. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
  84. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  86. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
  88. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
  89. package/SVF-doxygen/html/html/GrammarBuilder_8cpp.html +94 -0
  90. package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +92 -0
  91. package/SVF-doxygen/html/html/GrammarBuilder_8h.html +96 -0
  92. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +87 -0
  93. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  94. package/SVF-doxygen/html/html/Graph2Json_8h_source.html +1 -1
  95. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  96. package/SVF-doxygen/html/html/GraphReachSolver_8h.html +96 -0
  97. package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +113 -0
  98. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
  99. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
  102. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  104. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  105. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
  106. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  107. package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
  108. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  109. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
  110. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
  111. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
  112. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  113. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
  114. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  115. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  116. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  117. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  118. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  119. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  120. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  121. package/SVF-doxygen/html/html/MHP_8h_source.html +1 -1
  122. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  124. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
  125. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  126. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
  127. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  128. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  129. package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
  130. package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
  131. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  132. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  133. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  134. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  135. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
  136. package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
  137. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +1 -1
  138. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  139. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +1 -1
  140. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  141. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/Options_8cpp_source.html +7 -2
  143. package/SVF-doxygen/html/html/Options_8h_source.html +7 -2
  144. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  145. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  146. package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
  147. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  148. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  149. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +2 -2
  150. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
  151. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  152. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  153. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +1 -1
  154. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +1 -1
  155. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +1 -1
  156. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  157. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  158. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
  159. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
  160. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  161. package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
  162. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  163. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
  164. package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
  165. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
  166. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  167. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +1 -1
  168. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  169. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  170. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  171. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  172. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
  173. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
  174. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
  175. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  176. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  177. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  178. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
  179. package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
  180. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  181. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  182. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  183. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  184. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  185. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
  186. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  187. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +1 -1
  188. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  189. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
  190. package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
  191. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  192. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  193. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  194. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
  195. package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
  196. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +61 -61
  197. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
  198. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  199. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  200. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -1
  201. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  202. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
  203. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +1 -1
  204. package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
  205. package/SVF-doxygen/html/html/TCT_8h_source.html +2 -2
  206. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
  207. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
  208. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  209. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  210. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  211. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  212. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
  213. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +1 -1
  215. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +1 -1
  216. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  217. package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
  218. package/SVF-doxygen/html/html/VFG_8h_source.html +2 -2
  219. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  220. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  221. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +1 -1
  222. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
  223. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  224. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  225. package/SVF-doxygen/html/html/WPASolver_8h_source.html +1 -1
  226. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  227. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  228. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  229. package/SVF-doxygen/html/html/annotated.html +302 -288
  230. package/SVF-doxygen/html/html/cfl_8cpp.html +171 -0
  231. package/SVF-doxygen/html/html/cfl_8cpp_source.html +95 -0
  232. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +51 -51
  233. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +3 -3
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +39 -39
  235. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +3 -3
  236. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +56 -56
  237. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +3 -3
  238. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +55 -55
  239. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +51 -51
  241. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -3
  242. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +52 -52
  243. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +3 -3
  244. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +59 -59
  245. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
  246. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +53 -53
  247. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
  248. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +33 -33
  249. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
  250. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +90 -0
  251. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +458 -0
  252. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +216 -0
  253. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +801 -0
  254. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
  255. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge-members.html +96 -0
  256. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +216 -0
  257. package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.png +0 -0
  258. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +110 -0
  259. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +591 -0
  260. package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.png +0 -0
  261. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +122 -0
  262. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +756 -0
  263. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.png +0 -0
  264. package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +118 -0
  265. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +257 -0
  266. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.png +0 -0
  267. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +17 -28
  268. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +181 -548
  269. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +36 -36
  270. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
  271. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
  272. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
  273. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +57 -57
  274. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
  275. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +55 -55
  276. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
  277. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
  278. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +55 -55
  279. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
  280. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +57 -57
  281. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +66 -66
  282. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
  283. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +48 -48
  284. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  285. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +47 -47
  286. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +59 -59
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
  289. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +8 -24
  290. package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
  291. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +10 -9
  292. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.png +0 -0
  293. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
  294. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  295. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +93 -0
  296. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +399 -0
  297. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.png +0 -0
  298. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder-members.html +85 -0
  299. package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +226 -0
  300. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver-members.html +106 -0
  301. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +937 -0
  302. package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.png +0 -0
  303. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +55 -55
  304. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +81 -81
  305. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
  306. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +80 -75
  307. package/SVF-doxygen/html/html/classSVF_1_1Options.html +130 -0
  308. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +25 -25
  309. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +17 -16
  310. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  311. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +51 -51
  312. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +207 -207
  313. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
  314. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +0 -12
  315. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +42 -42
  316. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +3 -3
  317. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +45 -45
  318. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
  319. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +61 -61
  320. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +5 -5
  321. package/SVF-doxygen/html/html/classes.html +103 -101
  322. package/SVF-doxygen/html/html/cuddInt_8c.html +6 -6
  323. package/SVF-doxygen/html/html/cuddInt_8c_source.html +2 -2
  324. package/SVF-doxygen/html/html/cudd_8h.html +4 -4
  325. package/SVF-doxygen/html/html/dda_8cpp.html +2 -46
  326. package/SVF-doxygen/html/html/dda_8cpp_source.html +4 -5
  327. package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
  328. package/SVF-doxygen/html/html/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html +2 -0
  329. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  330. package/SVF-doxygen/html/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html +2 -0
  331. package/SVF-doxygen/html/html/dir_98f9a352f241e0e917d4efaa4086f6e8.html +89 -0
  332. package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +91 -0
  333. package/SVF-doxygen/html/html/dir_d44c64559bbebec7f509842c48db8b23.html +2 -0
  334. package/SVF-doxygen/html/html/dir_e6cca4e14eddbb730e0cbe3cab632ce5.html +83 -0
  335. package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +2 -0
  336. package/SVF-doxygen/html/html/files.html +268 -252
  337. package/SVF-doxygen/html/html/functions.html +2 -1
  338. package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
  339. package/SVF-doxygen/html/html/functions_a.html +16 -14
  340. package/SVF-doxygen/html/html/functions_b.html +16 -5
  341. package/SVF-doxygen/html/html/functions_c.html +69 -26
  342. package/SVF-doxygen/html/html/functions_d.html +3 -1
  343. package/SVF-doxygen/html/html/functions_e.html +19 -4
  344. package/SVF-doxygen/html/html/functions_eval.html +0 -6
  345. package/SVF-doxygen/html/html/functions_eval_c.html +9 -0
  346. package/SVF-doxygen/html/html/functions_eval_f.html +0 -3
  347. package/SVF-doxygen/html/html/functions_f.html +28 -21
  348. package/SVF-doxygen/html/html/functions_func.html +18 -10
  349. package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
  350. package/SVF-doxygen/html/html/functions_func_b.html +19 -8
  351. package/SVF-doxygen/html/html/functions_func_c.html +42 -18
  352. package/SVF-doxygen/html/html/functions_func_d.html +4 -2
  353. package/SVF-doxygen/html/html/functions_func_e.html +10 -1
  354. package/SVF-doxygen/html/html/functions_func_f.html +6 -3
  355. package/SVF-doxygen/html/html/functions_func_g.html +56 -10
  356. package/SVF-doxygen/html/html/functions_func_h.html +12 -2
  357. package/SVF-doxygen/html/html/functions_func_i.html +19 -9
  358. package/SVF-doxygen/html/html/functions_func_n.html +7 -1
  359. package/SVF-doxygen/html/html/functions_func_p.html +8 -4
  360. package/SVF-doxygen/html/html/functions_func_s.html +20 -6
  361. package/SVF-doxygen/html/html/functions_func_v.html +3 -2
  362. package/SVF-doxygen/html/html/functions_g.html +86 -21
  363. package/SVF-doxygen/html/html/functions_h.html +15 -5
  364. package/SVF-doxygen/html/html/functions_i.html +27 -12
  365. package/SVF-doxygen/html/html/functions_l.html +5 -2
  366. package/SVF-doxygen/html/html/functions_n.html +22 -7
  367. package/SVF-doxygen/html/html/functions_o.html +6 -6
  368. package/SVF-doxygen/html/html/functions_p.html +23 -16
  369. package/SVF-doxygen/html/html/functions_r.html +11 -6
  370. package/SVF-doxygen/html/html/functions_s.html +53 -17
  371. package/SVF-doxygen/html/html/functions_t.html +11 -7
  372. package/SVF-doxygen/html/html/functions_type_c.html +5 -1
  373. package/SVF-doxygen/html/html/functions_type_g.html +6 -3
  374. package/SVF-doxygen/html/html/functions_type_i.html +4 -2
  375. package/SVF-doxygen/html/html/functions_type_n.html +6 -3
  376. package/SVF-doxygen/html/html/functions_type_p.html +9 -0
  377. package/SVF-doxygen/html/html/functions_type_s.html +6 -0
  378. package/SVF-doxygen/html/html/functions_type_w.html +3 -1
  379. package/SVF-doxygen/html/html/functions_v.html +2 -1
  380. package/SVF-doxygen/html/html/functions_vars.html +2 -1
  381. package/SVF-doxygen/html/html/functions_vars_c.html +6 -0
  382. package/SVF-doxygen/html/html/functions_vars_e.html +6 -0
  383. package/SVF-doxygen/html/html/functions_vars_f.html +9 -0
  384. package/SVF-doxygen/html/html/functions_vars_g.html +17 -1
  385. package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
  386. package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
  387. package/SVF-doxygen/html/html/functions_vars_n.html +6 -0
  388. package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
  389. package/SVF-doxygen/html/html/functions_vars_s.html +16 -0
  390. package/SVF-doxygen/html/html/functions_vars_t.html +6 -0
  391. package/SVF-doxygen/html/html/functions_vars_w.html +3 -1
  392. package/SVF-doxygen/html/html/functions_w.html +15 -1
  393. package/SVF-doxygen/html/html/globals_func_i.html +3 -10
  394. package/SVF-doxygen/html/html/globals_func_m.html +12 -11
  395. package/SVF-doxygen/html/html/globals_func_s.html +1 -0
  396. package/SVF-doxygen/html/html/globals_i.html +3 -10
  397. package/SVF-doxygen/html/html/globals_m.html +14 -13
  398. package/SVF-doxygen/html/html/globals_s.html +8 -7
  399. package/SVF-doxygen/html/html/hierarchy.html +433 -417
  400. package/SVF-doxygen/html/html/mta_8cpp.html +2 -46
  401. package/SVF-doxygen/html/html/mta_8cpp_source.html +3 -4
  402. package/SVF-doxygen/html/html/namespaceSVF.html +83 -6
  403. package/SVF-doxygen/html/html/namespacellvm.html +9 -0
  404. package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
  405. package/SVF-doxygen/html/html/namespacemembers_g.html +11 -2
  406. package/SVF-doxygen/html/html/namespacemembers_type.html +10 -1
  407. package/SVF-doxygen/html/html/saber_8cpp.html +2 -46
  408. package/SVF-doxygen/html/html/saber_8cpp_source.html +4 -5
  409. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  410. package/SVF-doxygen/html/html/search/all_1.js +4 -4
  411. package/SVF-doxygen/html/html/search/all_10.js +8 -6
  412. package/SVF-doxygen/html/html/search/all_12.js +2 -1
  413. package/SVF-doxygen/html/html/search/all_13.js +20 -11
  414. package/SVF-doxygen/html/html/search/all_14.js +5 -3
  415. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  416. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  417. package/SVF-doxygen/html/html/search/all_1b.js +6 -0
  418. package/SVF-doxygen/html/html/search/all_2.js +6 -4
  419. package/SVF-doxygen/html/html/search/all_3.js +27 -4
  420. package/SVF-doxygen/html/html/search/all_4.js +3 -2
  421. package/SVF-doxygen/html/html/search/all_5.js +5 -0
  422. package/SVF-doxygen/html/html/search/all_6.js +8 -5
  423. package/SVF-doxygen/html/html/search/all_7.js +40 -13
  424. package/SVF-doxygen/html/html/search/all_8.js +4 -1
  425. package/SVF-doxygen/html/html/search/all_9.js +9 -7
  426. package/SVF-doxygen/html/html/search/all_c.js +2 -1
  427. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  428. package/SVF-doxygen/html/html/search/all_e.js +9 -5
  429. package/SVF-doxygen/html/html/search/all_f.js +4 -4
  430. package/SVF-doxygen/html/html/search/classes_2.js +7 -0
  431. package/SVF-doxygen/html/html/search/classes_3.js +1 -0
  432. package/SVF-doxygen/html/html/search/classes_5.js +1 -0
  433. package/SVF-doxygen/html/html/search/classes_6.js +7 -0
  434. package/SVF-doxygen/html/html/search/enumvalues_0.js +0 -2
  435. package/SVF-doxygen/html/html/search/enumvalues_2.js +3 -0
  436. package/SVF-doxygen/html/html/search/enumvalues_5.js +0 -1
  437. package/SVF-doxygen/html/html/search/files_2.js +11 -1
  438. package/SVF-doxygen/html/html/search/files_6.js +4 -1
  439. package/SVF-doxygen/html/html/search/functions_0.js +4 -2
  440. package/SVF-doxygen/html/html/search/functions_1.js +6 -4
  441. package/SVF-doxygen/html/html/search/functions_10.js +7 -3
  442. package/SVF-doxygen/html/html/search/functions_13.js +1 -1
  443. package/SVF-doxygen/html/html/search/functions_16.js +6 -0
  444. package/SVF-doxygen/html/html/search/functions_2.js +8 -0
  445. package/SVF-doxygen/html/html/search/functions_3.js +2 -2
  446. package/SVF-doxygen/html/html/search/functions_4.js +3 -0
  447. package/SVF-doxygen/html/html/search/functions_5.js +3 -3
  448. package/SVF-doxygen/html/html/search/functions_6.js +22 -10
  449. package/SVF-doxygen/html/html/search/functions_7.js +4 -1
  450. package/SVF-doxygen/html/html/search/functions_8.js +5 -4
  451. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  452. package/SVF-doxygen/html/html/search/functions_c.js +2 -0
  453. package/SVF-doxygen/html/html/search/functions_e.js +2 -2
  454. package/SVF-doxygen/html/html/search/typedefs_11.js +1 -0
  455. package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
  456. package/SVF-doxygen/html/html/search/typedefs_2.js +3 -2
  457. package/SVF-doxygen/html/html/search/typedefs_6.js +6 -3
  458. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
  459. package/SVF-doxygen/html/html/search/typedefs_d.js +3 -3
  460. package/SVF-doxygen/html/html/search/typedefs_f.js +2 -0
  461. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  462. package/SVF-doxygen/html/html/search/variables_12.js +1 -0
  463. package/SVF-doxygen/html/html/search/variables_13.js +5 -0
  464. package/SVF-doxygen/html/html/search/variables_14.js +3 -1
  465. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  466. package/SVF-doxygen/html/html/search/variables_3.js +2 -0
  467. package/SVF-doxygen/html/html/search/variables_5.js +3 -1
  468. package/SVF-doxygen/html/html/search/variables_6.js +3 -0
  469. package/SVF-doxygen/html/html/search/variables_7.js +5 -1
  470. package/SVF-doxygen/html/html/search/variables_9.js +1 -0
  471. package/SVF-doxygen/html/html/search/variables_c.js +1 -0
  472. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  473. package/SVF-doxygen/html/html/search/variables_e.js +2 -0
  474. package/SVF-doxygen/html/html/st_8c.html +4 -4
  475. package/SVF-doxygen/html/html/st_8c_source.html +2 -2
  476. package/SVF-doxygen/html/html/st_8h.html +4 -4
  477. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +87 -0
  478. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +381 -0
  479. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
  480. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +100 -0
  481. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
  482. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4-members.html +81 -0
  483. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +122 -0
  484. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
  485. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +96 -0
  486. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
  487. package/SVF-doxygen/html/html/svf-ex_8cpp.html +10 -54
  488. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -9
  489. package/SVF-doxygen/html/html/tools_2CFL_2CMakeLists_8txt.html +102 -0
  490. package/SVF-doxygen/html/html/wpa_8cpp.html +2 -46
  491. package/SVF-doxygen/html/html/wpa_8cpp_source.html +3 -4
  492. package/include/CFL/CFGNormalizer.h +70 -0
  493. package/include/CFL/CFLAlias.h +124 -0
  494. package/include/CFL/CFLGrammar.h +127 -0
  495. package/include/CFL/CFLSolver.h +94 -0
  496. package/include/CFL/GrammarBuilder.h +65 -0
  497. package/include/Graphs/CFLGraph.h +175 -0
  498. package/include/Graphs/IRGraph.h +1 -1
  499. package/include/MemoryModel/PointerAnalysis.h +3 -3
  500. package/include/SABER/SrcSnkDDA.h +3 -2
  501. package/include/Util/GraphReachSolver.h +186 -0
  502. package/include/Util/Options.h +6 -0
  503. package/lib/CFL/CFGNormalizer.cpp +329 -0
  504. package/lib/CFL/CFLGrammar.cpp +101 -0
  505. package/lib/CFL/CFLSolver.cpp +106 -0
  506. package/lib/CFL/GrammarBuilder.cpp +155 -0
  507. package/lib/CMakeLists.txt +1 -0
  508. package/lib/Graphs/CFLGraph.cpp +225 -0
  509. package/lib/Util/Options.cpp +31 -0
  510. package/package.json +1 -1
  511. package/tools/CFL/CMakeLists.txt +12 -0
  512. package/tools/CFL/cfl.cpp +80 -0
  513. package/tools/CMakeLists.txt +1 -0
  514. package/tools/DDA/dda.cpp +0 -3
  515. package/tools/Example/svf-ex.cpp +0 -3
  516. package/tools/MTA/mta.cpp +0 -4
  517. package/tools/SABER/saber.cpp +0 -3
  518. package/tools/WPA/wpa.cpp +0 -4
@@ -81,10 +81,10 @@ Inheritance diagram for SVF::SrcSnkDDA:</div>
81
81
  <div class="center">
82
82
  <img src="classSVF_1_1SrcSnkDDA.png" usemap="#SVF::SrcSnkDDA_map" alt=""/>
83
83
  <map id="SVF::SrcSnkDDA_map" name="SVF::SrcSnkDDA_map">
84
- <area href="classSVF_1_1SrcSnkSolver.html" alt="SVF::SrcSnkSolver&lt; GraphType, DPIm &gt;" shape="rect" coords="133,0,390,24"/>
85
- <area href="classSVF_1_1LeakChecker.html" alt="SVF::LeakChecker" shape="rect" coords="133,112,390,136"/>
86
- <area href="classSVF_1_1DoubleFreeChecker.html" alt="SVF::DoubleFreeChecker" shape="rect" coords="0,168,257,192"/>
87
- <area href="classSVF_1_1FileChecker.html" alt="SVF::FileChecker" shape="rect" coords="267,168,524,192"/>
84
+ <area href="classSVF_1_1GraphReachSolver.html" alt="SVF::GraphReachSolver&lt; GraphType, DPIm &gt;" shape="rect" coords="148,0,435,24"/>
85
+ <area href="classSVF_1_1LeakChecker.html" alt="SVF::LeakChecker" shape="rect" coords="148,112,435,136"/>
86
+ <area href="classSVF_1_1DoubleFreeChecker.html" alt="SVF::DoubleFreeChecker" shape="rect" coords="0,168,287,192"/>
87
+ <area href="classSVF_1_1FileChecker.html" alt="SVF::FileChecker" shape="rect" coords="297,168,584,192"/>
88
88
  </map>
89
89
  </div></div>
90
90
  <table class="memberdecls">
@@ -110,26 +110,26 @@ Public Types</h2></td></tr>
110
110
  <tr class="separator:a70cff8ea7c033c01400935c9e446f2c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
111
  <tr class="memitem:a3c0d8850c4dae49a760ce5f80fb8822a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1ProgSlice.html#a684e44ade783439c6f77a8d84eed282c">ProgSlice::VFWorkList</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a></td></tr>
112
112
  <tr class="separator:a3c0d8850c4dae49a760ce5f80fb8822a"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
- <tr class="inherit_header pub_types_classSVF_1_1SrcSnkSolver"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1SrcSnkSolver')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1SrcSnkSolver.html">SVF::SrcSnkSolver&lt; GraphType, DPIm &gt;</a></td></tr>
114
- <tr class="memitem:a40c3ad6a16099d14654d6f59a1bae238 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits&lt; GraphType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a40c3ad6a16099d14654d6f59a1bae238">GTraits</a></td></tr>
115
- <tr class="memdesc:a40c3ad6a16099d14654d6f59a1bae238 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the GTraits and node iterator. <a href="classSVF_1_1SrcSnkSolver.html#a40c3ad6a16099d14654d6f59a1bae238">More...</a><br /></td></tr>
116
- <tr class="separator:a40c3ad6a16099d14654d6f59a1bae238 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
- <tr class="memitem:aad6cad7d89663ac4466f97dac63ee385 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::NodeType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#aad6cad7d89663ac4466f97dac63ee385">GNODE</a></td></tr>
118
- <tr class="separator:aad6cad7d89663ac4466f97dac63ee385 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
- <tr class="memitem:a6007c2d795370bb48ad120af5474a31f inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::EdgeType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a6007c2d795370bb48ad120af5474a31f">GEDGE</a></td></tr>
120
- <tr class="separator:a6007c2d795370bb48ad120af5474a31f inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
- <tr class="memitem:a14a76b28f06e167bf66e15b336570cd3 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::nodes_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a14a76b28f06e167bf66e15b336570cd3">node_iterator</a></td></tr>
122
- <tr class="separator:a14a76b28f06e167bf66e15b336570cd3 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
- <tr class="memitem:a78684539084301715a665f0aece23c8e inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::ChildIteratorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a78684539084301715a665f0aece23c8e">child_iterator</a></td></tr>
124
- <tr class="separator:a78684539084301715a665f0aece23c8e inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
125
- <tr class="memitem:ad50e99f38fe6569107d0461d96f735ae inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits&lt; llvm::Inverse&lt; <a class="el" href="classSVF_1_1SrcSnkSolver.html#aad6cad7d89663ac4466f97dac63ee385">GNODE</a> * &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#ad50e99f38fe6569107d0461d96f735ae">InvGTraits</a></td></tr>
126
- <tr class="memdesc:ad50e99f38fe6569107d0461d96f735ae inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define inverse GTraits and note iterator. <a href="classSVF_1_1SrcSnkSolver.html#ad50e99f38fe6569107d0461d96f735ae">More...</a><br /></td></tr>
127
- <tr class="separator:ad50e99f38fe6569107d0461d96f735ae inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
- <tr class="memitem:acb3b73c60427a78ad8dd12d651202d78 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef InvGTraits::ChildIteratorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#acb3b73c60427a78ad8dd12d651202d78">inv_child_iterator</a></td></tr>
129
- <tr class="separator:acb3b73c60427a78ad8dd12d651202d78 inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
- <tr class="memitem:a19861635c58ef6db7347c22daabf80da inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>&lt; DPIm &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da">WorkList</a></td></tr>
131
- <tr class="memdesc:a19861635c58ef6db7347c22daabf80da inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define worklist. <a href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da">More...</a><br /></td></tr>
132
- <tr class="separator:a19861635c58ef6db7347c22daabf80da inherit pub_types_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
+ <tr class="inherit_header pub_types_classSVF_1_1GraphReachSolver"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1GraphReachSolver')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1GraphReachSolver.html">SVF::GraphReachSolver&lt; GraphType, DPIm &gt;</a></td></tr>
114
+ <tr class="memitem:a2ede2e8b4c0f44d7f1d5ab7684915556 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits&lt; GraphType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a2ede2e8b4c0f44d7f1d5ab7684915556">GTraits</a></td></tr>
115
+ <tr class="memdesc:a2ede2e8b4c0f44d7f1d5ab7684915556 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define the GTraits and node iterator. <a href="classSVF_1_1GraphReachSolver.html#a2ede2e8b4c0f44d7f1d5ab7684915556">More...</a><br /></td></tr>
116
+ <tr class="separator:a2ede2e8b4c0f44d7f1d5ab7684915556 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
+ <tr class="memitem:af499845fe35ebe782f660146808506de inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::NodeType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#af499845fe35ebe782f660146808506de">GNODE</a></td></tr>
118
+ <tr class="separator:af499845fe35ebe782f660146808506de inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
+ <tr class="memitem:a8a42bdbb5987d0a340f9935f09e2acd2 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::EdgeType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a8a42bdbb5987d0a340f9935f09e2acd2">GEDGE</a></td></tr>
120
+ <tr class="separator:a8a42bdbb5987d0a340f9935f09e2acd2 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
+ <tr class="memitem:a4e5126b0e97e490ce65804e2017f0084 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::nodes_iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a4e5126b0e97e490ce65804e2017f0084">node_iterator</a></td></tr>
122
+ <tr class="separator:a4e5126b0e97e490ce65804e2017f0084 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
+ <tr class="memitem:ad3fb81ac5017c6c3dc4b2b3b65b3ca04 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef GTraits::ChildIteratorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#ad3fb81ac5017c6c3dc4b2b3b65b3ca04">child_iterator</a></td></tr>
124
+ <tr class="separator:ad3fb81ac5017c6c3dc4b2b3b65b3ca04 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
125
+ <tr class="memitem:aa1542934a87c9edce00355fe2d690b9e inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef llvm::GraphTraits&lt; llvm::Inverse&lt; <a class="el" href="classSVF_1_1GraphReachSolver.html#af499845fe35ebe782f660146808506de">GNODE</a> * &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#aa1542934a87c9edce00355fe2d690b9e">InvGTraits</a></td></tr>
126
+ <tr class="memdesc:aa1542934a87c9edce00355fe2d690b9e inherit pub_types_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define inverse GTraits and note iterator. <a href="classSVF_1_1GraphReachSolver.html#aa1542934a87c9edce00355fe2d690b9e">More...</a><br /></td></tr>
127
+ <tr class="separator:aa1542934a87c9edce00355fe2d690b9e inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
+ <tr class="memitem:a40fe9f5863619ee7c11a630e4fd89a91 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef InvGTraits::ChildIteratorType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a40fe9f5863619ee7c11a630e4fd89a91">inv_child_iterator</a></td></tr>
129
+ <tr class="separator:a40fe9f5863619ee7c11a630e4fd89a91 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
+ <tr class="memitem:a472784c3cb958b4347958f039d2fe054 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>&lt; DPIm &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a472784c3cb958b4347958f039d2fe054">WorkList</a></td></tr>
131
+ <tr class="memdesc:a472784c3cb958b4347958f039d2fe054 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define worklist. <a href="classSVF_1_1GraphReachSolver.html#a472784c3cb958b4347958f039d2fe054">More...</a><br /></td></tr>
132
+ <tr class="separator:a472784c3cb958b4347958f039d2fe054 inherit pub_types_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
133
133
  </table><table class="memberdecls">
134
134
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
135
135
  Public Member Functions</h2></td></tr>
@@ -257,47 +257,47 @@ Protected Member Functions</h2></td></tr>
257
257
  <tr class="separator:a8817604b20724703121e9466e5cdb4cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
258
258
  <tr class="memitem:ae3d665ff1e796348131e797eb0283bfb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkDDA.html#ae3d665ff1e796348131e797eb0283bfb">printBDDStat</a> ()</td></tr>
259
259
  <tr class="separator:ae3d665ff1e796348131e797eb0283bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
260
- <tr class="inherit_header pro_methods_classSVF_1_1SrcSnkSolver"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1SrcSnkSolver')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1SrcSnkSolver.html">SVF::SrcSnkSolver&lt; GraphType, DPIm &gt;</a></td></tr>
261
- <tr class="memitem:a952450652e55f3325f24b8d237d2c37d inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a952450652e55f3325f24b8d237d2c37d">SrcSnkSolver</a> ()</td></tr>
262
- <tr class="memdesc:a952450652e55f3325f24b8d237d2c37d inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1SrcSnkSolver.html#a952450652e55f3325f24b8d237d2c37d">More...</a><br /></td></tr>
263
- <tr class="separator:a952450652e55f3325f24b8d237d2c37d inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
264
- <tr class="memitem:a2e5019545fc7175402eb6bd6d898afa9 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a2e5019545fc7175402eb6bd6d898afa9">~SrcSnkSolver</a> ()</td></tr>
265
- <tr class="memdesc:a2e5019545fc7175402eb6bd6d898afa9 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classSVF_1_1SrcSnkSolver.html#a2e5019545fc7175402eb6bd6d898afa9">More...</a><br /></td></tr>
266
- <tr class="separator:a2e5019545fc7175402eb6bd6d898afa9 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
267
- <tr class="memitem:a18008d5496010aa5f54aade230bd64ff inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SrcSnkSolver.html#aad6cad7d89663ac4466f97dac63ee385">GNODE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">getNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
268
- <tr class="separator:a18008d5496010aa5f54aade230bd64ff inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
269
- <tr class="memitem:ab37d80b1c7a1ebfa0e19c70792c5129e inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#ab37d80b1c7a1ebfa0e19c70792c5129e">getNodeIDFromItem</a> (const DPIm &amp;item) const</td></tr>
270
- <tr class="separator:ab37d80b1c7a1ebfa0e19c70792c5129e inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
271
- <tr class="memitem:ab0a1ee24b5899d54b65f0c7a92b7b52d inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d">forwardTraverse</a> (DPIm &amp;it)</td></tr>
272
- <tr class="memdesc:ab0a1ee24b5899d54b65f0c7a92b7b52d inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">CFL forward traverse solve. <a href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d">More...</a><br /></td></tr>
273
- <tr class="separator:ab0a1ee24b5899d54b65f0c7a92b7b52d inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
274
- <tr class="memitem:a9c2fbfa1a4563ce45726ae79f0f34fcc inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc">backwardTraverse</a> (DPIm &amp;it)</td></tr>
275
- <tr class="memdesc:a9c2fbfa1a4563ce45726ae79f0f34fcc inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">CFL forward traverse solve. <a href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc">More...</a><br /></td></tr>
276
- <tr class="separator:a9c2fbfa1a4563ce45726ae79f0f34fcc inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
277
- <tr class="memitem:ae66ed69eb3412c2eef14ef2f86a34c6c inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">const GraphType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#ae66ed69eb3412c2eef14ef2f86a34c6c">graph</a> () const</td></tr>
278
- <tr class="memdesc:ae66ed69eb3412c2eef14ef2f86a34c6c inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set graph methods. <a href="classSVF_1_1SrcSnkSolver.html#ae66ed69eb3412c2eef14ef2f86a34c6c">More...</a><br /></td></tr>
279
- <tr class="separator:ae66ed69eb3412c2eef14ef2f86a34c6c inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
280
- <tr class="memitem:a49cae8f70144639f529956478a8fca2b inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a49cae8f70144639f529956478a8fca2b">setGraph</a> (GraphType g)</td></tr>
281
- <tr class="separator:a49cae8f70144639f529956478a8fca2b inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
282
- <tr class="memitem:ab35190da65a3157a654a90afc7d793b5 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#ab35190da65a3157a654a90afc7d793b5">FWProcessCurNode</a> (const DPIm &amp;)</td></tr>
283
- <tr class="memdesc:ab35190da65a3157a654a90afc7d793b5 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process the DP item. <a href="classSVF_1_1SrcSnkSolver.html#ab35190da65a3157a654a90afc7d793b5">More...</a><br /></td></tr>
284
- <tr class="separator:ab35190da65a3157a654a90afc7d793b5 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
285
- <tr class="memitem:a447db2796a7024dfa0fbe9ac95c671c0 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a447db2796a7024dfa0fbe9ac95c671c0">BWProcessCurNode</a> (const DPIm &amp;)</td></tr>
286
- <tr class="separator:a447db2796a7024dfa0fbe9ac95c671c0 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
287
- <tr class="memitem:aa43dbc79bfde3199a73ce0257613f484 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#aa43dbc79bfde3199a73ce0257613f484">FWProcessOutgoingEdge</a> (const DPIm &amp;item, <a class="el" href="classSVF_1_1SrcSnkSolver.html#a6007c2d795370bb48ad120af5474a31f">GEDGE</a> *edge)</td></tr>
288
- <tr class="memdesc:aa43dbc79bfde3199a73ce0257613f484 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Propagation for the solving, to be implemented in the child class. <a href="classSVF_1_1SrcSnkSolver.html#aa43dbc79bfde3199a73ce0257613f484">More...</a><br /></td></tr>
289
- <tr class="separator:aa43dbc79bfde3199a73ce0257613f484 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
290
- <tr class="memitem:a9e8b3a956eb5d1ac2aad095eb132c848 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a9e8b3a956eb5d1ac2aad095eb132c848">BWProcessIncomingEdge</a> (const DPIm &amp;item, <a class="el" href="classSVF_1_1SrcSnkSolver.html#a6007c2d795370bb48ad120af5474a31f">GEDGE</a> *edge)</td></tr>
291
- <tr class="separator:a9e8b3a956eb5d1ac2aad095eb132c848 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
292
- <tr class="memitem:aa9e62efa4443fc8a9dfb79d002c5e1ef inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">DPIm&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#aa9e62efa4443fc8a9dfb79d002c5e1ef">popFromWorklist</a> ()</td></tr>
293
- <tr class="memdesc:aa9e62efa4443fc8a9dfb79d002c5e1ef inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worklist operations. <a href="classSVF_1_1SrcSnkSolver.html#aa9e62efa4443fc8a9dfb79d002c5e1ef">More...</a><br /></td></tr>
294
- <tr class="separator:aa9e62efa4443fc8a9dfb79d002c5e1ef inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
295
- <tr class="memitem:a4451d97a06bb74223e2dad0ea04265d7 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a> (DPIm &amp;item)</td></tr>
296
- <tr class="separator:a4451d97a06bb74223e2dad0ea04265d7 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
297
- <tr class="memitem:a8cf98a877e4190f3886b4020006f6383 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a8cf98a877e4190f3886b4020006f6383">isWorklistEmpty</a> ()</td></tr>
298
- <tr class="separator:a8cf98a877e4190f3886b4020006f6383 inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
299
- <tr class="memitem:a1d9e1f15c9670758b9598e848ce5eeed inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html#a1d9e1f15c9670758b9598e848ce5eeed">isInWorklist</a> (DPIm &amp;item)</td></tr>
300
- <tr class="separator:a1d9e1f15c9670758b9598e848ce5eeed inherit pro_methods_classSVF_1_1SrcSnkSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
260
+ <tr class="inherit_header pro_methods_classSVF_1_1GraphReachSolver"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1GraphReachSolver')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1GraphReachSolver.html">SVF::GraphReachSolver&lt; GraphType, DPIm &gt;</a></td></tr>
261
+ <tr class="memitem:a766dc60e7ce7b24b829ba591d069c174 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a766dc60e7ce7b24b829ba591d069c174">GraphReachSolver</a> ()</td></tr>
262
+ <tr class="memdesc:a766dc60e7ce7b24b829ba591d069c174 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1GraphReachSolver.html#a766dc60e7ce7b24b829ba591d069c174">More...</a><br /></td></tr>
263
+ <tr class="separator:a766dc60e7ce7b24b829ba591d069c174 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
264
+ <tr class="memitem:a31e78a14271a152f5b7c0d751a39312a inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a31e78a14271a152f5b7c0d751a39312a">~GraphReachSolver</a> ()</td></tr>
265
+ <tr class="memdesc:a31e78a14271a152f5b7c0d751a39312a inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classSVF_1_1GraphReachSolver.html#a31e78a14271a152f5b7c0d751a39312a">More...</a><br /></td></tr>
266
+ <tr class="separator:a31e78a14271a152f5b7c0d751a39312a inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
267
+ <tr class="memitem:a0b7f0923105dfb198a2a8428d6c1ca98 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1GraphReachSolver.html#af499845fe35ebe782f660146808506de">GNODE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">getNode</a> (<a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> id) const</td></tr>
268
+ <tr class="separator:a0b7f0923105dfb198a2a8428d6c1ca98 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
269
+ <tr class="memitem:a84f39b3234ddf8198c793ff8c5d59cdf inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a84f39b3234ddf8198c793ff8c5d59cdf">getNodeIDFromItem</a> (const DPIm &amp;item) const</td></tr>
270
+ <tr class="separator:a84f39b3234ddf8198c793ff8c5d59cdf inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
271
+ <tr class="memitem:ad1ad147241183e1077a4691ebe7861b5 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">forwardTraverse</a> (DPIm &amp;it)</td></tr>
272
+ <tr class="memdesc:ad1ad147241183e1077a4691ebe7861b5 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">CFL forward traverse solve. <a href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">More...</a><br /></td></tr>
273
+ <tr class="separator:ad1ad147241183e1077a4691ebe7861b5 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
274
+ <tr class="memitem:a8785ea71a1b0da03595fc8f594921819 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">backwardTraverse</a> (DPIm &amp;it)</td></tr>
275
+ <tr class="memdesc:a8785ea71a1b0da03595fc8f594921819 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">CFL forward traverse solve. <a href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">More...</a><br /></td></tr>
276
+ <tr class="separator:a8785ea71a1b0da03595fc8f594921819 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
277
+ <tr class="memitem:a88775eedbbc3039caac1e350b48aa838 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">const GraphType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">graph</a> () const</td></tr>
278
+ <tr class="memdesc:a88775eedbbc3039caac1e350b48aa838 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set graph methods. <a href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">More...</a><br /></td></tr>
279
+ <tr class="separator:a88775eedbbc3039caac1e350b48aa838 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
280
+ <tr class="memitem:a0298a692295a8a4eae32ab151aa6ccc3 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a0298a692295a8a4eae32ab151aa6ccc3">setGraph</a> (GraphType g)</td></tr>
281
+ <tr class="separator:a0298a692295a8a4eae32ab151aa6ccc3 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
282
+ <tr class="memitem:a6ea48755ca28468b426380e838494087 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a6ea48755ca28468b426380e838494087">FWProcessCurNode</a> (const DPIm &amp;)</td></tr>
283
+ <tr class="memdesc:a6ea48755ca28468b426380e838494087 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process the DP item. <a href="classSVF_1_1GraphReachSolver.html#a6ea48755ca28468b426380e838494087">More...</a><br /></td></tr>
284
+ <tr class="separator:a6ea48755ca28468b426380e838494087 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
285
+ <tr class="memitem:a5b2ec04cbee0e457ed9d8a8a4c2e134f inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a5b2ec04cbee0e457ed9d8a8a4c2e134f">BWProcessCurNode</a> (const DPIm &amp;)</td></tr>
286
+ <tr class="separator:a5b2ec04cbee0e457ed9d8a8a4c2e134f inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
287
+ <tr class="memitem:a3f205f7bc0f0ae1a14184bb8cae4bf92 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a3f205f7bc0f0ae1a14184bb8cae4bf92">FWProcessOutgoingEdge</a> (const DPIm &amp;item, <a class="el" href="classSVF_1_1GraphReachSolver.html#a8a42bdbb5987d0a340f9935f09e2acd2">GEDGE</a> *edge)</td></tr>
288
+ <tr class="memdesc:a3f205f7bc0f0ae1a14184bb8cae4bf92 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Propagation for the solving, to be implemented in the child class. <a href="classSVF_1_1GraphReachSolver.html#a3f205f7bc0f0ae1a14184bb8cae4bf92">More...</a><br /></td></tr>
289
+ <tr class="separator:a3f205f7bc0f0ae1a14184bb8cae4bf92 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
290
+ <tr class="memitem:aac7caf50b94caa7bd6960461c0c16014 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#aac7caf50b94caa7bd6960461c0c16014">BWProcessIncomingEdge</a> (const DPIm &amp;item, <a class="el" href="classSVF_1_1GraphReachSolver.html#a8a42bdbb5987d0a340f9935f09e2acd2">GEDGE</a> *edge)</td></tr>
291
+ <tr class="separator:aac7caf50b94caa7bd6960461c0c16014 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
292
+ <tr class="memitem:a1638d1ccdcef472f2c54a2e18fc4130b inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">DPIm&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a1638d1ccdcef472f2c54a2e18fc4130b">popFromWorklist</a> ()</td></tr>
293
+ <tr class="memdesc:a1638d1ccdcef472f2c54a2e18fc4130b inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="mdescLeft">&#160;</td><td class="mdescRight">Worklist operations. <a href="classSVF_1_1GraphReachSolver.html#a1638d1ccdcef472f2c54a2e18fc4130b">More...</a><br /></td></tr>
294
+ <tr class="separator:a1638d1ccdcef472f2c54a2e18fc4130b inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
295
+ <tr class="memitem:a53564d384938c19980cb138f720e34e9 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a53564d384938c19980cb138f720e34e9">pushIntoWorklist</a> (DPIm &amp;item)</td></tr>
296
+ <tr class="separator:a53564d384938c19980cb138f720e34e9 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
297
+ <tr class="memitem:a7bfeccdf602cf901699e806e6c481f26 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a7bfeccdf602cf901699e806e6c481f26">isWorklistEmpty</a> ()</td></tr>
298
+ <tr class="separator:a7bfeccdf602cf901699e806e6c481f26 inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
299
+ <tr class="memitem:a448dd77a75555479e9c8769c0638af2c inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GraphReachSolver.html#a448dd77a75555479e9c8769c0638af2c">isInWorklist</a> (DPIm &amp;item)</td></tr>
300
+ <tr class="separator:a448dd77a75555479e9c8769c0638af2c inherit pro_methods_classSVF_1_1GraphReachSolver"><td class="memSeparator" colspan="2">&#160;</td></tr>
301
301
  </table><table class="memberdecls">
302
302
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
303
303
  Protected Attributes</h2></td></tr>
@@ -331,7 +331,7 @@ Private Attributes</h2></td></tr>
331
331
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
332
332
  <div class="textblock"><p>General source-sink analysis, which serves as a base analysis to be extended for various clients </p>
333
333
 
334
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00046">46</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
334
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00047">47</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
335
335
  </div><h2 class="groupheader">Member Typedef Documentation</h2>
336
336
  <a id="a47a4be28c625bf4d079a04ac24132165"></a>
337
337
  <h2 class="memtitle"><span class="permalink"><a href="#a47a4be28c625bf4d079a04ac24132165">&#9670;&nbsp;</a></span>CallSiteSet</h2>
@@ -345,7 +345,7 @@ Private Attributes</h2></td></tr>
345
345
  </table>
346
346
  </div><div class="memdoc">
347
347
 
348
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00056">56</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
348
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00057">57</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
349
349
 
350
350
  </div>
351
351
  </div>
@@ -361,7 +361,7 @@ Private Attributes</h2></td></tr>
361
361
  </table>
362
362
  </div><div class="memdoc">
363
363
 
364
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00053">53</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
364
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00054">54</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
365
365
 
366
366
  </div>
367
367
  </div>
@@ -379,7 +379,7 @@ Private Attributes</h2></td></tr>
379
379
 
380
380
  <p>dpitem set </p>
381
381
 
382
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00054">54</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
382
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00055">55</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
383
383
 
384
384
  </div>
385
385
  </div>
@@ -395,7 +395,7 @@ Private Attributes</h2></td></tr>
395
395
  </table>
396
396
  </div><div class="memdoc">
397
397
 
398
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00057">57</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
398
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00058">58</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
399
399
 
400
400
  </div>
401
401
  </div>
@@ -411,7 +411,7 @@ Private Attributes</h2></td></tr>
411
411
  </table>
412
412
  </div><div class="memdoc">
413
413
 
414
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00050">50</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
414
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00051">51</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
415
415
 
416
416
  </div>
417
417
  </div>
@@ -427,7 +427,7 @@ Private Attributes</h2></td></tr>
427
427
  </table>
428
428
  </div><div class="memdoc">
429
429
 
430
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00052">52</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
430
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00053">53</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
431
431
 
432
432
  </div>
433
433
  </div>
@@ -445,7 +445,7 @@ Private Attributes</h2></td></tr>
445
445
 
446
446
  <p>map a SVFGNode to its visited dpitems </p>
447
447
 
448
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00055">55</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
448
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00056">56</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
449
449
 
450
450
  </div>
451
451
  </div>
@@ -461,7 +461,7 @@ Private Attributes</h2></td></tr>
461
461
  </table>
462
462
  </div><div class="memdoc">
463
463
 
464
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00051">51</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
464
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00052">52</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
465
465
 
466
466
  </div>
467
467
  </div>
@@ -477,7 +477,7 @@ Private Attributes</h2></td></tr>
477
477
  </table>
478
478
  </div><div class="memdoc">
479
479
 
480
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00058">58</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
480
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00059">59</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
481
481
 
482
482
  </div>
483
483
  </div>
@@ -507,11 +507,11 @@ Private Attributes</h2></td></tr>
507
507
 
508
508
  <p>Constructor. </p>
509
509
 
510
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00076">76</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
511
- <div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; : <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">pathCondAllocator</a> = <span class="keyword">new</span> PathCondAllocator();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
512
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00071">SrcSnkDDA.h:71</a></div></div>
513
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3008dc334d4500516507544a86ec6d9c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">SVF::SrcSnkDDA::pathCondAllocator</a></div><div class="ttdeci">PathCondAllocator * pathCondAllocator</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00064">SrcSnkDDA.h:64</a></div></div>
514
- <div class="ttc" id="classSVF_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#l00070">SrcSnkDDA.h:70</a></div></div>
510
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00077">77</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
511
+ <div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; : <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a>(<span class="keyword">nullptr</span>), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a>(<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">pathCondAllocator</a> = <span class="keyword">new</span> PathCondAllocator();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
512
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00072">SrcSnkDDA.h:72</a></div></div>
513
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3008dc334d4500516507544a86ec6d9c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">SVF::SrcSnkDDA::pathCondAllocator</a></div><div class="ttdeci">PathCondAllocator * pathCondAllocator</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00065">SrcSnkDDA.h:65</a></div></div>
514
+ <div class="ttc" id="classSVF_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#l00071">SrcSnkDDA.h:71</a></div></div>
515
515
  </div><!-- fragment -->
516
516
  </div>
517
517
  </div>
@@ -541,9 +541,9 @@ Private Attributes</h2></td></tr>
541
541
  <p>Destructor. </p>
542
542
  <p>the following shared by multiple checkers, thus can not be released. </p>
543
543
 
544
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00081">81</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
545
- <div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">//if (ptaCallGraph != nullptr)</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// delete ptaCallGraph;</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">//ptaCallGraph = nullptr;</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">//if(pathCondAllocator)</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// delete pathCondAllocator;</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">//pathCondAllocator = nullptr;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
546
- <div class="ttc" id="classSVF_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#l00070">SrcSnkDDA.h:70</a></div></div>
544
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00082">82</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
545
+ <div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ae657ebdeae8a083cfec210859a0023e4">svfg</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">//if (ptaCallGraph != nullptr)</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// delete ptaCallGraph;</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">//ptaCallGraph = nullptr;</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">//if(pathCondAllocator)</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// delete pathCondAllocator;</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">//pathCondAllocator = nullptr;</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
546
+ <div class="ttc" id="classSVF_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#l00071">SrcSnkDDA.h:71</a></div></div>
547
547
  </div><!-- fragment -->
548
548
  </div>
549
549
  </div>
@@ -572,8 +572,8 @@ Private Attributes</h2></td></tr>
572
572
  </table>
573
573
  </div><div class="memdoc">
574
574
 
575
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00280">280</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
576
- <div class="fragment"><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.insert(node);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="ttc" id="classSVF_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#l00066">SrcSnkDDA.h:66</a></div></div>
575
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00281">281</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
576
+ <div class="fragment"><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.insert(node);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="ttc" id="classSVF_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#l00067">SrcSnkDDA.h:67</a></div></div>
577
577
  </div><!-- fragment -->
578
578
  </div>
579
579
  </div>
@@ -611,8 +611,8 @@ Private Attributes</h2></td></tr>
611
611
  </table>
612
612
  </div><div class="memdoc">
613
613
 
614
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00272">272</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
615
- <div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>[node].insert(item);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00065">SrcSnkDDA.h:65</a></div></div>
614
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00273">273</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
615
+ <div class="fragment"><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>[node].insert(item);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00066">SrcSnkDDA.h:66</a></div></div>
616
616
  </div><!-- fragment -->
617
617
  </div>
618
618
  </div>
@@ -640,10 +640,10 @@ Private Attributes</h2></td></tr>
640
640
  </table>
641
641
  </div><div class="memdoc">
642
642
 
643
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00144">144</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
644
- <div class="fragment"><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">addToSinks</a>(node);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">addToCurForwardSlice</a>(node);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
643
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00145">145</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
644
+ <div class="fragment"><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#acee5145fb261280a1f8187184e393aed">addToSinks</a>(node);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">addToCurForwardSlice</a>(node);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
645
645
  <div class="ttc" id="classSVF_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#l00116">ProgSlice.h:116</a></div></div>
646
- <div class="ttc" id="classSVF_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#l00157">SrcSnkDDA.h:157</a></div></div>
646
+ <div class="ttc" id="classSVF_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#l00158">SrcSnkDDA.h:158</a></div></div>
647
647
  </div><!-- fragment -->
648
648
  </div>
649
649
  </div>
@@ -671,8 +671,8 @@ Private Attributes</h2></td></tr>
671
671
  </table>
672
672
  </div><div class="memdoc">
673
673
 
674
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00161">161</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
675
- <div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">addToBackwardSlice</a>(node);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
674
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00162">162</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
675
+ <div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#ac98eccef9fc2521b833a8c14b43e49e1">addToBackwardSlice</a>(node);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
676
676
  <div class="ttc" id="classSVF_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#l00080">ProgSlice.h:80</a></div></div>
677
677
  </div><!-- fragment -->
678
678
  </div>
@@ -701,8 +701,8 @@ Private Attributes</h2></td></tr>
701
701
  </table>
702
702
  </div><div class="memdoc">
703
703
 
704
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00157">157</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
705
- <div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">addToForwardSlice</a>(node);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
704
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00158">158</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
705
+ <div class="fragment"><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a0017e160c2a5412947c170f944e593bd">addToForwardSlice</a>(node);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
706
706
  <div class="ttc" id="classSVF_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#l00076">ProgSlice.h:76</a></div></div>
707
707
  </div><!-- fragment -->
708
708
  </div>
@@ -731,8 +731,8 @@ Private Attributes</h2></td></tr>
731
731
  </table>
732
732
  </div><div class="memdoc">
733
733
 
734
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00224">224</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
735
- <div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.insert(node);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="ttc" id="classSVF_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#l00063">SrcSnkDDA.h:63</a></div></div>
734
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00225">225</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
735
+ <div class="fragment"><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.insert(node);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="ttc" id="classSVF_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#l00064">SrcSnkDDA.h:64</a></div></div>
736
736
  </div><!-- fragment -->
737
737
  </div>
738
738
  </div>
@@ -760,8 +760,8 @@ Private Attributes</h2></td></tr>
760
760
  </table>
761
761
  </div><div class="memdoc">
762
762
 
763
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00208">208</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
764
- <div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.insert(node);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
763
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00209">209</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
764
+ <div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.insert(node);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
765
765
  </div><!-- fragment -->
766
766
  </div>
767
767
  </div>
@@ -793,31 +793,31 @@ Private Attributes</h2></td></tr>
793
793
  <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>
794
794
 
795
795
  <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00062">62</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
796
- <div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">initialize</a>(module);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a21cbaab292e9f5bd39109f774fcc88d4">Options::CxtLimit</a>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</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><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">setCurSlice</a>(*iter);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*iter)-&gt;getId(),cxt);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d">forwardTraverse</a>(item);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;isReachGlobal())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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;<a class="code" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">getForwardSliceSize</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</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_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>(), esit =</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>(); sit != esit; ++sit)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*sit)-&gt;getId(),cxt);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc">backwardTraverse</a>(item);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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;<a class="code" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">getBackwardSliceSize</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">Options::DumpSlice</a>)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</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><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</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><div class="line"><a name="l00103"></a><span class="lineno"> 103</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><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</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><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">finalize</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="classSVF_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>
796
+ <div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a8883b9a42106ed8c55835d2ba9a579cd">initialize</a>(module);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html#a92e89bbae0f31bb9eb971ab3edcc8071">ContextCond::setMaxCxtLen</a>(<a class="code" href="classSVF_1_1Options.html#a21cbaab292e9f5bd39109f774fcc88d4">Options::CxtLimit</a>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</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><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; iter != eiter; ++iter)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab35c0d1f02c83a2c10717905f1abf5cd">setCurSlice</a>(*iter);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*iter)-&gt;getId(),cxt);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#ad1ad147241183e1077a4691ebe7861b5">forwardTraverse</a>(item);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;isReachGlobal())</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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;<a class="code" href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">getForwardSliceSize</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</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_1ProgSlice.html#adf620c97daed49735d21b485c448b4a2">sinksBegin</a>(), esit =</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad50e479db8f0733326974709d6ffe653">getCurSlice</a>()-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a27636f096ec825c4d5cb1dca608afb31">sinksEnd</a>(); sit != esit; ++sit)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a83d5ccf0836f8f751aff078f88328cca">DPIm</a> item((*sit)-&gt;getId(),cxt);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">backwardTraverse</a>(item);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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;<a class="code" href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">getBackwardSliceSize</a>() &lt;&lt; <span class="stringliteral">&quot;)\n&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">Options::DumpSlice</a>)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</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><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</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><div class="line"><a name="l00103"></a><span class="lineno"> 103</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><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</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><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#af6ee1f79b67c736ceeb591d0cdba4b06">finalize</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="ttc" id="classSVF_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>
797
+ <div class="ttc" id="classSVF_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>
797
798
  <div class="ttc" id="classSVF_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>
798
799
  <div class="ttc" id="classSVF_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#l00240">DPItem.h:240</a></div></div>
799
- <div class="ttc" id="classSVF_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#l00053">SrcSnkDDA.h:53</a></div></div>
800
- <div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
801
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a9c2fbfa1a4563ce45726ae79f0f34fcc"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc">SVF::SrcSnkSolver::backwardTraverse</a></div><div class="ttdeci">virtual void backwardTraverse(DPIm &amp;it)</div><div class="ttdoc">CFL forward traverse solve. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00112">SrcSnkSolver.h:112</a></div></div>
800
+ <div class="ttc" id="classSVF_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#l00054">SrcSnkDDA.h:54</a></div></div>
801
+ <div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
802
802
  <div class="ttc" id="classSVF_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#l00128">ProgSlice.h:128</a></div></div>
803
803
  <div class="ttc" id="classSVF_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#l00042">SrcSnkDDA.cpp:42</a></div></div>
804
- <div class="ttc" id="classSVF_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#l00052">SrcSnkDDA.h:52</a></div></div>
804
+ <div class="ttc" id="classSVF_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#l00053">SrcSnkDDA.h:53</a></div></div>
805
805
  <div class="ttc" id="SVFBasicTypes_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00170">SVFBasicTypes.h:170</a></div></div>
806
806
  <div class="ttc" id="classSVF_1_1Options_html_a21cbaab292e9f5bd39109f774fcc88d4"><div class="ttname"><a href="classSVF_1_1Options.html#a21cbaab292e9f5bd39109f774fcc88d4">SVF::Options::CxtLimit</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; CxtLimit</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00199">Options.h:199</a></div></div>
807
807
  <div class="ttc" id="classSVF_1_1Options_html_ace1f2368a0a466f98c9e53def47db3ab"><div class="ttname"><a href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">SVF::Options::DumpSlice</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpSlice</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00198">Options.h:198</a></div></div>
808
- <div class="ttc" id="classSVF_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#l00200">SrcSnkDDA.h:200</a></div></div>
809
- <div class="ttc" id="classSVF_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#l00140">SrcSnkDDA.h:140</a></div></div>
808
+ <div class="ttc" id="classSVF_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#l00201">SrcSnkDDA.h:201</a></div></div>
809
+ <div class="ttc" id="classSVF_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#l00141">SrcSnkDDA.h:141</a></div></div>
810
810
  <div class="ttc" id="namespaceSVF_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#l00049">SVFUtil.h:49</a></div></div>
811
811
  <div class="ttc" id="classSVF_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#l00124">ProgSlice.h:124</a></div></div>
812
812
  <div class="ttc" id="classSVF_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#l00193">DPItem.h:193</a></div></div>
813
813
  <div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00156">SVFBasicTypes.h:156</a></div></div>
814
+ <div class="ttc" id="classSVF_1_1GraphReachSolver_html_a8785ea71a1b0da03595fc8f594921819"><div class="ttname"><a href="classSVF_1_1GraphReachSolver.html#a8785ea71a1b0da03595fc8f594921819">SVF::GraphReachSolver::backwardTraverse</a></div><div class="ttdeci">virtual void backwardTraverse(DPIm &amp;it)</div><div class="ttdoc">CFL forward traverse solve. </div><div class="ttdef"><b>Definition:</b> <a href="GraphReachSolver_8h_source.html#l00112">GraphReachSolver.h:112</a></div></div>
814
815
  <div class="ttc" id="classSVF_1_1ProgSlice_html_aa7979418bed24fcecfc6fa04532cd586"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aa7979418bed24fcecfc6fa04532cd586">SVF::ProgSlice::AllPathReachableSolve</a></div><div class="ttdeci">bool AllPathReachableSolve()</div><div class="ttdoc">Guarded reachability solve. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00044">ProgSlice.cpp:44</a></div></div>
815
- <div class="ttc" id="classSVF_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#l00204">SrcSnkDDA.h:204</a></div></div>
816
+ <div class="ttc" id="classSVF_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#l00205">SrcSnkDDA.h:205</a></div></div>
816
817
  <div class="ttc" id="classSVF_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#l00136">ProgSlice.h:136</a></div></div>
817
- <div class="ttc" id="classSVF_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#l00108">SrcSnkDDA.h:108</a></div></div>
818
+ <div class="ttc" id="classSVF_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#l00109">SrcSnkDDA.h:109</a></div></div>
818
819
  <div class="ttc" id="classSVF_1_1ProgSlice_html_a967fa01a8baae0dd086b5c09ae0faa7b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a967fa01a8baae0dd086b5c09ae0faa7b">SVF::ProgSlice::getBackwardSliceSize</a></div><div class="ttdeci">u32_t getBackwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00070">ProgSlice.h:70</a></div></div>
819
820
  <div class="ttc" id="classSVF_1_1ProgSlice_html_aae54f4e8a827f55abe08762b69d9f84b"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#aae54f4e8a827f55abe08762b69d9f84b">SVF::ProgSlice::getForwardSliceSize</a></div><div class="ttdeci">u32_t getForwardSliceSize() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00066">ProgSlice.h:66</a></div></div>
820
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_ab0a1ee24b5899d54b65f0c7a92b7b52d"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d">SVF::SrcSnkSolver::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="SrcSnkSolver_8h_source.html#l00093">SrcSnkSolver.h:93</a></div></div>
821
821
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
822
822
  <div class="ttc" id="classSVF_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>
823
823
  </div><!-- fragment -->
@@ -854,10 +854,10 @@ Private Attributes</h2></td></tr>
854
854
  <div class="ttc" id="classSVF_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#l00092">ProgSlice.h:92</a></div></div>
855
855
  <div class="ttc" id="classSVF_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#l00128">ProgSlice.h:128</a></div></div>
856
856
  <div class="ttc" id="classSVF_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#l00104">ProgSlice.h:104</a></div></div>
857
- <div class="ttc" id="classSVF_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#l00052">SrcSnkDDA.h:52</a></div></div>
857
+ <div class="ttc" id="classSVF_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#l00053">SrcSnkDDA.h:53</a></div></div>
858
858
  <div class="ttc" id="classSVF_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#l00096">ProgSlice.h:96</a></div></div>
859
859
  <div class="ttc" id="classSVF_1_1SVFGStat_html_a59585ec387e8cc30a85eeec99a97e968"><div class="ttname"><a href="classSVF_1_1SVFGStat.html#a59585ec387e8cc30a85eeec99a97e968">SVF::SVFGStat::addToSources</a></div><div class="ttdeci">void addToSources(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGStat_8h_source.html#l00237">SVFGStat.h:237</a></div></div>
860
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00120">SrcSnkDDA.h:120</a></div></div>
860
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
861
861
  <div class="ttc" id="classSVF_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>
862
862
  <div class="ttc" id="classSVF_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#l00124">ProgSlice.h:124</a></div></div>
863
863
  <div class="ttc" id="classSVF_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>
@@ -889,8 +889,8 @@ Private Attributes</h2></td></tr>
889
889
  </table>
890
890
  </div><div class="memdoc">
891
891
 
892
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00276">276</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
893
- <div class="fragment"><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.end();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="ttc" id="classSVF_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#l00066">SrcSnkDDA.h:66</a></div></div>
892
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00277">277</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
893
+ <div class="fragment"><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.end();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="ttc" id="classSVF_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#l00067">SrcSnkDDA.h:67</a></div></div>
894
894
  </div><!-- fragment -->
895
895
  </div>
896
896
  </div>
@@ -920,11 +920,11 @@ Private Attributes</h2></td></tr>
920
920
 
921
921
  <p>Backward traverse. </p>
922
922
 
923
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00250">250</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
924
- <div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = <a class="code" href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">getNode</a>(item.getCurNodeID());</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4bde70a5d9dbf5a9234a93aaeaaacb94">isInCurForwardSlice</a>(node))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad28ffe435790d36ad872cddc213ea799">addToCurBackwardSlice</a>(node);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="ttc" id="namespaceSVF_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>
925
- <div class="ttc" id="classSVF_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#l00149">SrcSnkDDA.h:149</a></div></div>
926
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a18008d5496010aa5f54aade230bd64ff"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">SVF::SrcSnkSolver::getNode</a></div><div class="ttdeci">GNODE * getNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00084">SrcSnkSolver.h:84</a></div></div>
927
- <div class="ttc" id="classSVF_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#l00161">SrcSnkDDA.h:161</a></div></div>
923
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00251">251</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
924
+ <div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = <a class="code" href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">getNode</a>(item.getCurNodeID());</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4bde70a5d9dbf5a9234a93aaeaaacb94">isInCurForwardSlice</a>(node))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ad28ffe435790d36ad872cddc213ea799">addToCurBackwardSlice</a>(node);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="ttc" id="classSVF_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>
925
+ <div class="ttc" id="namespaceSVF_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>
926
+ <div class="ttc" id="classSVF_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#l00150">SrcSnkDDA.h:150</a></div></div>
927
+ <div class="ttc" id="classSVF_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#l00162">SrcSnkDDA.h:162</a></div></div>
928
928
  </div><!-- fragment -->
929
929
  </div>
930
930
  </div>
@@ -966,18 +966,18 @@ Private Attributes</h2></td></tr>
966
966
  <p>Propagate information backward without matching context, as forward analysis already did it </p>
967
967
 
968
968
  <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>
969
- <div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><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><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><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">else</span></div><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><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><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><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;getId(), cxt);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(newItem);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div><div class="ttc" id="classSVF_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#l00276">SrcSnkDDA.h:276</a></div></div>
969
+ <div class="fragment"><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><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><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><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">else</span></div><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><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><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><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;getId(), cxt);</div><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><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div><div class="ttc" id="classSVF_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#l00277">SrcSnkDDA.h:277</a></div></div>
970
970
  <div class="ttc" id="classSVF_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#l00077">GenericGraph.h:77</a></div></div>
971
971
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
972
- <div class="ttc" id="classSVF_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#l00053">SrcSnkDDA.h:53</a></div></div>
972
+ <div class="ttc" id="classSVF_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#l00054">SrcSnkDDA.h:54</a></div></div>
973
973
  <div class="ttc" id="SVFBasicTypes_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00170">SVFBasicTypes.h:170</a></div></div>
974
+ <div class="ttc" id="classSVF_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>
974
975
  <div class="ttc" id="namespaceSVF_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#l00049">SVFUtil.h:49</a></div></div>
975
976
  <div class="ttc" id="classSVF_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#l00085">GenericGraph.h:85</a></div></div>
976
977
  <div class="ttc" id="classSVF_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#l00193">DPItem.h:193</a></div></div>
977
- <div class="ttc" id="classSVF_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#l00280">SrcSnkDDA.h:280</a></div></div>
978
+ <div class="ttc" id="classSVF_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#l00281">SrcSnkDDA.h:281</a></div></div>
978
979
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
979
980
  <div class="ttc" id="classSVF_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>
980
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a4451d97a06bb74223e2dad0ea04265d7"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">SVF::SrcSnkSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00160">SrcSnkSolver.h:160</a></div></div>
981
981
  </div><!-- fragment -->
982
982
  </div>
983
983
  </div>
@@ -1004,9 +1004,9 @@ Private Attributes</h2></td></tr>
1004
1004
  </table>
1005
1005
  </div><div class="memdoc">
1006
1006
 
1007
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00284">284</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1008
- <div class="fragment"><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.clear();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.clear();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="ttc" id="classSVF_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#l00066">SrcSnkDDA.h:66</a></div></div>
1009
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00065">SrcSnkDDA.h:65</a></div></div>
1007
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00285">285</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1008
+ <div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.clear();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a2349db6c540e418600e2fdbe2e665628">visitedSet</a>.clear();</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="ttc" id="classSVF_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#l00067">SrcSnkDDA.h:67</a></div></div>
1009
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00066">SrcSnkDDA.h:66</a></div></div>
1010
1010
  </div><!-- fragment -->
1011
1011
  </div>
1012
1012
  </div>
@@ -1037,7 +1037,7 @@ Private Attributes</h2></td></tr>
1037
1037
 
1038
1038
  <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>
1039
1039
  <div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><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#ace1f2368a0a466f98c9e53def47db3ab">Options::DumpSlice</a>)</div><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;dump(<span class="stringliteral">&quot;Slice&quot;</span>,<span class="keyword">true</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}</div><div class="ttc" id="classSVF_1_1Options_html_ace1f2368a0a466f98c9e53def47db3ab"><div class="ttname"><a href="classSVF_1_1Options.html#ace1f2368a0a466f98c9e53def47db3ab">SVF::Options::DumpSlice</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpSlice</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00198">Options.h:198</a></div></div>
1040
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00120">SrcSnkDDA.h:120</a></div></div>
1040
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
1041
1041
  <div class="ttc" id="classSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
1042
1042
  </div><!-- fragment -->
1043
1043
  </div>
@@ -1068,8 +1068,8 @@ Private Attributes</h2></td></tr>
1068
1068
 
1069
1069
  <p>Finalize analysis. </p>
1070
1070
 
1071
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00108">108</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1072
- <div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#acae985068ff1c20fb81c4c9ba730aaba">dumpSlices</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="ttc" id="classSVF_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 informaiton. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00295">SrcSnkDDA.cpp:295</a></div></div>
1071
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00109">109</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1072
+ <div class="fragment"><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#acae985068ff1c20fb81c4c9ba730aaba">dumpSlices</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="ttc" id="classSVF_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 informaiton. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8cpp_source.html#l00295">SrcSnkDDA.cpp:295</a></div></div>
1073
1073
  </div><!-- fragment -->
1074
1074
  </div>
1075
1075
  </div>
@@ -1109,8 +1109,8 @@ Private Attributes</h2></td></tr>
1109
1109
 
1110
1110
  <p>Whether has been visited or not, in order to avoid recursion on <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
1111
1111
 
1112
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00264">264</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1113
- <div class="fragment"><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; SVFGNodeToDPItemsMap::const_iterator it = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.find(node);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.end())</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> it-&gt;second.find(item)!=it-&gt;second.end();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00065">SrcSnkDDA.h:65</a></div></div>
1112
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00265">265</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1113
+ <div class="fragment"><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; SVFGNodeToDPItemsMap::const_iterator it = <a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.find(node);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">nodeToDPItemsMap</a>.end())</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> it-&gt;second.find(item)!=it-&gt;second.end();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a5f4f97bc480e899004b0432a78fd94a4"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a5f4f97bc480e899004b0432a78fd94a4">SVF::SrcSnkDDA::nodeToDPItemsMap</a></div><div class="ttdeci">SVFGNodeToDPItemsMap nodeToDPItemsMap</div><div class="ttdoc">record forward visited dpitems </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00066">SrcSnkDDA.h:66</a></div></div>
1114
1114
  </div><!-- fragment -->
1115
1115
  </div>
1116
1116
  </div>
@@ -1140,14 +1140,14 @@ Private Attributes</h2></td></tr>
1140
1140
 
1141
1141
  <p>Forward traverse. </p>
1142
1142
 
1143
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00238">238</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1144
- <div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = <a class="code" href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">getNode</a>(item.getCurNodeID());</div><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#a703bfc5c825d66fdb0d74eb89d181581">isSink</a>(node))</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a6caea43079963b13e9a7a017074bdbb7">addSinkToCurSlice</a>(node);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">setPartialReachable</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">addToCurForwardSlice</a>(node);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6caea43079963b13e9a7a017074bdbb7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6caea43079963b13e9a7a017074bdbb7">SVF::SrcSnkDDA::addSinkToCurSlice</a></div><div class="ttdeci">void addSinkToCurSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00144">SrcSnkDDA.h:144</a></div></div>
1143
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00239">239</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1144
+ <div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5dfa3fa5129bacdc0be0c051ccf386df">SVFGNode</a>* node = <a class="code" href="classSVF_1_1GraphReachSolver.html#a0b7f0923105dfb198a2a8428d6c1ca98">getNode</a>(item.getCurNodeID());</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a703bfc5c825d66fdb0d74eb89d181581">isSink</a>(node))</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a6caea43079963b13e9a7a017074bdbb7">addSinkToCurSlice</a>(node);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#af6f137be08ca0e743424ff07d679777d">setPartialReachable</a>();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a57262e29e81cf71a40d4feb87b92925f">addToCurForwardSlice</a>(node);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a6caea43079963b13e9a7a017074bdbb7"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a6caea43079963b13e9a7a017074bdbb7">SVF::SrcSnkDDA::addSinkToCurSlice</a></div><div class="ttdeci">void addSinkToCurSlice(const SVFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00145">SrcSnkDDA.h:145</a></div></div>
1145
1145
  <div class="ttc" id="classSVF_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#l00132">ProgSlice.h:132</a></div></div>
1146
- <div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
1147
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a703bfc5c825d66fdb0d74eb89d181581"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a703bfc5c825d66fdb0d74eb89d181581">SVF::SrcSnkDDA::isSink</a></div><div class="ttdeci">bool isSink(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00183">SrcSnkDDA.h:183</a></div></div>
1146
+ <div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
1147
+ <div class="ttc" id="classSVF_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>
1148
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a703bfc5c825d66fdb0d74eb89d181581"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a703bfc5c825d66fdb0d74eb89d181581">SVF::SrcSnkDDA::isSink</a></div><div class="ttdeci">bool isSink(const SVFGNode *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00184">SrcSnkDDA.h:184</a></div></div>
1148
1149
  <div class="ttc" id="namespaceSVF_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>
1149
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a18008d5496010aa5f54aade230bd64ff"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">SVF::SrcSnkSolver::getNode</a></div><div class="ttdeci">GNODE * getNode(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00084">SrcSnkSolver.h:84</a></div></div>
1150
- <div class="ttc" id="classSVF_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#l00157">SrcSnkDDA.h:157</a></div></div>
1150
+ <div class="ttc" id="classSVF_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#l00158">SrcSnkDDA.h:158</a></div></div>
1151
1151
  </div><!-- fragment -->
1152
1152
  </div>
1153
1153
  </div>
@@ -1192,18 +1192,19 @@ Private Attributes</h2></td></tr>
1192
1192
  <p>whether this dstNode has been visited or not </p>
1193
1193
 
1194
1194
  <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>
1195
- <div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><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><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><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><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><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;getId(),item.getContexts());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><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;<a class="code" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">isReachGlobal</a>())</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><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><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// push context for calling</span></div><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><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><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><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><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; csId = callEdge-&gt;getCallSiteId();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; csId = SVFUtil::cast&lt;CallIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; newItem.pushContext(csId);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// match context for return</span></div><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><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><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><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><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; csId = callEdge-&gt;getCallSiteId();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; csId = SVFUtil::cast&lt;RetIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><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><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><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><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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;getId() &lt;&lt;<span class="stringliteral">&quot; has been visited\n&quot;</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">else</span></div><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><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(newItem))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div><div class="ttc" id="classSVF_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#l00272">SrcSnkDDA.h:272</a></div></div>
1196
- <div class="ttc" id="classSVF_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#l00132">SrcSnkDDA.h:132</a></div></div>
1195
+ <div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><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><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><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><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><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;getId(),item.getContexts());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><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;<a class="code" href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">isReachGlobal</a>())</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><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><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// push context for calling</span></div><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><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><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><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><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; csId = callEdge-&gt;getCallSiteId();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; csId = SVFUtil::cast&lt;CallIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; newItem.pushContext(csId);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// match context for return</span></div><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><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><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><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><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; csId = callEdge-&gt;getCallSiteId();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; csId = SVFUtil::cast&lt;RetIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><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><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><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><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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;getId() &lt;&lt;<span class="stringliteral">&quot; has been visited\n&quot;</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">else</span></div><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><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><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><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_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><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div><div class="ttc" id="classSVF_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#l00273">SrcSnkDDA.h:273</a></div></div>
1196
+ <div class="ttc" id="classSVF_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#l00133">SrcSnkDDA.h:133</a></div></div>
1197
1197
  <div class="ttc" id="classSVF_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#l00077">GenericGraph.h:77</a></div></div>
1198
1198
  <div class="ttc" id="classSVF_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>
1199
1199
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
1200
- <div class="ttc" id="classSVF_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#l00053">SrcSnkDDA.h:53</a></div></div>
1200
+ <div class="ttc" id="classSVF_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#l00054">SrcSnkDDA.h:54</a></div></div>
1201
1201
  <div class="ttc" id="classSVF_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>
1202
1202
  <div class="ttc" id="SVFBasicTypes_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00170">SVFBasicTypes.h:170</a></div></div>
1203
1203
  <div class="ttc" id="classSVF_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#l00140">ProgSlice.h:140</a></div></div>
1204
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a8c86d30498e86745883fbaea4f530eae"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8c86d30498e86745883fbaea4f530eae">SVF::SrcSnkDDA::forwardVisited</a></div><div class="ttdeci">bool forwardVisited(const SVFGNode *node, const DPIm &amp;item)</div><div class="ttdoc">Whether has been visited or not, in order to avoid recursion on SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00264">SrcSnkDDA.h:264</a></div></div>
1204
+ <div class="ttc" id="classSVF_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>
1205
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a8c86d30498e86745883fbaea4f530eae"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a8c86d30498e86745883fbaea4f530eae">SVF::SrcSnkDDA::forwardVisited</a></div><div class="ttdeci">bool forwardVisited(const SVFGNode *node, const DPIm &amp;item)</div><div class="ttdoc">Whether has been visited or not, in order to avoid recursion on SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00265">SrcSnkDDA.h:265</a></div></div>
1205
1206
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
1206
- <div class="ttc" id="classSVF_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#l00140">SrcSnkDDA.h:140</a></div></div>
1207
+ <div class="ttc" id="classSVF_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#l00141">SrcSnkDDA.h:141</a></div></div>
1207
1208
  <div class="ttc" id="classSVF_1_1ProgSlice_html_a067480a9815fdb728cd259ef9b687e3e"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a067480a9815fdb728cd259ef9b687e3e">SVF::ProgSlice::isReachGlobal</a></div><div class="ttdeci">bool isReachGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00152">ProgSlice.h:152</a></div></div>
1208
1209
  <div class="ttc" id="namespaceSVF_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="SVFBasicTypes_8h_source.html#l00089">SVFBasicTypes.h:89</a></div></div>
1209
1210
  <div class="ttc" id="namespaceSVF_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#l00049">SVFUtil.h:49</a></div></div>
@@ -1211,7 +1212,6 @@ Private Attributes</h2></td></tr>
1211
1212
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
1212
1213
  <div class="ttc" id="classSVF_1_1RetDirSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetDirSVFGEdge.html">SVF::RetDirSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00254">VFGEdge.h:254</a></div></div>
1213
1214
  <div class="ttc" id="classSVF_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>
1214
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a4451d97a06bb74223e2dad0ea04265d7"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">SVF::SrcSnkSolver::pushIntoWorklist</a></div><div class="ttdeci">bool pushIntoWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00160">SrcSnkSolver.h:160</a></div></div>
1215
1215
  </div><!-- fragment -->
1216
1216
  </div>
1217
1217
  </div>
@@ -1240,8 +1240,8 @@ Private Attributes</h2></td></tr>
1240
1240
 
1241
1241
  <p>Get Callgraph. </p>
1242
1242
 
1243
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00126">126</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1244
- <div class="fragment"><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00071">SrcSnkDDA.h:71</a></div></div>
1243
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00127">127</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1244
+ <div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">ptaCallGraph</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00072">SrcSnkDDA.h:72</a></div></div>
1245
1245
  </div><!-- fragment -->
1246
1246
  </div>
1247
1247
  </div>
@@ -1268,8 +1268,8 @@ Private Attributes</h2></td></tr>
1268
1268
  </table>
1269
1269
  </div><div class="memdoc">
1270
1270
 
1271
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00140">140</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1272
- <div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
1271
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00141">141</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1272
+ <div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
1273
1273
  </div><!-- fragment -->
1274
1274
  </div>
1275
1275
  </div>
@@ -1298,8 +1298,8 @@ Private Attributes</h2></td></tr>
1298
1298
 
1299
1299
  <p>Get <a class="el" href="classSVF_1_1SVFIR.html">SVFIR</a>. </p>
1300
1300
 
1301
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00114">114</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1302
- <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
1301
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00115">115</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1302
+ <div class="fragment"><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
1303
1303
  </div><!-- fragment -->
1304
1304
  </div>
1305
1305
  </div>
@@ -1328,8 +1328,8 @@ Private Attributes</h2></td></tr>
1328
1328
 
1329
1329
  <p>Get path condition allocator. </p>
1330
1330
 
1331
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00231">231</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1332
- <div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">pathCondAllocator</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3008dc334d4500516507544a86ec6d9c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">SVF::SrcSnkDDA::pathCondAllocator</a></div><div class="ttdeci">PathCondAllocator * pathCondAllocator</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00064">SrcSnkDDA.h:64</a></div></div>
1331
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00232">232</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1332
+ <div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">pathCondAllocator</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3008dc334d4500516507544a86ec6d9c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3008dc334d4500516507544a86ec6d9c">SVF::SrcSnkDDA::pathCondAllocator</a></div><div class="ttdeci">PathCondAllocator * pathCondAllocator</div><div class="ttdoc">source nodes </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00065">SrcSnkDDA.h:65</a></div></div>
1333
1333
  </div><!-- fragment -->
1334
1334
  </div>
1335
1335
  </div>
@@ -1356,8 +1356,8 @@ Private Attributes</h2></td></tr>
1356
1356
  </table>
1357
1357
  </div><div class="memdoc">
1358
1358
 
1359
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00212">212</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1360
- <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="ttc" id="classSVF_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#l00063">SrcSnkDDA.h:63</a></div></div>
1359
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00213">213</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1360
+ <div class="fragment"><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="ttc" id="classSVF_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#l00064">SrcSnkDDA.h:64</a></div></div>
1361
1361
  </div><!-- fragment -->
1362
1362
  </div>
1363
1363
  </div>
@@ -1386,8 +1386,8 @@ Private Attributes</h2></td></tr>
1386
1386
 
1387
1387
  <p>Get sources/sinks. </p>
1388
1388
 
1389
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00196">196</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1390
- <div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
1389
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00197">197</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1390
+ <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
1391
1391
  </div><!-- fragment -->
1392
1392
  </div>
1393
1393
  </div>
@@ -1416,8 +1416,8 @@ Private Attributes</h2></td></tr>
1416
1416
 
1417
1417
  <p>Get <a class="el" href="classSVF_1_1SVFG.html">SVFG</a>. </p>
1418
1418
 
1419
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00120">120</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1420
- <div class="fragment"><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#ae66ed69eb3412c2eef14ef2f86a34c6c">graph</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkSolver_html_ae66ed69eb3412c2eef14ef2f86a34c6c"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#ae66ed69eb3412c2eef14ef2f86a34c6c">SVF::SrcSnkSolver::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="SrcSnkSolver_8h_source.html#l00074">SrcSnkSolver.h:74</a></div></div>
1419
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00121">121</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1420
+ <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GraphReachSolver.html#a88775eedbbc3039caac1e350b48aa838">graph</a>();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="ttc" id="classSVF_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>
1421
1421
  </div><!-- fragment -->
1422
1422
  </div>
1423
1423
  </div>
@@ -1449,24 +1449,24 @@ Private Attributes</h2></td></tr>
1449
1449
  <p>allocate control-flow graph branch conditions </p>
1450
1450
 
1451
1451
  <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00042">42</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1452
- <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(module);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</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><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a5fb7733fd66ecad30eea8ced3839e590">Options::SABERFULLSVFG</a>)</div><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#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</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><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a49cae8f70144639f529956478a8fca2b">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><div class="line"><a name="l00053"></a><span class="lineno"> 53</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><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"></span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-&gt;<a class="code" href="classSVF_1_1PathCondAllocator.html#a3fce010083b85a4421eed4c17eb54640">allocate</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>()-&gt;getModule());</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">initSrcs</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">initSnks</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00231">SrcSnkDDA.h:231</a></div></div>
1452
+ <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">build</a>(module);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</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><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a5fb7733fd66ecad30eea8ced3839e590">Options::SABERFULLSVFG</a>)</div><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#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</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><div class="line"><a name="l00052"></a><span class="lineno"> 52</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><div class="line"><a name="l00053"></a><span class="lineno"> 53</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><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"></span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-&gt;<a class="code" href="classSVF_1_1PathCondAllocator.html#a3fce010083b85a4421eed4c17eb54640">allocate</a>(<a class="code" href="classSVF_1_1SrcSnkDDA.html#a4f37c66db2588cd691353a9ad1a4d5b1">getPAG</a>()-&gt;getModule());</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1c8f91ffa0b9f01d51c8cd5e14f076d5">initSrcs</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0f6cfa30c346aab1fb03a44e47c32559">initSnks</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00232">SrcSnkDDA.h:232</a></div></div>
1453
1453
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html_aa6d56f9580f76fd09d25ce6cf7541e98"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#aa6d56f9580f76fd09d25ce6cf7541e98">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build(SVFModule *svfModule)</div><div class="ttdoc">Start building SVFIR here. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00048">SVFIRBuilder.cpp:48</a></div></div>
1454
1454
  <div class="ttc" id="classSVF_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>
1455
1455
  <div class="ttc" id="classSVF_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#l00052">SVFGBuilder.cpp:52</a></div></div>
1456
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a49cae8f70144639f529956478a8fca2b"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a49cae8f70144639f529956478a8fca2b">SVF::SrcSnkSolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00078">SrcSnkSolver.h:78</a></div></div>
1457
1456
  <div class="ttc" id="classSVF_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#l00419">Andersen.h:419</a></div></div>
1458
1457
  <div class="ttc" id="classSVF_1_1Options_html_a5fb7733fd66ecad30eea8ced3839e590"><div class="ttname"><a href="classSVF_1_1Options.html#a5fb7733fd66ecad30eea8ced3839e590">SVF::Options::SABERFULLSVFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; SABERFULLSVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00249">Options.h:249</a></div></div>
1459
- <div class="ttc" id="classSVF_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#l00069">SrcSnkDDA.h:69</a></div></div>
1460
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00071">SrcSnkDDA.h:71</a></div></div>
1458
+ <div class="ttc" id="classSVF_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#l00070">SrcSnkDDA.h:70</a></div></div>
1459
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a97be553370acf305f86e903bc3f0bb1a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a97be553370acf305f86e903bc3f0bb1a">SVF::SrcSnkDDA::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00072">SrcSnkDDA.h:72</a></div></div>
1461
1460
  <div class="ttc" id="classSVF_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#l00044">SVFGBuilder.cpp:44</a></div></div>
1462
1461
  <div class="ttc" id="classSVF_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#l00178">PointerAnalysis.h:178</a></div></div>
1463
1462
  <div class="ttc" id="classSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00045">SVFIRBuilder.h:45</a></div></div>
1464
- <div class="ttc" id="classSVF_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#l00070">SrcSnkDDA.h:70</a></div></div>
1463
+ <div class="ttc" id="classSVF_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#l00071">SrcSnkDDA.h:71</a></div></div>
1465
1464
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3fce010083b85a4421eed4c17eb54640"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3fce010083b85a4421eed4c17eb54640">SVF::PathCondAllocator::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="PathCondAllocator_8cpp_source.html#l00054">PathCondAllocator.cpp:54</a></div></div>
1466
1465
  <div class="ttc" id="classSVF_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#l00430">Andersen.h:430</a></div></div>
1467
1466
  <div class="ttc" id="classSVF_1_1SVFGBuilder_html_ad70dc4134a6290223b4168bde146b6d5"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ad70dc4134a6290223b4168bde146b6d5">SVF::SVFGBuilder::getSVFG</a></div><div class="ttdeci">SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG instance. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8h_source.html#l00087">SVFGBuilder.h:87</a></div></div>
1468
- <div class="ttc" id="classSVF_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#l00114">SrcSnkDDA.h:114</a></div></div>
1467
+ <div class="ttc" id="classSVF_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#l00115">SrcSnkDDA.h:115</a></div></div>
1469
1468
  <div class="ttc" id="classSVF_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>
1469
+ <div class="ttc" id="classSVF_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>
1470
1470
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
1471
1471
  </div><!-- fragment -->
1472
1472
  </div>
@@ -1551,8 +1551,8 @@ Private Attributes</h2></td></tr>
1551
1551
 
1552
1552
  <p>Whether it is all path reachable from a source. </p>
1553
1553
 
1554
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00292">292</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1555
- <div class="fragment"><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">isAllReachable</a>();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
1554
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00293">293</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1555
+ <div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a2f96f034b7236791fe1d4d351174722e">isAllReachable</a>();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
1556
1556
  <div class="ttc" id="classSVF_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#l00148">ProgSlice.h:148</a></div></div>
1557
1557
  </div><!-- fragment -->
1558
1558
  </div>
@@ -1583,9 +1583,9 @@ Private Attributes</h2></td></tr>
1583
1583
 
1584
1584
  <p>Whether this svfg node may access global variable. </p>
1585
1585
 
1586
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00132">132</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1587
- <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#afbcd75844af51ff51c09c377f80a49cf">isGlobalSVFGNode</a>(node);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="ttc" id="classSVF_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>
1588
- <div class="ttc" id="classSVF_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#l00069">SrcSnkDDA.h:69</a></div></div>
1586
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00133">133</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1587
+ <div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#ab6803f0a2b3507213ad2979b9b12f700">memSSA</a>.<a class="code" href="classSVF_1_1SaberSVFGBuilder.html#afbcd75844af51ff51c09c377f80a49cf">isGlobalSVFGNode</a>(node);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="ttc" id="classSVF_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>
1588
+ <div class="ttc" id="classSVF_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#l00070">SrcSnkDDA.h:70</a></div></div>
1589
1589
  </div><!-- fragment -->
1590
1590
  </div>
1591
1591
  </div>
@@ -1619,16 +1619,16 @@ Private Attributes</h2></td></tr>
1619
1619
  <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>
1620
1620
 
1621
1621
  <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8cpp_source.html#l00119">119</a> of file <a class="el" href="SrcSnkDDA_8cpp_source.html">SrcSnkDDA.cpp</a>.</p>
1622
- <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">bool</span> reachFunExit = <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">WorkList</a> <a class="code" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">worklist</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(src);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVFGNodeBS</a> visited;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> step = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">while</span> (!worklist.empty())</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = worklist.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(visited.test(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==0)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; visited.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// reaching maximum steps when traversing on SVFG to identify a memory allocation wrapper</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span> (step++ &gt; <a class="code" href="classSVF_1_1Options.html#a0b82f16ee0c7e6566a6ae20662525e84">Options::MaxStepInWrapper</a>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</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><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">//assert(edge-&gt;isDirectVFGEdge() &amp;&amp; &quot;the edge should always be direct VF&quot;);</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// if this is a call edge</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a92e3da59f7f5a693945b9a93f169da04">isCallDirectVFGEdge</a>())</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// if this is a return edge</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</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><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; reachFunExit = <span class="keyword">true</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</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><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// (1) an intra direct edge, we will keep tracking</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</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><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// (3) do not track for all other interprocedural edges.</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</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><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;IntraDirSVFGEdge&gt;(edge)){</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;CopySVFGNode&gt;(succ) || SVFUtil::isa&lt;GepSVFGNode&gt;(succ)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; || SVFUtil::isa&lt;PHISVFGNode&gt;(succ) || SVFUtil::isa&lt;FormalRetSVFGNode&gt;(succ)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; || SVFUtil::isa&lt;ActualRetSVFGNode&gt;(succ) || SVFUtil::isa&lt;StoreSVFGNode&gt;(succ))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; worklist.push(succ);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><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><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(succ))</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; worklist.push(succ);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(reachFunExit)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="ttc" id="classSVF_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#l00202">GenericGraph.h:202</a></div></div>
1622
+ <div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">bool</span> reachFunExit = <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</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><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(src);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVFGNodeBS</a> visited;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> step = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">while</span> (!worklist.empty())</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = worklist.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(visited.test(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())==0)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; visited.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// reaching maximum steps when traversing on SVFG to identify a memory allocation wrapper</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span> (step++ &gt; <a class="code" href="classSVF_1_1Options.html#a0b82f16ee0c7e6566a6ae20662525e84">Options::MaxStepInWrapper</a>)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</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><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge = (*it);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">//assert(edge-&gt;isDirectVFGEdge() &amp;&amp; &quot;the edge should always be direct VF&quot;);</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// if this is a call edge</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a92e3da59f7f5a693945b9a93f169da04">isCallDirectVFGEdge</a>())</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// if this is a return edge</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</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><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; reachFunExit = <span class="keyword">true</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</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><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// (1) an intra direct edge, we will keep tracking</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</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><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// (3) do not track for all other interprocedural edges.</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</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><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;IntraDirSVFGEdge&gt;(edge)){</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;CopySVFGNode&gt;(succ) || SVFUtil::isa&lt;GepSVFGNode&gt;(succ)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; || SVFUtil::isa&lt;PHISVFGNode&gt;(succ) || SVFUtil::isa&lt;FormalRetSVFGNode&gt;(succ)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; || SVFUtil::isa&lt;ActualRetSVFGNode&gt;(succ) || SVFUtil::isa&lt;StoreSVFGNode&gt;(succ))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; worklist.push(succ);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><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><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(SVFUtil::isa&lt;LoadSVFGNode&gt;(succ))</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; worklist.push(succ);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(reachFunExit)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="ttc" id="classSVF_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#l00202">GenericGraph.h:202</a></div></div>
1623
+ <div class="ttc" id="classSVF_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>
1623
1624
  <div class="ttc" id="namespaceSVF_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="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
1624
1625
  <div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
1625
1626
  <div class="ttc" id="classSVF_1_1Options_html_a0b82f16ee0c7e6566a6ae20662525e84"><div class="ttname"><a href="classSVF_1_1Options.html#a0b82f16ee0c7e6566a6ae20662525e84">SVF::Options::MaxStepInWrapper</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxStepInWrapper</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00096">Options.h:96</a></div></div>
1626
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3c0d8850c4dae49a760ce5f80fb8822a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA::WorkList</a></div><div class="ttdeci">ProgSlice::VFWorkList WorkList</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00058">SrcSnkDDA.h:58</a></div></div>
1627
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a3c0d8850c4dae49a760ce5f80fb8822a"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA::WorkList</a></div><div class="ttdeci">ProgSlice::VFWorkList WorkList</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00059">SrcSnkDDA.h:59</a></div></div>
1627
1628
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
1628
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a70cff8ea7c033c01400935c9e446f2c6"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVF::SrcSnkDDA::SVFGNodeBS</a></div><div class="ttdeci">NodeBS SVFGNodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00057">SrcSnkDDA.h:57</a></div></div>
1629
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00120">SrcSnkDDA.h:120</a></div></div>
1629
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a70cff8ea7c033c01400935c9e446f2c6"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a70cff8ea7c033c01400935c9e446f2c6">SVF::SrcSnkDDA::SVFGNodeBS</a></div><div class="ttdeci">NodeBS SVFGNodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00058">SrcSnkDDA.h:58</a></div></div>
1630
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
1630
1631
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
1631
- <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_aeecbd88066567b2f123e84072dd09941"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">SVF::SrcSnkSolver::worklist</a></div><div class="ttdeci">WorkList worklist</div><div class="ttdoc">Worklist for resolution. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00180">SrcSnkSolver.h:180</a></div></div>
1632
1632
  <div class="ttc" id="classSVF_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>
1633
1633
  <div class="ttc" id="classSVF_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#l00165">GenericGraph.h:165</a></div></div>
1634
1634
  <div class="ttc" id="classSVF_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#l00206">GenericGraph.h:206</a></div></div>
@@ -1662,8 +1662,8 @@ Private Attributes</h2></td></tr>
1662
1662
  </table>
1663
1663
  </div><div class="memdoc">
1664
1664
 
1665
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00153">153</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1666
- <div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">inBackwardSlice</a>(node);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
1665
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00154">154</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1666
+ <div class="fragment"><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a066430ffa98a3fa0a5ad48d26e0450f7">inBackwardSlice</a>(node);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
1667
1667
  <div class="ttc" id="classSVF_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#l00088">ProgSlice.h:88</a></div></div>
1668
1668
  </div><!-- fragment -->
1669
1669
  </div>
@@ -1692,8 +1692,8 @@ Private Attributes</h2></td></tr>
1692
1692
  </table>
1693
1693
  </div><div class="memdoc">
1694
1694
 
1695
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00149">149</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1696
- <div class="fragment"><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">inForwardSlice</a>(node);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
1695
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00150">150</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1696
+ <div class="fragment"><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a5a4b7f34001cc90f9b60222caee1bde6">inForwardSlice</a>(node);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
1697
1697
  <div class="ttc" id="classSVF_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#l00084">ProgSlice.h:84</a></div></div>
1698
1698
  </div><!-- fragment -->
1699
1699
  </div>
@@ -1722,8 +1722,8 @@ Private Attributes</h2></td></tr>
1722
1722
  </table>
1723
1723
  </div><div class="memdoc">
1724
1724
 
1725
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00183">183</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1726
- <div class="fragment"><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">getSinks</a>().find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">getSinks</a>().end();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="ttc" id="classSVF_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#l00212">SrcSnkDDA.h:212</a></div></div>
1725
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00184">184</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1726
+ <div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">getSinks</a>().find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a1145c601df2e3dec1e32e43613447b96">getSinks</a>().end();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="ttc" id="classSVF_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#l00213">SrcSnkDDA.h:213</a></div></div>
1727
1727
  </div><!-- fragment -->
1728
1728
  </div>
1729
1729
  </div>
@@ -1753,8 +1753,8 @@ Private Attributes</h2></td></tr>
1753
1753
 
1754
1754
  <p>Reimplemented in <a class="el" href="classSVF_1_1LeakChecker.html#aa45d35a0dc5162e8cef8b27b92ff243d">SVF::LeakChecker</a>, and <a class="el" href="classSVF_1_1FileChecker.html#aac61c4566cd79827879f4862664a432e">SVF::FileChecker</a>.</p>
1755
1755
 
1756
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00175">175</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1757
- <div class="fragment"><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div></div><!-- fragment -->
1756
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00176">176</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1757
+ <div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div></div><!-- fragment -->
1758
1758
  </div>
1759
1759
  </div>
1760
1760
  <a id="a19ab6f6df2a67b294268cfe7f4287fd7"></a>
@@ -1782,8 +1782,8 @@ Private Attributes</h2></td></tr>
1782
1782
 
1783
1783
  <p>Whether it is some path reachable from a source. </p>
1784
1784
 
1785
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00297">297</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1786
- <div class="fragment"><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">isPartialReachable</a>();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
1785
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00298">298</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1786
+ <div class="fragment"><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a60dcf333cb36230d5f3070e8d238ad6d">_curSlice</a>-&gt;<a class="code" href="classSVF_1_1ProgSlice.html#a3822badbbe9ac808296d5248f2dbf8e2">isPartialReachable</a>();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
1787
1787
  <div class="ttc" id="classSVF_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#l00144">ProgSlice.h:144</a></div></div>
1788
1788
  </div><!-- fragment -->
1789
1789
  </div>
@@ -1812,8 +1812,8 @@ Private Attributes</h2></td></tr>
1812
1812
  </table>
1813
1813
  </div><div class="memdoc">
1814
1814
 
1815
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00179">179</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1816
- <div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">getSources</a>().find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">getSources</a>().end();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a0c3d3b5ac74aa933178fa46b949d8bef"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">SVF::SrcSnkDDA::getSources</a></div><div class="ttdeci">const SVFGNodeSet &amp; getSources() const</div><div class="ttdoc">Get sources/sinks. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00196">SrcSnkDDA.h:196</a></div></div>
1815
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00180">180</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1816
+ <div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">getSources</a>().find(node)!=<a class="code" href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">getSources</a>().end();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a0c3d3b5ac74aa933178fa46b949d8bef"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a0c3d3b5ac74aa933178fa46b949d8bef">SVF::SrcSnkDDA::getSources</a></div><div class="ttdeci">const SVFGNodeSet &amp; getSources() const</div><div class="ttdoc">Get sources/sinks. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00197">SrcSnkDDA.h:197</a></div></div>
1817
1817
  </div><!-- fragment -->
1818
1818
  </div>
1819
1819
  </div>
@@ -1843,8 +1843,8 @@ Private Attributes</h2></td></tr>
1843
1843
 
1844
1844
  <p>Reimplemented in <a class="el" href="classSVF_1_1LeakChecker.html#afeee30f5f0c08d9aed59be3064bcc134">SVF::LeakChecker</a>, and <a class="el" href="classSVF_1_1FileChecker.html#ab2ed4c1d3aa00ac663441f32d9f3115f">SVF::FileChecker</a>.</p>
1845
1845
 
1846
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00171">171</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1847
- <div class="fragment"><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div></div><!-- fragment -->
1846
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00172">172</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1847
+ <div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div></div><!-- fragment -->
1848
1848
  </div>
1849
1849
  </div>
1850
1850
  <a id="ae3d665ff1e796348131e797eb0283bfb"></a>
@@ -1871,7 +1871,7 @@ Private Attributes</h2></td></tr>
1871
1871
  </div><div class="memdoc">
1872
1872
 
1873
1873
  <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>
1874
- <div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><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;BDD Mem usage: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-&gt;<a class="code" href="classSVF_1_1PathCondAllocator.html#ad6d58127299d87ae3c231065bb411557">getMemUsage</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><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;BDD Number: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-&gt;<a class="code" href="classSVF_1_1PathCondAllocator.html#ae8f2447d33e2c638c1375f97ff3c3b40">getCondNum</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00231">SrcSnkDDA.h:231</a></div></div>
1874
+ <div class="fragment"><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><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;BDD Mem usage: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-&gt;<a class="code" href="classSVF_1_1PathCondAllocator.html#ad6d58127299d87ae3c231065bb411557">getMemUsage</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><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;BDD Number: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>()-&gt;<a class="code" href="classSVF_1_1PathCondAllocator.html#ae8f2447d33e2c638c1375f97ff3c3b40">getCondNum</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;}</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00232">SrcSnkDDA.h:232</a></div></div>
1875
1875
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ad6d58127299d87ae3c231065bb411557"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ad6d58127299d87ae3c231065bb411557">SVF::PathCondAllocator::getMemUsage</a></div><div class="ttdeci">std::string getMemUsage()</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00071">PathCondAllocator.h:71</a></div></div>
1876
1876
  <div class="ttc" id="namespaceSVF_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#l00049">SVFUtil.h:49</a></div></div>
1877
1877
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ae8f2447d33e2c638c1375f97ff3c3b40"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ae8f2447d33e2c638c1375f97ff3c3b40">SVF::PathCondAllocator::getCondNum</a></div><div class="ttdeci">u32_t getCondNum()</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00075">PathCondAllocator.h:75</a></div></div>
@@ -1936,10 +1936,10 @@ Private Attributes</h2></td></tr>
1936
1936
  <p>Set current slice. </p>
1937
1937
 
1938
1938
  <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>
1939
- <div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div><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><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div><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><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><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><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><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#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>(), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00231">SrcSnkDDA.h:231</a></div></div>
1940
- <div class="ttc" id="classSVF_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#l00061">SrcSnkDDA.h:61</a></div></div>
1941
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_af048c70d7e68da22835570a3381eb14d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">SVF::SrcSnkDDA::clearVisitedMap</a></div><div class="ttdeci">void clearVisitedMap()</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00284">SrcSnkDDA.h:284</a></div></div>
1942
- <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00120">SrcSnkDDA.h:120</a></div></div>
1939
+ <div class="fragment"><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div><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><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div><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><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><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><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><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#a1a6ae6b1f6864057067d0e5533ea801e">getPathAllocator</a>(), <a class="code" href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">getSVFG</a>());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a1a6ae6b1f6864057067d0e5533ea801e"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a1a6ae6b1f6864057067d0e5533ea801e">SVF::SrcSnkDDA::getPathAllocator</a></div><div class="ttdeci">PathCondAllocator * getPathAllocator() const</div><div class="ttdoc">Get path condition allocator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00232">SrcSnkDDA.h:232</a></div></div>
1940
+ <div class="ttc" id="classSVF_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#l00062">SrcSnkDDA.h:62</a></div></div>
1941
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_af048c70d7e68da22835570a3381eb14d"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#af048c70d7e68da22835570a3381eb14d">SVF::SrcSnkDDA::clearVisitedMap</a></div><div class="ttdeci">void clearVisitedMap()</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00285">SrcSnkDDA.h:285</a></div></div>
1942
+ <div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a529b40c870c74309440f025e490bb161"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a529b40c870c74309440f025e490bb161">SVF::SrcSnkDDA::getSVFG</a></div><div class="ttdeci">const SVFG * getSVFG() const</div><div class="ttdoc">Get SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00121">SrcSnkDDA.h:121</a></div></div>
1943
1943
  <div class="ttc" id="classSVF_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#l00041">ProgSlice.h:41</a></div></div>
1944
1944
  </div><!-- fragment -->
1945
1945
  </div>
@@ -1967,8 +1967,8 @@ Private Attributes</h2></td></tr>
1967
1967
  </table>
1968
1968
  </div><div class="memdoc">
1969
1969
 
1970
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00216">216</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1971
- <div class="fragment"><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.begin();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="ttc" id="classSVF_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#l00063">SrcSnkDDA.h:63</a></div></div>
1970
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00217">217</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1971
+ <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.begin();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="ttc" id="classSVF_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#l00064">SrcSnkDDA.h:64</a></div></div>
1972
1972
  </div><!-- fragment -->
1973
1973
  </div>
1974
1974
  </div>
@@ -1995,8 +1995,8 @@ Private Attributes</h2></td></tr>
1995
1995
  </table>
1996
1996
  </div><div class="memdoc">
1997
1997
 
1998
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00220">220</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1999
- <div class="fragment"><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.end();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="ttc" id="classSVF_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#l00063">SrcSnkDDA.h:63</a></div></div>
1998
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00221">221</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
1999
+ <div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#aaffd4b48be1f99e0450b23f20f034b1e">sinks</a>.end();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="ttc" id="classSVF_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#l00064">SrcSnkDDA.h:64</a></div></div>
2000
2000
  </div><!-- fragment -->
2001
2001
  </div>
2002
2002
  </div>
@@ -2023,8 +2023,8 @@ Private Attributes</h2></td></tr>
2023
2023
  </table>
2024
2024
  </div><div class="memdoc">
2025
2025
 
2026
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00200">200</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2027
- <div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.begin();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
2026
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00201">201</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2027
+ <div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.begin();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
2028
2028
  </div><!-- fragment -->
2029
2029
  </div>
2030
2030
  </div>
@@ -2051,8 +2051,8 @@ Private Attributes</h2></td></tr>
2051
2051
  </table>
2052
2052
  </div><div class="memdoc">
2053
2053
 
2054
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00204">204</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2055
- <div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.end();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00062">SrcSnkDDA.h:62</a></div></div>
2054
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00205">205</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2055
+ <div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">sources</a>.end();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="ttc" id="classSVF_1_1SrcSnkDDA_html_a96c41d03d2615f952b58dca327a2866c"><div class="ttname"><a href="classSVF_1_1SrcSnkDDA.html#a96c41d03d2615f952b58dca327a2866c">SVF::SrcSnkDDA::sources</a></div><div class="ttdeci">SVFGNodeSet sources</div><div class="ttdoc">current program slice </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkDDA_8h_source.html#l00063">SrcSnkDDA.h:63</a></div></div>
2056
2056
  </div><!-- fragment -->
2057
2057
  </div>
2058
2058
  </div>
@@ -2077,7 +2077,7 @@ Private Attributes</h2></td></tr>
2077
2077
  </table>
2078
2078
  </div><div class="memdoc">
2079
2079
 
2080
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00061">61</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2080
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00062">62</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2081
2081
 
2082
2082
  </div>
2083
2083
  </div>
@@ -2101,7 +2101,7 @@ Private Attributes</h2></td></tr>
2101
2101
  </table>
2102
2102
  </div><div class="memdoc">
2103
2103
 
2104
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00069">69</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2104
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00070">70</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2105
2105
 
2106
2106
  </div>
2107
2107
  </div>
@@ -2127,7 +2127,7 @@ Private Attributes</h2></td></tr>
2127
2127
 
2128
2128
  <p>record forward visited dpitems </p>
2129
2129
 
2130
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00065">65</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2130
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00066">66</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2131
2131
 
2132
2132
  </div>
2133
2133
  </div>
@@ -2153,7 +2153,7 @@ Private Attributes</h2></td></tr>
2153
2153
 
2154
2154
  <p>source nodes </p>
2155
2155
 
2156
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00064">64</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2156
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00065">65</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2157
2157
 
2158
2158
  </div>
2159
2159
  </div>
@@ -2177,7 +2177,7 @@ Private Attributes</h2></td></tr>
2177
2177
  </table>
2178
2178
  </div><div class="memdoc">
2179
2179
 
2180
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00071">71</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2180
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00072">72</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2181
2181
 
2182
2182
  </div>
2183
2183
  </div>
@@ -2203,7 +2203,7 @@ Private Attributes</h2></td></tr>
2203
2203
 
2204
2204
  <p>source nodes </p>
2205
2205
 
2206
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00063">63</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2206
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00064">64</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2207
2207
 
2208
2208
  </div>
2209
2209
  </div>
@@ -2229,7 +2229,7 @@ Private Attributes</h2></td></tr>
2229
2229
 
2230
2230
  <p>current program slice </p>
2231
2231
 
2232
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00062">62</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2232
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00063">63</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2233
2233
 
2234
2234
  </div>
2235
2235
  </div>
@@ -2253,7 +2253,7 @@ Private Attributes</h2></td></tr>
2253
2253
  </table>
2254
2254
  </div><div class="memdoc">
2255
2255
 
2256
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00070">70</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2256
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00071">71</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2257
2257
 
2258
2258
  </div>
2259
2259
  </div>
@@ -2279,7 +2279,7 @@ Private Attributes</h2></td></tr>
2279
2279
 
2280
2280
  <p>record backward visited nodes </p>
2281
2281
 
2282
- <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00066">66</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2282
+ <p class="definition">Definition at line <a class="el" href="SrcSnkDDA_8h_source.html#l00067">67</a> of file <a class="el" href="SrcSnkDDA_8h_source.html">SrcSnkDDA.h</a>.</p>
2283
2283
 
2284
2284
  </div>
2285
2285
  </div>