svf-tools 1.0.438 → 1.0.441

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 (387) hide show
  1. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +9 -9
  2. package/SVF-doxygen/html/html/BDDExpr_8cpp.html +81 -0
  3. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +122 -0
  4. package/SVF-doxygen/html/html/BDDExpr_8h.html +98 -0
  5. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +131 -0
  6. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  11. package/SVF-doxygen/html/html/DPItem_8h.html +1 -1
  12. package/SVF-doxygen/html/html/DPItem_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/ExeState_8cpp.html +82 -0
  14. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +130 -0
  15. package/SVF-doxygen/html/html/ExeState_8h.html +139 -0
  16. package/SVF-doxygen/html/html/ExeState_8h_source.html +130 -0
  17. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h.html +1 -1
  20. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/FlowSensitive_8cpp.html +1 -1
  22. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +8 -8
  23. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/IRAnnotator_8h.html +2 -2
  25. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  37. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/Options_8cpp_source.html +113 -114
  39. package/SVF-doxygen/html/html/Options_8h.html +0 -1
  40. package/SVF-doxygen/html/html/Options_8h_source.html +115 -117
  41. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +4 -5
  43. package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -1
  44. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -24
  45. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -1
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  47. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
  48. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  50. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
  51. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  52. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  53. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  55. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/SVFUtil_8cpp.html +1 -1
  57. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +3 -3
  58. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  59. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
  60. package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
  61. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +6 -6
  62. package/SVF-doxygen/html/html/SrcSnkSolver_8h.html +96 -0
  63. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +113 -0
  64. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +3 -3
  66. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  67. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp.html +3 -3
  69. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h.html +2 -2
  71. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  72. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  74. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  75. package/SVF-doxygen/html/html/Z3Expr_8h.html +99 -0
  76. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +126 -0
  77. package/SVF-doxygen/html/html/annotated.html +272 -275
  78. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  80. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
  81. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager-members.html +117 -0
  82. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +1318 -0
  83. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
  84. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  88. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +0 -9
  90. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
  94. package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +3 -4
  95. package/SVF-doxygen/html/html/classSVF_1_1DPItem.png +0 -0
  96. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +76 -76
  97. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
  98. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
  99. package/SVF-doxygen/html/html/classSVF_1_1ExeState-members.html +113 -0
  100. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1259 -0
  101. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  102. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +78 -78
  103. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +64 -64
  104. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +9 -9
  107. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -7
  108. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  110. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  114. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +74 -74
  115. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +68 -68
  116. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
  117. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  118. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  122. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  123. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
  124. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  125. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
  129. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +102 -103
  132. package/SVF-doxygen/html/html/classSVF_1_1Options.html +115 -141
  133. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  134. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +3 -3
  135. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +131 -132
  136. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +13 -13
  138. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
  140. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
  142. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +5 -5
  143. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +4 -4
  144. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +5 -5
  145. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +66 -66
  147. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +86 -86
  148. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
  149. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver-members.html +106 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +937 -0
  151. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.png +0 -0
  152. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +2 -3
  153. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.png +0 -0
  154. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  156. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  157. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  166. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +11 -11
  167. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr-members.html +46 -15
  168. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1451 -104
  169. package/SVF-doxygen/html/html/classes.html +96 -96
  170. package/SVF-doxygen/html/html/dir_66541c162fd98954e2c32089ba9a721f.html +2 -0
  171. package/SVF-doxygen/html/html/dir_770a542efe75a1b68c109cb4e4290224.html +2 -0
  172. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +4 -4
  173. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +6 -10
  174. package/SVF-doxygen/html/html/dir_ea25a8a5b2904424d8a51916f8b475b2.html +2 -0
  175. package/SVF-doxygen/html/html/dir_fdb79cd259bf25322a80ea604c9317b5.html +2 -0
  176. package/SVF-doxygen/html/html/files.html +42 -40
  177. package/SVF-doxygen/html/html/functions.html +2 -2
  178. package/SVF-doxygen/html/html/functions_0x7e.html +9 -21
  179. package/SVF-doxygen/html/html/functions_a.html +8 -16
  180. package/SVF-doxygen/html/html/functions_b.html +21 -34
  181. package/SVF-doxygen/html/html/functions_c.html +33 -63
  182. package/SVF-doxygen/html/html/functions_d.html +3 -6
  183. package/SVF-doxygen/html/html/functions_e.html +14 -13
  184. package/SVF-doxygen/html/html/functions_enum.html +0 -6
  185. package/SVF-doxygen/html/html/functions_eval_b.html +0 -6
  186. package/SVF-doxygen/html/html/functions_f.html +9 -9
  187. package/SVF-doxygen/html/html/functions_func.html +8 -19
  188. package/SVF-doxygen/html/html/functions_func_0x7e.html +9 -21
  189. package/SVF-doxygen/html/html/functions_func_b.html +12 -15
  190. package/SVF-doxygen/html/html/functions_func_c.html +23 -38
  191. package/SVF-doxygen/html/html/functions_func_d.html +4 -7
  192. package/SVF-doxygen/html/html/functions_func_e.html +7 -3
  193. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  194. package/SVF-doxygen/html/html/functions_func_g.html +48 -49
  195. package/SVF-doxygen/html/html/functions_func_h.html +2 -7
  196. package/SVF-doxygen/html/html/functions_func_i.html +33 -21
  197. package/SVF-doxygen/html/html/functions_func_l.html +10 -4
  198. package/SVF-doxygen/html/html/functions_func_m.html +0 -1
  199. package/SVF-doxygen/html/html/functions_func_n.html +5 -4
  200. package/SVF-doxygen/html/html/functions_func_o.html +11 -13
  201. package/SVF-doxygen/html/html/functions_func_p.html +7 -17
  202. package/SVF-doxygen/html/html/functions_func_r.html +8 -5
  203. package/SVF-doxygen/html/html/functions_func_s.html +16 -13
  204. package/SVF-doxygen/html/html/functions_func_t.html +3 -1
  205. package/SVF-doxygen/html/html/functions_func_v.html +1 -7
  206. package/SVF-doxygen/html/html/functions_func_z.html +3 -3
  207. package/SVF-doxygen/html/html/functions_g.html +51 -52
  208. package/SVF-doxygen/html/html/functions_h.html +3 -8
  209. package/SVF-doxygen/html/html/functions_i.html +44 -32
  210. package/SVF-doxygen/html/html/functions_l.html +20 -6
  211. package/SVF-doxygen/html/html/functions_m.html +2 -3
  212. package/SVF-doxygen/html/html/functions_n.html +6 -8
  213. package/SVF-doxygen/html/html/functions_o.html +61 -21
  214. package/SVF-doxygen/html/html/functions_p.html +33 -41
  215. package/SVF-doxygen/html/html/functions_r.html +7 -6
  216. package/SVF-doxygen/html/html/functions_rela.html +78 -4
  217. package/SVF-doxygen/html/html/functions_s.html +30 -27
  218. package/SVF-doxygen/html/html/functions_t.html +12 -10
  219. package/SVF-doxygen/html/html/functions_type_b.html +2 -6
  220. package/SVF-doxygen/html/html/functions_type_c.html +4 -4
  221. package/SVF-doxygen/html/html/functions_type_e.html +0 -3
  222. package/SVF-doxygen/html/html/functions_type_g.html +5 -5
  223. package/SVF-doxygen/html/html/functions_type_i.html +4 -7
  224. package/SVF-doxygen/html/html/functions_type_l.html +3 -0
  225. package/SVF-doxygen/html/html/functions_type_n.html +2 -2
  226. package/SVF-doxygen/html/html/functions_type_p.html +0 -4
  227. package/SVF-doxygen/html/html/functions_type_v.html +3 -0
  228. package/SVF-doxygen/html/html/functions_type_w.html +2 -2
  229. package/SVF-doxygen/html/html/functions_v.html +10 -13
  230. package/SVF-doxygen/html/html/functions_vars.html +2 -2
  231. package/SVF-doxygen/html/html/functions_vars_b.html +2 -5
  232. package/SVF-doxygen/html/html/functions_vars_c.html +3 -10
  233. package/SVF-doxygen/html/html/functions_vars_e.html +1 -4
  234. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  235. package/SVF-doxygen/html/html/functions_vars_i.html +1 -4
  236. package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
  237. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  238. package/SVF-doxygen/html/html/functions_vars_n.html +0 -3
  239. package/SVF-doxygen/html/html/functions_vars_p.html +3 -3
  240. package/SVF-doxygen/html/html/functions_vars_s.html +0 -3
  241. package/SVF-doxygen/html/html/functions_vars_t.html +2 -2
  242. package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
  243. package/SVF-doxygen/html/html/functions_vars_w.html +1 -1
  244. package/SVF-doxygen/html/html/functions_w.html +12 -8
  245. package/SVF-doxygen/html/html/functions_z.html +3 -13
  246. package/SVF-doxygen/html/html/globals.html +3 -0
  247. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  248. package/SVF-doxygen/html/html/globals_defs_f.html +3 -0
  249. package/SVF-doxygen/html/html/globals_f.html +5 -2
  250. package/SVF-doxygen/html/html/globals_s.html +6 -6
  251. package/SVF-doxygen/html/html/hierarchy.html +422 -425
  252. package/SVF-doxygen/html/html/menudata.js +4 -4
  253. package/SVF-doxygen/html/html/namespaceSVF.html +10 -57
  254. package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
  255. package/SVF-doxygen/html/html/namespacemembers_type.html +1 -7
  256. package/SVF-doxygen/html/html/namespacemembers_v.html +0 -6
  257. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  258. package/SVF-doxygen/html/html/search/all_1.js +3 -4
  259. package/SVF-doxygen/html/html/search/all_10.js +16 -21
  260. package/SVF-doxygen/html/html/search/all_12.js +4 -3
  261. package/SVF-doxygen/html/html/search/all_13.js +17 -16
  262. package/SVF-doxygen/html/html/search/all_14.js +8 -7
  263. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  264. package/SVF-doxygen/html/html/search/all_16.js +3 -6
  265. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  266. package/SVF-doxygen/html/html/search/all_1a.js +3 -5
  267. package/SVF-doxygen/html/html/search/all_1b.js +4 -8
  268. package/SVF-doxygen/html/html/search/all_2.js +13 -14
  269. package/SVF-doxygen/html/html/search/all_3.js +14 -24
  270. package/SVF-doxygen/html/html/search/all_4.js +3 -3
  271. package/SVF-doxygen/html/html/search/all_5.js +8 -4
  272. package/SVF-doxygen/html/html/search/all_6.js +6 -5
  273. package/SVF-doxygen/html/html/search/all_7.js +28 -25
  274. package/SVF-doxygen/html/html/search/all_8.js +4 -3
  275. package/SVF-doxygen/html/html/search/all_9.js +19 -13
  276. package/SVF-doxygen/html/html/search/all_c.js +5 -2
  277. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  278. package/SVF-doxygen/html/html/search/all_e.js +5 -5
  279. package/SVF-doxygen/html/html/search/all_f.js +24 -15
  280. package/SVF-doxygen/html/html/search/classes_1.js +1 -2
  281. package/SVF-doxygen/html/html/search/classes_12.js +1 -2
  282. package/SVF-doxygen/html/html/search/classes_14.js +1 -2
  283. package/SVF-doxygen/html/html/search/classes_2.js +0 -3
  284. package/SVF-doxygen/html/html/search/classes_4.js +1 -0
  285. package/SVF-doxygen/html/html/search/classes_7.js +3 -1
  286. package/SVF-doxygen/html/html/search/classes_d.js +0 -1
  287. package/SVF-doxygen/html/html/search/classes_f.js +1 -0
  288. package/SVF-doxygen/html/html/search/defines_0.js +1 -0
  289. package/SVF-doxygen/html/html/search/defines_5.js +1 -0
  290. package/SVF-doxygen/html/html/search/enums_1.js +0 -2
  291. package/SVF-doxygen/html/html/search/enumvalues_1.js +0 -2
  292. package/SVF-doxygen/html/html/search/files_1.js +2 -0
  293. package/SVF-doxygen/html/html/search/files_12.html +26 -0
  294. package/SVF-doxygen/html/html/search/files_12.js +4 -0
  295. package/SVF-doxygen/html/html/search/files_2.js +0 -3
  296. package/SVF-doxygen/html/html/search/files_4.js +2 -0
  297. package/SVF-doxygen/html/html/search/files_c.js +0 -1
  298. package/SVF-doxygen/html/html/search/files_d.js +1 -0
  299. package/SVF-doxygen/html/html/search/functions_0.js +1 -4
  300. package/SVF-doxygen/html/html/search/functions_1.js +8 -9
  301. package/SVF-doxygen/html/html/search/functions_10.js +6 -5
  302. package/SVF-doxygen/html/html/search/functions_11.js +2 -1
  303. package/SVF-doxygen/html/html/search/functions_13.js +0 -2
  304. package/SVF-doxygen/html/html/search/functions_15.js +2 -2
  305. package/SVF-doxygen/html/html/search/functions_16.js +4 -8
  306. package/SVF-doxygen/html/html/search/functions_2.js +5 -8
  307. package/SVF-doxygen/html/html/search/functions_3.js +3 -3
  308. package/SVF-doxygen/html/html/search/functions_4.js +3 -1
  309. package/SVF-doxygen/html/html/search/functions_5.js +3 -3
  310. package/SVF-doxygen/html/html/search/functions_6.js +25 -22
  311. package/SVF-doxygen/html/html/search/functions_7.js +2 -3
  312. package/SVF-doxygen/html/html/search/functions_8.js +12 -6
  313. package/SVF-doxygen/html/html/search/functions_a.js +2 -0
  314. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  315. package/SVF-doxygen/html/html/search/functions_c.js +2 -1
  316. package/SVF-doxygen/html/html/search/functions_d.js +7 -7
  317. package/SVF-doxygen/html/html/search/functions_e.js +5 -8
  318. package/SVF-doxygen/html/html/search/functions_f.js +2 -1
  319. package/SVF-doxygen/html/html/search/related_0.js +1 -2
  320. package/SVF-doxygen/html/html/search/related_1.js +1 -2
  321. package/SVF-doxygen/html/html/search/related_2.js +1 -1
  322. package/SVF-doxygen/html/html/search/related_3.js +2 -1
  323. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  324. package/SVF-doxygen/html/html/search/related_5.js +1 -2
  325. package/SVF-doxygen/html/html/search/related_6.js +4 -1
  326. package/SVF-doxygen/html/html/search/related_7.js +2 -4
  327. package/SVF-doxygen/html/html/search/related_8.js +18 -1
  328. package/SVF-doxygen/html/html/search/related_9.js +4 -6
  329. package/SVF-doxygen/html/html/search/related_a.js +1 -2
  330. package/SVF-doxygen/html/html/search/related_b.js +7 -2
  331. package/SVF-doxygen/html/html/search/related_c.html +26 -0
  332. package/SVF-doxygen/html/html/search/related_c.js +5 -0
  333. package/SVF-doxygen/html/html/search/related_d.html +26 -0
  334. package/SVF-doxygen/html/html/search/related_d.js +5 -0
  335. package/SVF-doxygen/html/html/search/searchdata.js +4 -4
  336. package/SVF-doxygen/html/html/search/typedefs_1.js +1 -2
  337. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -2
  338. package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
  339. package/SVF-doxygen/html/html/search/typedefs_2.js +4 -4
  340. package/SVF-doxygen/html/html/search/typedefs_4.js +1 -1
  341. package/SVF-doxygen/html/html/search/typedefs_6.js +3 -3
  342. package/SVF-doxygen/html/html/search/typedefs_8.js +3 -4
  343. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -0
  344. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
  345. package/SVF-doxygen/html/html/search/typedefs_f.js +0 -1
  346. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  347. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  348. package/SVF-doxygen/html/html/search/variables_13.js +0 -1
  349. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  350. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  351. package/SVF-doxygen/html/html/search/variables_16.js +1 -1
  352. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  353. package/SVF-doxygen/html/html/search/variables_2.js +1 -2
  354. package/SVF-doxygen/html/html/search/variables_3.js +4 -6
  355. package/SVF-doxygen/html/html/search/variables_5.js +1 -2
  356. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  357. package/SVF-doxygen/html/html/search/variables_9.js +1 -2
  358. package/SVF-doxygen/html/html/search/variables_c.js +1 -0
  359. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  360. package/SVF-doxygen/html/html/search/variables_e.js +1 -2
  361. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4-members.html +81 -0
  362. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +131 -0
  363. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4-members.html +81 -0
  364. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +131 -0
  365. package/include/SABER/PathCondAllocator.h +4 -4
  366. package/include/SABER/SrcSnkDDA.h +2 -2
  367. package/include/{Util/CFLSolver.h → SABER/SrcSnkSolver.h} +5 -5
  368. package/include/{Util → SVF-FE}/IRAnnotator.h +0 -0
  369. package/include/Util/BDDExpr.h +182 -0
  370. package/include/Util/DPItem.h +1 -1
  371. package/include/Util/ExeState.h +177 -0
  372. package/include/Util/Options.h +0 -3
  373. package/include/Util/Z3Expr.h +235 -0
  374. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  375. package/include/{Util → WPA}/TypeBasedHeapCloning.h +0 -0
  376. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  377. package/lib/SABER/PathCondAllocator.cpp +1 -1
  378. package/lib/Util/BDDExpr.cpp +206 -0
  379. package/lib/Util/ExeState.cpp +236 -0
  380. package/lib/Util/Options.cpp +0 -11
  381. package/lib/Util/SVFUtil.cpp +1 -1
  382. package/lib/WPA/FlowSensitive.cpp +1 -1
  383. package/lib/{Util → WPA}/TypeBasedHeapCloning.cpp +1 -1
  384. package/package.json +1 -1
  385. package/include/Util/Conditions.h +0 -421
  386. package/include/Util/PathDPItem.h +0 -310
  387. package/lib/Util/Conditions.cpp +0 -440
@@ -0,0 +1,96 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+ <meta name="generator" content="Doxygen 1.8.13"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
+ <title>Static Value-Flow Analysis: /home/runner/work/SVF/SVF/include/SABER/SrcSnkSolver.h File Reference</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_fdb79cd259bf25322a80ea604c9317b5.html">SABER</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="summary">
66
+ <a href="#nested-classes">Classes</a> &#124;
67
+ <a href="#namespaces">Namespaces</a> </div>
68
+ <div class="headertitle">
69
+ <div class="title">SrcSnkSolver.h File Reference</div> </div>
70
+ </div><!--header-->
71
+ <div class="contents">
72
+ <div class="textblock"><code>#include &quot;<a class="el" href="WorkList_8h_source.html">Util/WorkList.h</a>&quot;</code><br />
73
+ <code>#include &quot;<a class="el" href="DPItem_8h_source.html">Util/DPItem.h</a>&quot;</code><br />
74
+ </div>
75
+ <p><a href="SrcSnkSolver_8h_source.html">Go to the source code of this file.</a></p>
76
+ <table class="memberdecls">
77
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
78
+ Classes</h2></td></tr>
79
+ <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SrcSnkSolver.html">SVF::SrcSnkSolver&lt; GraphType, DPIm &gt;</a></td></tr>
80
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
81
+ </table><table class="memberdecls">
82
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
83
+ Namespaces</h2></td></tr>
84
+ <tr class="memitem:namespaceSVF"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceSVF.html">SVF</a></td></tr>
85
+ <tr class="memdesc:namespaceSVF"><td class="mdescLeft">&#160;</td><td class="mdescRight">for isBitcode <br /></td></tr>
86
+ <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
87
+ </table>
88
+ </div><!-- contents -->
89
+ <!-- start footer part -->
90
+ <hr class="footer"/><address class="footer"><small>
91
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
92
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
93
+ </a> 1.8.13
94
+ </small></address>
95
+ </body>
96
+ </html>
@@ -0,0 +1,113 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+ <meta name="generator" content="Doxygen 1.8.13"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
+ <title>Static Value-Flow Analysis: /home/runner/work/SVF/SVF/include/SABER/SrcSnkSolver.h Source File</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_fdb79cd259bf25322a80ea604c9317b5.html">SABER</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="headertitle">
66
+ <div class="title">SrcSnkSolver.h</div> </div>
67
+ </div><!--header-->
68
+ <div class="contents">
69
+ <a href="SrcSnkSolver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SrcSnkSolver.h -- CFL reachability solver---------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SrcSnkSolver.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Apr 1, 2014</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef CFLSOLVER_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define CFLSOLVER_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="WorkList_8h.html">Util/WorkList.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="DPItem_8h.html">Util/DPItem.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> * Generic CFL solver for demand-driven analysis based on different graphs (e.g. SVFIR, VFG, ThreadVFG)</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * Extend this class for sophisticated CFL-reachability resolution (e.g. field, flow, path)</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> GraphType, <span class="keyword">class</span> DPIm = DPItem&gt;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1SrcSnkSolver.html">SrcSnkSolver</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</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;<span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a40c3ad6a16099d14654d6f59a1bae238"> 49</a></span>&#160; <span class="keyword">typedef</span> llvm::GraphTraits&lt;GraphType&gt; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a40c3ad6a16099d14654d6f59a1bae238">GTraits</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#aad6cad7d89663ac4466f97dac63ee385"> 50</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::NodeType <a class="code" href="classSVF_1_1SrcSnkSolver.html#aad6cad7d89663ac4466f97dac63ee385">GNODE</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a6007c2d795370bb48ad120af5474a31f"> 51</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::EdgeType <a class="code" href="classSVF_1_1SrcSnkSolver.html#a6007c2d795370bb48ad120af5474a31f">GEDGE</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a14a76b28f06e167bf66e15b336570cd3"> 52</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::nodes_iterator <a class="code" href="classSVF_1_1SrcSnkSolver.html#a14a76b28f06e167bf66e15b336570cd3">node_iterator</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a78684539084301715a665f0aece23c8e"> 53</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::ChildIteratorType <a class="code" href="classSVF_1_1SrcSnkSolver.html#a78684539084301715a665f0aece23c8e">child_iterator</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#ad50e99f38fe6569107d0461d96f735ae"> 56</a></span>&#160; <span class="keyword">typedef</span> llvm::GraphTraits&lt;llvm::Inverse&lt;GNODE *&gt; &gt; <a class="code" href="classSVF_1_1SrcSnkSolver.html#ad50e99f38fe6569107d0461d96f735ae">InvGTraits</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#acb3b73c60427a78ad8dd12d651202d78"> 57</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> InvGTraits::ChildIteratorType <a class="code" href="classSVF_1_1SrcSnkSolver.html#acb3b73c60427a78ad8dd12d651202d78">inv_child_iterator</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da"> 60</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;DPIm&gt;</a> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da">WorkList</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a952450652e55f3325f24b8d237d2c37d"> 65</a></span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a952450652e55f3325f24b8d237d2c37d">SrcSnkSolver</a>(): <a class="code" href="classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09">_graph</a>(nullptr)</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; }</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a2e5019545fc7175402eb6bd6d898afa9"> 69</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a2e5019545fc7175402eb6bd6d898afa9">~SrcSnkSolver</a>()</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</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"><a class="line" href="classSVF_1_1SrcSnkSolver.html#ae66ed69eb3412c2eef14ef2f86a34c6c"> 74</a></span>&#160; <span class="keyword">const</span> <span class="keyword">inline</span> GraphType <a class="code" href="classSVF_1_1SrcSnkSolver.html#ae66ed69eb3412c2eef14ef2f86a34c6c">graph</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09">_graph</a>;</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"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a49cae8f70144639f529956478a8fca2b"> 78</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a49cae8f70144639f529956478a8fca2b">setGraph</a>(GraphType g)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09">_graph</a> = g;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff"> 84</a></span>&#160; <span class="keyword">inline</span> GNODE* <a class="code" href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">getNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09">_graph</a>-&gt;getGNode(<span class="keywordtype">id</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"><a class="line" href="classSVF_1_1SrcSnkSolver.html#ab37d80b1c7a1ebfa0e19c70792c5129e"> 88</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SrcSnkSolver.html#ab37d80b1c7a1ebfa0e19c70792c5129e">getNodeIDFromItem</a>(<span class="keyword">const</span> DPIm&amp; item)<span class="keyword"> const</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> item.getCurNodeID();</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"><a class="line" href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d"> 93</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#ab0a1ee24b5899d54b65f0c7a92b7b52d">forwardTraverse</a>(DPIm&amp; it)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(it);</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="keywordflow">while</span> (!<a class="code" href="classSVF_1_1SrcSnkSolver.html#a8cf98a877e4190f3886b4020006f6383">isWorklistEmpty</a>())</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; DPIm item = <a class="code" href="classSVF_1_1SrcSnkSolver.html#aa9e62efa4443fc8a9dfb79d002c5e1ef">popFromWorklist</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#ab35190da65a3157a654a90afc7d793b5">FWProcessCurNode</a>(item);</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; GNODE* v = <a class="code" href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">getNode</a>(<a class="code" href="classSVF_1_1SrcSnkSolver.html#ab37d80b1c7a1ebfa0e19c70792c5129e">getNodeIDFromItem</a>(item));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; child_iterator EI = GTraits::child_begin(v);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; child_iterator EE = GTraits::child_end(v);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span> (; EI != EE; ++EI)</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; <a class="code" href="classSVF_1_1SrcSnkSolver.html#aa43dbc79bfde3199a73ce0257613f484">FWProcessOutgoingEdge</a>(item,*(EI.getCurrent()) );</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</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="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc"> 112</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a9c2fbfa1a4563ce45726ae79f0f34fcc">backwardTraverse</a>(DPIm&amp; it)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(it);</div><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">while</span> (!<a class="code" href="classSVF_1_1SrcSnkSolver.html#a8cf98a877e4190f3886b4020006f6383">isWorklistEmpty</a>())</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; DPIm item = <a class="code" href="classSVF_1_1SrcSnkSolver.html#aa9e62efa4443fc8a9dfb79d002c5e1ef">popFromWorklist</a>();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a447db2796a7024dfa0fbe9ac95c671c0">BWProcessCurNode</a>(item);</div><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; GNODE* v = <a class="code" href="classSVF_1_1SrcSnkSolver.html#a18008d5496010aa5f54aade230bd64ff">getNode</a>(<a class="code" href="classSVF_1_1SrcSnkSolver.html#ab37d80b1c7a1ebfa0e19c70792c5129e">getNodeIDFromItem</a>(item));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; inv_child_iterator EI = InvGTraits::child_begin(v);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; inv_child_iterator EE = InvGTraits::child_end(v);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">for</span> (; EI != EE; ++EI)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a9e8b3a956eb5d1ac2aad095eb132c848">BWProcessIncomingEdge</a>(item,*(EI.getCurrent()) );</div><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; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</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"><a class="line" href="classSVF_1_1SrcSnkSolver.html#ab35190da65a3157a654a90afc7d793b5"> 132</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#ab35190da65a3157a654a90afc7d793b5">FWProcessCurNode</a>(<span class="keyword">const</span> DPIm&amp;)</div><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; }</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a447db2796a7024dfa0fbe9ac95c671c0"> 135</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a447db2796a7024dfa0fbe9ac95c671c0">BWProcessCurNode</a>(<span class="keyword">const</span> DPIm&amp;)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#aa43dbc79bfde3199a73ce0257613f484"> 141</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#aa43dbc79bfde3199a73ce0257613f484">FWProcessOutgoingEdge</a>(<span class="keyword">const</span> DPIm&amp; item, GEDGE* edge)</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; DPIm newItem(item);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; newItem.setCurNodeID(edge-&gt;getDstID());</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(newItem);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a9e8b3a956eb5d1ac2aad095eb132c848"> 147</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a9e8b3a956eb5d1ac2aad095eb132c848">BWProcessIncomingEdge</a>(<span class="keyword">const</span> DPIm&amp; item, GEDGE* edge)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; DPIm newItem(item);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; newItem.setCurNodeID(edge-&gt;getSrcID());</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(newItem);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#aa9e62efa4443fc8a9dfb79d002c5e1ef"> 156</a></span>&#160; <span class="keyword">inline</span> DPIm <a class="code" href="classSVF_1_1SrcSnkSolver.html#aa9e62efa4443fc8a9dfb79d002c5e1ef">popFromWorklist</a>()</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7"> 160</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a4451d97a06bb74223e2dad0ea04265d7">pushIntoWorklist</a>(DPIm&amp; item)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">push</a>(item);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a8cf98a877e4190f3886b4020006f6383"> 164</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a8cf98a877e4190f3886b4020006f6383">isWorklistEmpty</a>()</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a1d9e1f15c9670758b9598e848ce5eeed"> 168</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#a1d9e1f15c9670758b9598e848ce5eeed">isInWorklist</a>(DPIm&amp; item)</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">return</span> <a class="code" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">worklist</a>.<a class="code" href="classSVF_1_1FIFOWorkList.html#a86f2393b1cce7969d6974b53970ead54">find</a>(item);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</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;<span class="keyword">private</span>:</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09"> 177</a></span>&#160; GraphType <a class="code" href="classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09">_graph</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941"> 180</a></span>&#160; WorkList <a class="code" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">worklist</a>;</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;};</div><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="comment">// End namespace SVF</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CFLSOLVER_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SrcSnkSolver_html_aa9e62efa4443fc8a9dfb79d002c5e1ef"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#aa9e62efa4443fc8a9dfb79d002c5e1ef">SVF::SrcSnkSolver::popFromWorklist</a></div><div class="ttdeci">DPIm popFromWorklist()</div><div class="ttdoc">Worklist operations. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00156">SrcSnkSolver.h:156</a></div></div>
70
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_aa43dbc79bfde3199a73ce0257613f484"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#aa43dbc79bfde3199a73ce0257613f484">SVF::SrcSnkSolver::FWProcessOutgoingEdge</a></div><div class="ttdeci">virtual void FWProcessOutgoingEdge(const DPIm &amp;item, GEDGE *edge)</div><div class="ttdoc">Propagation for the solving, to be implemented in the child class. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00141">SrcSnkSolver.h:141</a></div></div>
71
+ <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>
72
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a447db2796a7024dfa0fbe9ac95c671c0"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a447db2796a7024dfa0fbe9ac95c671c0">SVF::SrcSnkSolver::BWProcessCurNode</a></div><div class="ttdeci">virtual void BWProcessCurNode(const DPIm &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00135">SrcSnkSolver.h:135</a></div></div>
73
+ <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
74
+ <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>
75
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
76
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a2e5019545fc7175402eb6bd6d898afa9"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a2e5019545fc7175402eb6bd6d898afa9">SVF::SrcSnkSolver::~SrcSnkSolver</a></div><div class="ttdeci">virtual ~SrcSnkSolver()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00069">SrcSnkSolver.h:69</a></div></div>
77
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a19861635c58ef6db7347c22daabf80da"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da">SVF::SrcSnkSolver::WorkList</a></div><div class="ttdeci">FIFOWorkList&lt; DPIm &gt; WorkList</div><div class="ttdoc">Define worklist. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00060">SrcSnkSolver.h:60</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_acb3b73c60427a78ad8dd12d651202d78"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#acb3b73c60427a78ad8dd12d651202d78">SVF::SrcSnkSolver::inv_child_iterator</a></div><div class="ttdeci">InvGTraits::ChildIteratorType inv_child_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00057">SrcSnkSolver.h:57</a></div></div>
79
+ <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>
80
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a14a76b28f06e167bf66e15b336570cd3"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a14a76b28f06e167bf66e15b336570cd3">SVF::SrcSnkSolver::node_iterator</a></div><div class="ttdeci">GTraits::nodes_iterator node_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00052">SrcSnkSolver.h:52</a></div></div>
81
+ <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>
82
+ <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>
83
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a952450652e55f3325f24b8d237d2c37d"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a952450652e55f3325f24b8d237d2c37d">SVF::SrcSnkSolver::SrcSnkSolver</a></div><div class="ttdeci">SrcSnkSolver()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00065">SrcSnkSolver.h:65</a></div></div>
84
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_ab37d80b1c7a1ebfa0e19c70792c5129e"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#ab37d80b1c7a1ebfa0e19c70792c5129e">SVF::SrcSnkSolver::getNodeIDFromItem</a></div><div class="ttdeci">virtual NodeID getNodeIDFromItem(const DPIm &amp;item) const</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00088">SrcSnkSolver.h:88</a></div></div>
85
+ <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>
86
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_ab35190da65a3157a654a90afc7d793b5"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#ab35190da65a3157a654a90afc7d793b5">SVF::SrcSnkSolver::FWProcessCurNode</a></div><div class="ttdeci">virtual void FWProcessCurNode(const DPIm &amp;)</div><div class="ttdoc">Process the DP item. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00132">SrcSnkSolver.h:132</a></div></div>
87
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_aad6cad7d89663ac4466f97dac63ee385"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#aad6cad7d89663ac4466f97dac63ee385">SVF::SrcSnkSolver::GNODE</a></div><div class="ttdeci">GTraits::NodeType GNODE</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00050">SrcSnkSolver.h:50</a></div></div>
88
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a86f2393b1cce7969d6974b53970ead54"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a86f2393b1cce7969d6974b53970ead54">SVF::FIFOWorkList::find</a></div><div class="ttdeci">bool find(Data data) const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00151">WorkList.h:151</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a6007c2d795370bb48ad120af5474a31f"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a6007c2d795370bb48ad120af5474a31f">SVF::SrcSnkSolver::GEDGE</a></div><div class="ttdeci">GTraits::EdgeType GEDGE</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00051">SrcSnkSolver.h:51</a></div></div>
90
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList&lt; DPIm &gt;</a></div></div>
91
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a87242199e12fce5c5978ed0a4baa6b09"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a87242199e12fce5c5978ed0a4baa6b09">SVF::SrcSnkSolver::_graph</a></div><div class="ttdeci">GraphType _graph</div><div class="ttdoc">Graph. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00177">SrcSnkSolver.h:177</a></div></div>
92
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a9e8b3a956eb5d1ac2aad095eb132c848"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a9e8b3a956eb5d1ac2aad095eb132c848">SVF::SrcSnkSolver::BWProcessIncomingEdge</a></div><div class="ttdeci">virtual void BWProcessIncomingEdge(const DPIm &amp;item, GEDGE *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00147">SrcSnkSolver.h:147</a></div></div>
93
+ <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a1d9e1f15c9670758b9598e848ce5eeed"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a1d9e1f15c9670758b9598e848ce5eeed">SVF::SrcSnkSolver::isInWorklist</a></div><div class="ttdeci">bool isInWorklist(DPIm &amp;item)</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00168">SrcSnkSolver.h:168</a></div></div>
95
+ <div class="ttc" id="WorkList_8h_html"><div class="ttname"><a href="WorkList_8h.html">WorkList.h</a></div></div>
96
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a40c3ad6a16099d14654d6f59a1bae238"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a40c3ad6a16099d14654d6f59a1bae238">SVF::SrcSnkSolver::GTraits</a></div><div class="ttdeci">llvm::GraphTraits&lt; GraphType &gt; GTraits</div><div class="ttdoc">Define the GTraits and node iterator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00049">SrcSnkSolver.h:49</a></div></div>
97
+ <div class="ttc" id="DPItem_8h_html"><div class="ttname"><a href="DPItem_8h.html">DPItem.h</a></div></div>
98
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a8cf98a877e4190f3886b4020006f6383"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a8cf98a877e4190f3886b4020006f6383">SVF::SrcSnkSolver::isWorklistEmpty</a></div><div class="ttdeci">bool isWorklistEmpty()</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00164">SrcSnkSolver.h:164</a></div></div>
99
+ <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>
100
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html">SVF::SrcSnkSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00044">SrcSnkSolver.h:44</a></div></div>
101
+ <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00174">WorkList.h:174</a></div></div>
102
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_a78684539084301715a665f0aece23c8e"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#a78684539084301715a665f0aece23c8e">SVF::SrcSnkSolver::child_iterator</a></div><div class="ttdeci">GTraits::ChildIteratorType child_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00053">SrcSnkSolver.h:53</a></div></div>
103
+ <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>
104
+ <div class="ttc" id="classSVF_1_1SrcSnkSolver_html_ad50e99f38fe6569107d0461d96f735ae"><div class="ttname"><a href="classSVF_1_1SrcSnkSolver.html#ad50e99f38fe6569107d0461d96f735ae">SVF::SrcSnkSolver::InvGTraits</a></div><div class="ttdeci">llvm::GraphTraits&lt; llvm::Inverse&lt; GNODE * &gt; &gt; InvGTraits</div><div class="ttdoc">Define inverse GTraits and note iterator. </div><div class="ttdef"><b>Definition:</b> <a href="SrcSnkSolver_8h_source.html#l00056">SrcSnkSolver.h:56</a></div></div>
105
+ </div><!-- fragment --></div><!-- contents -->
106
+ <!-- start footer part -->
107
+ <hr class="footer"/><address class="footer"><small>
108
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
109
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
110
+ </a> 1.8.13
111
+ </small></address>
112
+ </body>
113
+ </html>