svf-tools 1.0.438 → 1.0.439

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 +127 -0
  15. package/SVF-doxygen/html/html/ExeState_8h.html +139 -0
  16. package/SVF-doxygen/html/html/ExeState_8h_source.html +128 -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 +111 -0
  100. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1173 -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 +11 -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 +6 -6
  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 +5 -4
  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 +6 -3
  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 +18 -7
  211. package/SVF-doxygen/html/html/functions_m.html +2 -3
  212. package/SVF-doxygen/html/html/functions_n.html +10 -12
  213. package/SVF-doxygen/html/html/functions_o.html +64 -24
  214. package/SVF-doxygen/html/html/functions_p.html +24 -34
  215. package/SVF-doxygen/html/html/functions_r.html +8 -7
  216. package/SVF-doxygen/html/html/functions_rela.html +78 -4
  217. package/SVF-doxygen/html/html/functions_s.html +31 -26
  218. package/SVF-doxygen/html/html/functions_t.html +9 -9
  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 +12 -17
  260. package/SVF-doxygen/html/html/search/all_12.js +3 -2
  261. package/SVF-doxygen/html/html/search/all_13.js +18 -17
  262. package/SVF-doxygen/html/html/search/all_14.js +7 -6
  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 +7 -4
  272. package/SVF-doxygen/html/html/search/all_6.js +5 -4
  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 +18 -12
  276. package/SVF-doxygen/html/html/search/all_c.js +4 -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 +25 -16
  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 +7 -6
  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 +2 -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 +1 -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 +172 -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 +248 -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,128 @@
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/Util/ExeState.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_95e22971b5dbae2382075a3453e365b4.html">Util</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="headertitle">
66
+ <div class="title">ExeState.h</div> </div>
67
+ </div><!--header-->
68
+ <div class="contents">
69
+ <a href="ExeState_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">//===- ExeState.h -- Execution State ----------------------------//</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;<span class="comment">/*</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * ExeState.h</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * Created on: April 29, 2022</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Author: Xiao</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifndef SVF_EXESTATE_H</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define SVF_EXESTATE_H</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Z3Expr_8h.html">Util/Z3Expr.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFVariables_8h.html">MemoryModel/SVFVariables.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a> {</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"><a class="line" href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f"> 36</a></span>&#160;<span class="preprocessor">#define AddressMask 0x7f000000</span></div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="ExeState_8h.html#aec682540f2c8aa9deb79f610e4399411"> 37</a></span>&#160;<span class="preprocessor">#define FlippedAddressMask (AddressMask^0xffffffff)</span></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"><a class="line" href="classSVF_1_1ExeState.html"> 39</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1ExeState.html">ExeState</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f"> 41</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, Z3Expr&gt;</a> <a class="code" href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">VarToValMap</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b"> 42</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, Z3Expr&gt;</a> <a class="code" href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">LocToValMap</a>;</div><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;<span class="keyword">protected</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f"> 45</a></span>&#160; VarToValMap <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da"> 46</a></span>&#160; LocToValMap <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1"> 47</a></span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a83ce58a2551d511448d0224a96ca1bd7"> 50</a></span>&#160; <a class="code" href="classSVF_1_1ExeState.html#a83ce58a2551d511448d0224a96ca1bd7">ExeState</a>() : pathConstraint(<a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>().bool_val(true)) {}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a02e0a7dd5e66255be3838fa10e3e1cab"> 52</a></span>&#160; <a class="code" href="classSVF_1_1ExeState.html#a02e0a7dd5e66255be3838fa10e3e1cab">ExeState</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;_pc, VarToValMap &amp;_varToValMap, LocToValMap &amp;_locToValMap) : varToVal(_varToValMap),</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; locToVal(_locToValMap),</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; pathConstraint(_pc) {}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a62bef487b31f2a4ca27b4e9b183bdef5"> 56</a></span>&#160; <a class="code" href="classSVF_1_1ExeState.html#a62bef487b31f2a4ca27b4e9b183bdef5">ExeState</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs) : varToVal(rhs.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()), locToVal(rhs.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()),</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; pathConstraint(rhs.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ExeState.html#a56dc11162e701d8d48ea354f9d380167">~ExeState</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs) <span class="keyword">const</span>;</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_1ExeState.html#a4ee62e9c0cc0eb34c72effc2c203506a"> 69</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a4ee62e9c0cc0eb34c72effc2c203506a">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs)<span class="keyword"> const </span>{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == rhs);</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;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">ExeState</a> &amp;rhs) <span class="keyword">const</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8"> 76</a></span>&#160; z3::context &amp;<a class="code" href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">getContext</a>() {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Expr.html#a1441f8e559aab4a051fff45a8c0665db">Z3Expr::getContext</a>();</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;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18"> 80</a></span>&#160; <span class="keyword">const</span> VarToValMap &amp;<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">varToVal</a>;</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;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623"> 84</a></span>&#160; <span class="keyword">const</span> LocToValMap &amp;<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">locToVal</a>;</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;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8"> 88</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">pathConstraint</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</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"><a class="line" href="classSVF_1_1ExeState.html#abb73aa9e213818e89e1fb8abdd7a3309"> 92</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#abb73aa9e213818e89e1fb8abdd7a3309">setPathConstraint</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;pc) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; pathConstraint = pc.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</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;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#af539858577135d706304bb0703f1530d"> 96</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#af539858577135d706304bb0703f1530d">operator[]</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">getZ3Expr</a>(varId);</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;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">initValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">getZ3Expr</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">store</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;value);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">load</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;loc);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51"> 116</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51">getVirtualMemAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<span class="keyword"> const </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <a class="code" href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f">AddressMask</a> + idx;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb"> 121</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">isVirtualMemAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> val) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> (val &amp; 0xff000000) == <a class="code" href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f">AddressMask</a>;</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;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91"> 126</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">getInternalID</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx)<span class="keyword"> const </span>{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> (idx &amp; <a class="code" href="ExeState_8h.html#aec682540f2c8aa9deb79f610e4399411">FlippedAddressMask</a>);</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"><a class="line" href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6"> 131</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> <a class="code" href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">z3Expr2NumValue</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;e) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(e.<a class="code" href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">is_numeral</a>() &amp;&amp; <span class="stringliteral">&quot;not numeral?&quot;</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> e.<a class="code" href="classSVF_1_1Z3Expr.html#ad94bbaa31e6df4e8b8238d69b8f4ae06">get_numeral_int64</a>();</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"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">printExprValues</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#ade4fc12b40dd05bf840c313f2b723879"> 140</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ExeState.html#ade4fc12b40dd05bf840c313f2b723879">store</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId, <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;z3Expr) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; locToVal[objId] = z3Expr.<a class="code" href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">simplify</a>();</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;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classSVF_1_1ExeState.html#a8b58d74bd718d66cde9ad7e868d6137a"> 144</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> &amp;<a class="code" href="classSVF_1_1ExeState.html#a8b58d74bd718d66cde9ad7e868d6137a">load</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> locToVal[objId];</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"> 147</span>&#160;};</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;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="keyword">template</span>&lt;&gt;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html"> 151</a></span>&#160;<span class="keyword">struct </span>std::hash&lt;<a class="code" href="namespaceSVF.html">SVF</a>::<a class="code" href="classSVF_1_1ExeState.html#a83ce58a2551d511448d0224a96ca1bd7">ExeState</a>&gt; {</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html#a99f262842505ca11c987d68a790aee10"> 152</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html#a99f262842505ca11c987d68a790aee10">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ExeState.html">SVF::ExeState</a> &amp;exeState)<span class="keyword"> const </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">size_t</span> h = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;SVF::u32_t&gt;</a> hf;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>()) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; h ^= hf(t.first) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; h ^= hf(t.second.id()) + 0x9e3779b9 + (h &lt;&lt; 6) + (h &gt;&gt; 2);</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"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">size_t</span> h2 = exeState.<a class="code" href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">getVarToVal</a>().size() * 2;</div><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; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;t: exeState.<a class="code" href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">getLocToVal</a>()) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; h2 ^= hf(t.first) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; h2 ^= hf(t.second.id()) + 0x9e3779b9 + (h2 &lt;&lt; 6) + (h2 &gt;&gt; 2);</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; <a class="code" href="structSVF_1_1Hash.html">SVF::Hash&lt;std::pair&lt;SVF::u32_t, SVF::u32_t&gt;</a>&gt; pairH;</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; <span class="keywordflow">return</span> pairH(make_pair(pairH(make_pair(h, h2)), exeState.<a class="code" href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">getPathConstraint</a>().<a class="code" href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">id</a>()));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</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="preprocessor">#endif //SVF_EXESTATE_H</span></div><div class="ttc" id="classSVF_1_1ExeState_html_a56dc11162e701d8d48ea354f9d380167"><div class="ttname"><a href="classSVF_1_1ExeState.html#a56dc11162e701d8d48ea354f9d380167">SVF::ExeState::~ExeState</a></div><div class="ttdeci">virtual ~ExeState()=default</div></div>
70
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_ad1802109545427278e3a8bde52e016b0"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad1802109545427278e3a8bde52e016b0">SVF::Z3Expr::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00102">Z3Expr.h:102</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00266">SVFVariables.h:266</a></div></div>
72
+ <div class="ttc" id="classSVF_1_1ExeState_html_a80bd7f3746198459bbcb59274cebc013"><div class="ttname"><a href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">SVF::ExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(const Z3Expr &amp;loc)</div><div class="ttdoc">Load value at location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00221">ExeState.cpp:221</a></div></div>
73
+ <div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap &amp; getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00084">ExeState.h:84</a></div></div>
74
+ <div class="ttc" id="ExeState_8h_html_aec682540f2c8aa9deb79f610e4399411"><div class="ttname"><a href="ExeState_8h.html#aec682540f2c8aa9deb79f610e4399411">FlippedAddressMask</a></div><div class="ttdeci">#define FlippedAddressMask</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00037">ExeState.h:37</a></div></div>
75
+ <div class="ttc" id="classSVF_1_1ExeState_html_af97d422306089e69c2910c6084475c51"><div class="ttname"><a href="classSVF_1_1ExeState.html#af97d422306089e69c2910c6084475c51">SVF::ExeState::getVirtualMemAddress</a></div><div class="ttdeci">u32_t getVirtualMemAddress(u32_t idx) const</div><div class="ttdoc">The physical address starts with 0x7f...... + idx. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00116">ExeState.h:116</a></div></div>
76
+ <div class="ttc" id="ExeState_8h_html_a9c5bf91d8f58ded0fd8f57c04f26b56f"><div class="ttname"><a href="ExeState_8h.html#a9c5bf91d8f58ded0fd8f57c04f26b56f">AddressMask</a></div><div class="ttdeci">#define AddressMask</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00036">ExeState.h:36</a></div></div>
77
+ <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1ExeState_html_abb73aa9e213818e89e1fb8abdd7a3309"><div class="ttname"><a href="classSVF_1_1ExeState.html#abb73aa9e213818e89e1fb8abdd7a3309">SVF::ExeState::setPathConstraint</a></div><div class="ttdeci">void setPathConstraint(const Z3Expr &amp;pc)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00092">ExeState.h:92</a></div></div>
79
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a1441f8e559aab4a051fff45a8c0665db"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a1441f8e559aab4a051fff45a8c0665db">SVF::Z3Expr::getContext</a></div><div class="ttdeci">static z3::context &amp; getContext()</div><div class="ttdoc">Get z3 context, singleton design here to make sure we only have one context. </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00075">Z3Expr.h:75</a></div></div>
80
+ <div class="ttc" id="classSVF_1_1ExeState_html_a7a9c5c2275246a43414503f6822073b1"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7a9c5c2275246a43414503f6822073b1">SVF::ExeState::pathConstraint</a></div><div class="ttdeci">Z3Expr pathConstraint</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00047">ExeState.h:47</a></div></div>
81
+ <div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00056">SVFBasicTypes.h:56</a></div></div>
82
+ <div class="ttc" id="classSVF_1_1ExeState_html_a10a12722f1974d466ef07a35d9dff108"><div class="ttname"><a href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">SVF::ExeState::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00179">ExeState.cpp:179</a></div></div>
83
+ <div class="ttc" id="classSVF_1_1ExeState_html_ac7a74f57945b7f076a5cfe9435fd34e8"><div class="ttname"><a href="classSVF_1_1ExeState.html#ac7a74f57945b7f076a5cfe9435fd34e8">SVF::ExeState::getContext</a></div><div class="ttdeci">z3::context &amp; getContext()</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00076">ExeState.h:76</a></div></div>
84
+ <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00082">SVFBasicTypes.h:82</a></div></div>
85
+ <div class="ttc" id="classSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00037">Z3Expr.h:37</a></div></div>
86
+ <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00314">SVFVariables.h:314</a></div></div>
87
+ <div class="ttc" id="classSVF_1_1ExeState_html_afc4aad166cd39a6cfbd8e9b897104f3f"><div class="ttname"><a href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">SVF::ExeState::VarToValMap</a></div><div class="ttdeci">Map&lt; u32_t, Z3Expr &gt; VarToValMap</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00041">ExeState.h:41</a></div></div>
88
+ <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00106">SVFBasicTypes.h:106</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1ExeState_html_a08db85e0e599d17b54743feb03a7717a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a08db85e0e599d17b54743feb03a7717a">SVF::ExeState::store</a></div><div class="ttdeci">void store(const Z3Expr &amp;loc, const Z3Expr &amp;value)</div><div class="ttdoc">Store value to location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00209">ExeState.cpp:209</a></div></div>
90
+ <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>
91
+ <div class="ttc" id="classSVF_1_1ExeState_html_a32a5c65de2656ecfd2e33100a44dc02f"><div class="ttname"><a href="classSVF_1_1ExeState.html#a32a5c65de2656ecfd2e33100a44dc02f">SVF::ExeState::varToVal</a></div><div class="ttdeci">VarToValMap varToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00045">ExeState.h:45</a></div></div>
92
+ <div class="ttc" id="classSVF_1_1ExeState_html"><div class="ttname"><a href="classSVF_1_1ExeState.html">SVF::ExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00039">ExeState.h:39</a></div></div>
93
+ <div class="ttc" id="SVFVariables_8h_html"><div class="ttname"><a href="SVFVariables_8h.html">SVFVariables.h</a></div></div>
94
+ <div class="ttc" id="classSVF_1_1ExeState_html_ade4fc12b40dd05bf840c313f2b723879"><div class="ttname"><a href="classSVF_1_1ExeState.html#ade4fc12b40dd05bf840c313f2b723879">SVF::ExeState::store</a></div><div class="ttdeci">void store(u32_t objId, const Z3Expr &amp;z3Expr)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00140">ExeState.h:140</a></div></div>
95
+ <div class="ttc" id="classSVF_1_1ExeState_html_a00bd54e2dc70a8547581008e27790eb8"><div class="ttname"><a href="classSVF_1_1ExeState.html#a00bd54e2dc70a8547581008e27790eb8">SVF::ExeState::getPathConstraint</a></div><div class="ttdeci">const Z3Expr &amp; getPathConstraint() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00088">ExeState.h:88</a></div></div>
96
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00110">Z3Expr.h:110</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1ExeState_html_aa1e28e7a815e03c0c9a6f94d289f371b"><div class="ttname"><a href="classSVF_1_1ExeState.html#aa1e28e7a815e03c0c9a6f94d289f371b">SVF::ExeState::LocToValMap</a></div><div class="ttdeci">Map&lt; u32_t, Z3Expr &gt; LocToValMap</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00042">ExeState.h:42</a></div></div>
98
+ <div class="ttc" id="classSVF_1_1ExeState_html_aee8eece3daa2b7cbebb8dcde761931c2"><div class="ttname"><a href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">SVF::ExeState::printExprValues</a></div><div class="ttdeci">void printExprValues()</div><div class="ttdoc">Print values of all expressions. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00233">ExeState.cpp:233</a></div></div>
99
+ <div class="ttc" id="structstd_1_1hash_3_01SVF_1_1ExeState_01_4_html_a99f262842505ca11c987d68a790aee10"><div class="ttname"><a href="structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html#a99f262842505ca11c987d68a790aee10">std::hash&lt; SVF::ExeState &gt;::operator()</a></div><div class="ttdeci">size_t operator()(const SVF::ExeState &amp;exeState) const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00152">ExeState.h:152</a></div></div>
100
+ <div class="ttc" id="classSVF_1_1ExeState_html_a4ee62e9c0cc0eb34c72effc2c203506a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee62e9c0cc0eb34c72effc2c203506a">SVF::ExeState::operator!=</a></div><div class="ttdeci">bool operator!=(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator!=. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00069">ExeState.h:69</a></div></div>
101
+ <div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00080">ExeState.h:80</a></div></div>
102
+ <div class="ttc" id="Z3Expr_8h_html"><div class="ttname"><a href="Z3Expr_8h.html">Z3Expr.h</a></div></div>
103
+ <div class="ttc" id="classSVF_1_1ExeState_html_af539858577135d706304bb0703f1530d"><div class="ttname"><a href="classSVF_1_1ExeState.html#af539858577135d706304bb0703f1530d">SVF::ExeState::operator[]</a></div><div class="ttdeci">Z3Expr &amp; operator[](u32_t varId)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00096">ExeState.h:96</a></div></div>
104
+ <div class="ttc" id="classSVF_1_1ExeState_html_a8b58d74bd718d66cde9ad7e868d6137a"><div class="ttname"><a href="classSVF_1_1ExeState.html#a8b58d74bd718d66cde9ad7e868d6137a">SVF::ExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(u32_t objId)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00144">ExeState.h:144</a></div></div>
105
+ <div class="ttc" id="classSVF_1_1ExeState_html_ab52debe3aae77d1efd5de4d220dbed2f"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab52debe3aae77d1efd5de4d220dbed2f">SVF::ExeState::getZ3Expr</a></div><div class="ttdeci">Z3Expr &amp; getZ3Expr(u32_t varId)</div><div class="ttdoc">Return Z3 expression based on SVFVar ID. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00116">ExeState.cpp:116</a></div></div>
106
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_ad94bbaa31e6df4e8b8238d69b8f4ae06"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#ad94bbaa31e6df4e8b8238d69b8f4ae06">SVF::Z3Expr::get_numeral_int64</a></div><div class="ttdeci">int64_t get_numeral_int64() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00114">Z3Expr.h:114</a></div></div>
107
+ <div class="ttc" id="classSVF_1_1ExeState_html_a0e4c8a41aa861ff2862d8b620c902f21"><div class="ttname"><a href="classSVF_1_1ExeState.html#a0e4c8a41aa861ff2862d8b620c902f21">SVF::ExeState::operator==</a></div><div class="ttdeci">bool operator==(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00149">ExeState.cpp:149</a></div></div>
108
+ <div class="ttc" id="classSVF_1_1ExeState_html_af4018e9053baa373b590230bc53b7ccb"><div class="ttname"><a href="classSVF_1_1ExeState.html#af4018e9053baa373b590230bc53b7ccb">SVF::ExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, Z3Expr &amp;e)</div><div class="ttdoc">Init Z3Expr for ObjVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00070">ExeState.cpp:70</a></div></div>
109
+ <div class="ttc" id="classSVF_1_1ExeState_html_ab931a1b6a85d3db047bc50741a22c8a6"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab931a1b6a85d3db047bc50741a22c8a6">SVF::ExeState::z3Expr2NumValue</a></div><div class="ttdeci">s32_t z3Expr2NumValue(const Z3Expr &amp;e)</div><div class="ttdoc">Return int value from an expression if it is a numeral, otherwise return an approximate value...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00131">ExeState.h:131</a></div></div>
110
+ <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>
111
+ <div class="ttc" id="classSVF_1_1ExeState_html_a55464ae666ae16656ad8903894ec14da"><div class="ttname"><a href="classSVF_1_1ExeState.html#a55464ae666ae16656ad8903894ec14da">SVF::ExeState::locToVal</a></div><div class="ttdeci">LocToValMap locToVal</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00046">ExeState.h:46</a></div></div>
112
+ <div class="ttc" id="classSVF_1_1ExeState_html_a2d5f2c2de23c919a47432501c3ad8adb"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2d5f2c2de23c919a47432501c3ad8adb">SVF::ExeState::isVirtualMemAddress</a></div><div class="ttdeci">bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00121">ExeState.h:121</a></div></div>
113
+ <div class="ttc" id="classSVF_1_1ExeState_html_a0c6a0cd40fc94cc2c3829d6ae0a21270"><div class="ttname"><a href="classSVF_1_1ExeState.html#a0c6a0cd40fc94cc2c3829d6ae0a21270">SVF::ExeState::operator=</a></div><div class="ttdeci">ExeState &amp; operator=(const ExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00135">ExeState.cpp:135</a></div></div>
114
+ <div class="ttc" id="classSVF_1_1ExeState_html_a62bef487b31f2a4ca27b4e9b183bdef5"><div class="ttname"><a href="classSVF_1_1ExeState.html#a62bef487b31f2a4ca27b4e9b183bdef5">SVF::ExeState::ExeState</a></div><div class="ttdeci">ExeState(const ExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00056">ExeState.h:56</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1ExeState_html_a02e0a7dd5e66255be3838fa10e3e1cab"><div class="ttname"><a href="classSVF_1_1ExeState.html#a02e0a7dd5e66255be3838fa10e3e1cab">SVF::ExeState::ExeState</a></div><div class="ttdeci">ExeState(const Z3Expr &amp;_pc, VarToValMap &amp;_varToValMap, LocToValMap &amp;_locToValMap)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00052">ExeState.h:52</a></div></div>
116
+ <div class="ttc" id="classSVF_1_1ExeState_html_a2535d6ef4a91b2bd2366b6a89265ab91"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2535d6ef4a91b2bd2366b6a89265ab91">SVF::ExeState::getInternalID</a></div><div class="ttdeci">u32_t getInternalID(u32_t idx) const</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx. ...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00126">ExeState.h:126</a></div></div>
117
+ <div class="ttc" id="classSVF_1_1ExeState_html_a7b3013578baac3ce73bc544569c3dbbf"><div class="ttname"><a href="classSVF_1_1ExeState.html#a7b3013578baac3ce73bc544569c3dbbf">SVF::ExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, Z3Expr &amp;e)</div><div class="ttdoc">Init Z3Expr for ValVar. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00042">ExeState.cpp:42</a></div></div>
118
+ <div class="ttc" id="classSVF_1_1ExeState_html_a83ce58a2551d511448d0224a96ca1bd7"><div class="ttname"><a href="classSVF_1_1ExeState.html#a83ce58a2551d511448d0224a96ca1bd7">SVF::ExeState::ExeState</a></div><div class="ttdeci">ExeState()</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00050">ExeState.h:50</a></div></div>
119
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_acdb4fbb53f19bac033e79cfe96ce82ca"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#acdb4fbb53f19bac033e79cfe96ce82ca">SVF::Z3Expr::id</a></div><div class="ttdeci">u32_t id() const</div><div class="ttdoc">get id </div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00094">Z3Expr.h:94</a></div></div>
120
+ </div><!-- fragment --></div><!-- contents -->
121
+ <!-- start footer part -->
122
+ <hr class="footer"/><address class="footer"><small>
123
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
124
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
125
+ </a> 1.8.13
126
+ </small></address>
127
+ </body>
128
+ </html>
@@ -94,7 +94,7 @@ $(function() {
94
94
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a55da7f1a8921727f84232e5905d6135f"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a55da7f1a8921727f84232e5905d6135f">SVF::MTASVFGBuilder::recordEdge</a></div><div class="ttdeci">bool recordEdge(NodeID id1, NodeID id2, PointsTo pts)</div><div class="ttdoc">Record edges. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00066">FSMPTA.cpp:66</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1FSMPTA_html"><div class="ttname"><a href="classSVF_1_1FSMPTA.html">SVF::FSMPTA</a></div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00168">FSMPTA.h:168</a></div></div>
97
- <div class="ttc" id="classSVF_1_1Options_html_af129d2ff94af3f6830c0678cb4b72371"><div class="ttname"><a href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const llvm::cl::opt&lt; u32_t &gt; AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00166">Options.h:166</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1Options_html_af129d2ff94af3f6830c0678cb4b72371"><div class="ttname"><a href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const llvm::cl::opt&lt; u32_t &gt; AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00165">Options.h:165</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a7033805052c8fae5cd0104fdd9e345c0"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a7033805052c8fae5cd0104fdd9e345c0">SVF::MTASVFGBuilder::getSuccNodes</a></div><div class="ttdeci">SVFGNodeIDSet getSuccNodes(const StmtSVFGNode *n)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00359">FSMPTA.cpp:359</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00339">GenericGraph.h:339</a></div></div>
@@ -140,7 +140,7 @@ $(function() {
140
140
  <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>
141
141
  <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>
142
142
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a29a14309cfa1d7c4454fb1237704e487"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a29a14309cfa1d7c4454fb1237704e487">SVF::MTASVFGBuilder::handleStoreStore</a></div><div class="ttdeci">void handleStoreStore(const StmtSVFGNode *n1, const StmtSVFGNode *n2, PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00495">FSMPTA.cpp:495</a></div></div>
143
- <div class="ttc" id="classSVF_1_1Options_html_af2f66307e1d51947676f622c98ef0762"><div class="ttname"><a href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">SVF::Options::UsePCG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; UsePCG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00163">Options.h:163</a></div></div>
143
+ <div class="ttc" id="classSVF_1_1Options_html_af2f66307e1d51947676f622c98ef0762"><div class="ttname"><a href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">SVF::Options::UsePCG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; UsePCG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00162">Options.h:162</a></div></div>
144
144
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a467e7b445394acb735b1b24ce39e966a"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a467e7b445394acb735b1b24ce39e966a">SVF::MTASVFGBuilder::SVFGNodeSet</a></div><div class="ttdeci">Set&lt; const SVFGNode * &gt; SVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00070">FSMPTA.h:70</a></div></div>
145
145
  <div class="ttc" id="PCG_8h_html"><div class="ttname"><a href="PCG_8h.html">PCG.h</a></div></div>
146
146
  <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>
@@ -154,7 +154,7 @@ $(function() {
154
154
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
155
155
  <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>
156
156
  <div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00315">MemSSA.h:315</a></div></div>
157
- <div class="ttc" id="classSVF_1_1Options_html_a6bec8aed8673d10d65cc3df9fad3383b"><div class="ttname"><a href="classSVF_1_1Options.html#a6bec8aed8673d10d65cc3df9fad3383b">SVF::Options::ReadPrecisionTDEdge</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ReadPrecisionTDEdge</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00165">Options.h:165</a></div></div>
157
+ <div class="ttc" id="classSVF_1_1Options_html_a6bec8aed8673d10d65cc3df9fad3383b"><div class="ttname"><a href="classSVF_1_1Options.html#a6bec8aed8673d10d65cc3df9fad3383b">SVF::Options::ReadPrecisionTDEdge</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ReadPrecisionTDEdge</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00164">Options.h:164</a></div></div>
158
158
  <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00027">PointsTo.h:27</a></div></div>
159
159
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a7b034f9f8f01823ecfb7f6c17e47b502"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a7b034f9f8f01823ecfb7f6c17e47b502">SVF::MTASVFGBuilder::getPrevNodes</a></div><div class="ttdeci">SVFGNodeIDSet getPrevNodes(const StmtSVFGNode *n)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00321">FSMPTA.cpp:321</a></div></div>
160
160
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html">SVF::MTASVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00063">FSMPTA.h:63</a></div></div>
@@ -131,12 +131,12 @@ $(function() {
131
131
  <div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a42c8023e0e60e8701ec197b3d775b423"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a42c8023e0e60e8701ec197b3d775b423">SVF::FlowSensitiveTBHC::processLoad</a></div><div class="ttdeci">virtual bool processLoad(const LoadSVFGNode *load) override</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00364">FlowSensitiveTBHC.cpp:364</a></div></div>
132
132
  <div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_ac937e0e388071bbf94a477e1880663eb"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#ac937e0e388071bbf94a477e1880663eb">SVF::FlowSensitiveTBHC::processStore</a></div><div class="ttdeci">virtual bool processStore(const StoreSVFGNode *store) override</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00419">FlowSensitiveTBHC.cpp:419</a></div></div>
133
133
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00365">GenericGraph.h:365</a></div></div>
134
- <div class="ttc" id="classSVF_1_1Options_html_a10cc9fa1d4e553865343d635cf84592e"><div class="ttname"><a href="classSVF_1_1Options.html#a10cc9fa1d4e553865343d635cf84592e">SVF::Options::TBHCStoreReuse</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; TBHCStoreReuse</div><div class="ttdoc">Whether we allow reuse for TBHC. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00242">Options.h:242</a></div></div>
134
+ <div class="ttc" id="classSVF_1_1Options_html_a10cc9fa1d4e553865343d635cf84592e"><div class="ttname"><a href="classSVF_1_1Options.html#a10cc9fa1d4e553865343d635cf84592e">SVF::Options::TBHCStoreReuse</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; TBHCStoreReuse</div><div class="ttdoc">Whether we allow reuse for TBHC. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00241">Options.h:241</a></div></div>
135
135
  <div class="ttc" id="classSVF_1_1DCHGraph_html_a9d2be5aec5216cbc1d1709b41f79c44b"><div class="ttname"><a href="classSVF_1_1DCHGraph.html#a9d2be5aec5216cbc1d1709b41f79c44b">SVF::DCHGraph::isAgg</a></div><div class="ttdeci">static bool isAgg(const DIType *t)</div><div class="ttdef"><b>Definition:</b> <a href="DCHG_8cpp_source.html#l00342">DCHG.cpp:342</a></div></div>
136
136
  <div class="ttc" id="classSVF_1_1DFPTData_html_a7e4ae809b40d55448de0103746254158"><div class="ttname"><a href="classSVF_1_1DFPTData.html#a7e4ae809b40d55448de0103746254158">SVF::DFPTData::updateAllDFOutFromIn</a></div><div class="ttdeci">virtual bool updateAllDFOutFromIn(LocID loc, const Key &amp;singleton, bool strongUpdates)=0</div><div class="ttdoc">For each variable var in IN at loc, do updateDFOutFromIn(loc, var, loc, var). </div></div>
137
137
  <div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_ad5b294dacf51a89306df9a22c6799bad"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#ad5b294dacf51a89306df9a22c6799bad">SVF::FlowSensitiveTBHC::gepIsLoad</a></div><div class="ttdeci">bool gepIsLoad(NodeID gep)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00608">FlowSensitiveTBHC.cpp:608</a></div></div>
138
138
  <div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00338">GenericGraph.h:338</a></div></div>
139
- <div class="ttc" id="classSVF_1_1Options_html_a930ed87e35ba7502f9d00be6f17f902f"><div class="ttname"><a href="classSVF_1_1Options.html#a930ed87e35ba7502f9d00be6f17f902f">SVF::Options::TBHCAllReuse</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; TBHCAllReuse</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00243">Options.h:243</a></div></div>
139
+ <div class="ttc" id="classSVF_1_1Options_html_a930ed87e35ba7502f9d00be6f17f902f"><div class="ttname"><a href="classSVF_1_1Options.html#a930ed87e35ba7502f9d00be6f17f902f">SVF::Options::TBHCAllReuse</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; TBHCAllReuse</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00242">Options.h:242</a></div></div>
140
140
  <div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a83a4defe2bcb1c99c66aea8c8325d5fd"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a83a4defe2bcb1c99c66aea8c8325d5fd">SVF::FlowSensitiveTBHC::propAlongIndirectEdge</a></div><div class="ttdeci">virtual bool propAlongIndirectEdge(const IndirectSVFGEdge *edge) override</div><div class="ttdoc">Propagate points-to information along an INDIRECT SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00091">FlowSensitiveTBHC.cpp:91</a></div></div>
141
141
  <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>
142
142
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00101">SVFBasicTypes.h:101</a></div></div>
@@ -72,7 +72,7 @@ $(function() {
72
72
  <div class="textblock"><code>#include &quot;<a class="el" href="DCHG_8h_source.html">SVF-FE/DCHG.h</a>&quot;</code><br />
73
73
  <code>#include &quot;<a class="el" href="SVFGOPT_8h_source.html">Graphs/SVFGOPT.h</a>&quot;</code><br />
74
74
  <code>#include &quot;<a class="el" href="SVFGBuilder_8h_source.html">MSSA/SVFGBuilder.h</a>&quot;</code><br />
75
- <code>#include &quot;<a class="el" href="TypeBasedHeapCloning_8h_source.html">Util/TypeBasedHeapCloning.h</a>&quot;</code><br />
75
+ <code>#include &quot;<a class="el" href="TypeBasedHeapCloning_8h_source.html">TypeBasedHeapCloning.h</a>&quot;</code><br />
76
76
  <code>#include &quot;<a class="el" href="FlowSensitive_8h_source.html">WPA/FlowSensitive.h</a>&quot;</code><br />
77
77
  <code>#include &quot;<a class="el" href="PointsTo_8h_source.html">MemoryModel/PointsTo.h</a>&quot;</code><br />
78
78
  </div>
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">FlowSensitiveTBHC.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="FlowSensitiveTBHC_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">//===- FlowSensitiveTBHC.h -- flow-sensitive type filter ----------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * FlowSensitiveTBHC.h</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Created on: Oct 08, 2019</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#ifndef FLOWSENSITIVETYPEFILTER_H_</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define FLOWSENSITIVETYPEFILTER_H_</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="preprocessor">#include &quot;<a class="code" href="DCHG_8h.html">SVF-FE/DCHG.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGOPT_8h.html">Graphs/SVFGOPT.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="TypeBasedHeapCloning_8h.html">Util/TypeBasedHeapCloning.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FlowSensitive_8h.html">WPA/FlowSensitive.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</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="keyword">class </span>SVFModule;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html"> 28</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1FlowSensitiveTBHC.html">FlowSensitiveTBHC</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a>, <span class="keyword">public</span> <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html">TypeBasedHeapCloning</a></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="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a2c47ba37bd250be455a21d1f0049d556">getRawCTirMetadata</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abb0d8712ec0f9d6ae4e4e0971eac07f4">FlowSensitiveTBHC</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* _pag, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> type = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a088dda60195ab259693977af8414f203">FSTBHC_WPA</a>);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#af790272dd41bb5960626c6ffd0acdc0d"> 39</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#af790272dd41bb5960626c6ffd0acdc0d">~FlowSensitiveTBHC</a>() { };</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abcab6281cced08d90c92d67d43a37c2c">analyze</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a4c5fb70aafc3a589b7b1e82ba8f61a6f">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a3564d6ad7e12e0a833b4cea203a809e4">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a1eb2f49fd20527b174c2acb8b7d64a41"> 49</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a1eb2f49fd20527b174c2acb8b7d64a41">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;FSTBHC&quot;</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#afe46af7ca4f735e500b35f4f4bb8d910"> 55</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#afe46af7ca4f735e500b35f4f4bb8d910">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html">FlowSensitiveTBHC</a> *)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a0b213f9c4011642309c550503802dad5"> 61</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a0b213f9c4011642309c550503802dad5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *<a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a7d3f7d27c9491b099a623ba03b1c4732">pta</a>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a088dda60195ab259693977af8414f203">FSTBHC_WPA</a>;</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;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a83a4defe2bcb1c99c66aea8c8325d5fd">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* edge) <span class="keyword">override</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a15b8610fd7456d158a9e640c69d401a0">propAlongDirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DirectSVFGEdge.html">DirectSVFGEdge</a>* edge) <span class="keyword">override</span>;</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="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abce5580e93cba1e591a0bac4e9070816">processAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abf96f7329d8c50dcd75da048548d2c85">processGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* gep) <span class="keyword">override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a42c8023e0e60e8701ec197b3d775b423">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load) <span class="keyword">override</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ac937e0e388071bbf94a477e1880663eb">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a0eb8335dd45b35b20d34c981b86b059c">processPhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi) <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ab6525ac133151692176a03227f81bcac">processCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>* copy) <span class="keyword">override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">getAllFieldsObjVars</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>) <span class="keyword">override</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; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#acb11d6879836e27195c85ca882df6d17">updateInFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ab9615acdb43219c39f40e886f5baf803">updateInFromOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad53c6aebdcfa9fa334ccff4c68efa8ae">unionPtsFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#adee98278cf3944e0b2b22e34aaecc4c5">unionPtsFromTop</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</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"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abf5cca7e8332930c8f6adbfdb6f72629">propDFOutToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#aab08c9a0527138599e58e72f69071ecb">propDFInToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a3af0297eb75ac4009433be44bb286d30">expandFIObjs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts, <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; expandedPts) <span class="keyword">override</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a045ffbf7eea276d154be2cf883ea71f7">getTypeFromCTirMetadata</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a81ce8b1e98db245d3f4ccf189ca11e47">backPropagate</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> clone) <span class="keyword">override</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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abe784dfae06a7c1943b8f0a18bd79f14">countAliases</a>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt;std::pair&lt;NodeID, NodeID&gt;&gt; cmp, <span class="keywordtype">unsigned</span> *mayAliases, <span class="keywordtype">unsigned</span> *noAliases) <span class="keyword">override</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="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a80052c89d1a9f54cfbf8f9790110899d">determineWhichGepsAreLoads</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad5b294dacf51a89306df9a22c6799bad">gepIsLoad</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gep);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#ac7ed9100533dc399c71cdf017bfa2462"> 109</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ac7ed9100533dc399c71cdf017bfa2462">storeReuse</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a734e01c66832346c61d4cda38db84f4a"> 112</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a734e01c66832346c61d4cda38db84f4a">allReuse</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#acd6ade2b73c19d1eb7faf0e457becba6"> 115</a></span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeBS&gt;</a> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#acd6ade2b73c19d1eb7faf0e457becba6">gepToSVFGRetrievers</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a5c96229c2da784a3db98ecbdd3137434"> 117</a></span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a5c96229c2da784a3db98ecbdd3137434">loadGeps</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;} <span class="comment">// End namespace SVF</span></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="preprocessor">#endif </span><span class="comment">/* FLOWSENSITIVETYPEFILTER_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a3564d6ad7e12e0a833b4cea203a809e4"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a3564d6ad7e12e0a833b4cea203a809e4">SVF::FlowSensitiveTBHC::finalize</a></div><div class="ttdeci">virtual void finalize() override</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00052">FlowSensitiveTBHC.cpp:52</a></div></div>
69
+ <a href="FlowSensitiveTBHC_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">//===- FlowSensitiveTBHC.h -- flow-sensitive type filter ----------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * FlowSensitiveTBHC.h</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Created on: Oct 08, 2019</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * Author: Mohamad Barbar</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#ifndef FLOWSENSITIVETYPEFILTER_H_</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define FLOWSENSITIVETYPEFILTER_H_</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="preprocessor">#include &quot;<a class="code" href="DCHG_8h.html">SVF-FE/DCHG.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGOPT_8h.html">Graphs/SVFGOPT.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVFGBuilder_8h.html">MSSA/SVFGBuilder.h</a>&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="TypeBasedHeapCloning_8h.html">TypeBasedHeapCloning.h</a>&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FlowSensitive_8h.html">WPA/FlowSensitive.h</a>&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</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="keyword">class </span>SVFModule;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html"> 28</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1FlowSensitiveTBHC.html">FlowSensitiveTBHC</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1FlowSensitive.html">FlowSensitive</a>, <span class="keyword">public</span> <a class="code" href="classSVF_1_1TypeBasedHeapCloning.html">TypeBasedHeapCloning</a></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="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a2c47ba37bd250be455a21d1f0049d556">getRawCTirMetadata</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abb0d8712ec0f9d6ae4e4e0971eac07f4">FlowSensitiveTBHC</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* _pag, <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">PTATY</a> type = <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a088dda60195ab259693977af8414f203">FSTBHC_WPA</a>);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#af790272dd41bb5960626c6ffd0acdc0d"> 39</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#af790272dd41bb5960626c6ffd0acdc0d">~FlowSensitiveTBHC</a>() { };</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abcab6281cced08d90c92d67d43a37c2c">analyze</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a4c5fb70aafc3a589b7b1e82ba8f61a6f">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a3564d6ad7e12e0a833b4cea203a809e4">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a1eb2f49fd20527b174c2acb8b7d64a41"> 49</a></span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a1eb2f49fd20527b174c2acb8b7d64a41">PTAName</a>()<span class="keyword"> const override</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;FSTBHC&quot;</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#afe46af7ca4f735e500b35f4f4bb8d910"> 55</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#afe46af7ca4f735e500b35f4f4bb8d910">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html">FlowSensitiveTBHC</a> *)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a0b213f9c4011642309c550503802dad5"> 61</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a0b213f9c4011642309c550503802dad5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *<a class="code" href="classSVF_1_1TypeBasedHeapCloning.html#a7d3f7d27c9491b099a623ba03b1c4732">pta</a>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ac23f71c1307cda9cba44acc40059f0a3">getAnalysisTy</a>() == <a class="code" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85a088dda60195ab259693977af8414f203">FSTBHC_WPA</a>;</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;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a83a4defe2bcb1c99c66aea8c8325d5fd">propAlongIndirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1IndirectSVFGEdge.html">IndirectSVFGEdge</a>* edge) <span class="keyword">override</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a15b8610fd7456d158a9e640c69d401a0">propAlongDirectEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1DirectSVFGEdge.html">DirectSVFGEdge</a>* edge) <span class="keyword">override</span>;</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="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abce5580e93cba1e591a0bac4e9070816">processAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrVFGNode.html">AddrSVFGNode</a>* addr) <span class="keyword">override</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abf96f7329d8c50dcd75da048548d2c85">processGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* gep) <span class="keyword">override</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a42c8023e0e60e8701ec197b3d775b423">processLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadVFGNode.html">LoadSVFGNode</a>* load) <span class="keyword">override</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ac937e0e388071bbf94a477e1880663eb">processStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>* store) <span class="keyword">override</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a0eb8335dd45b35b20d34c981b86b059c">processPhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PHIVFGNode.html">PHISVFGNode</a>* phi) <span class="keyword">override</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ab6525ac133151692176a03227f81bcac">processCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyVFGNode.html">CopySVFGNode</a>* copy) <span class="keyword">override</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&amp; <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a56dc95bb4b6d48f82c87c6280237990a">getAllFieldsObjVars</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>) <span class="keyword">override</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; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#acb11d6879836e27195c85ca882df6d17">updateInFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ab9615acdb43219c39f40e886f5baf803">updateInFromOut</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad53c6aebdcfa9fa334ccff4c68efa8ae">unionPtsFromIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#adee98278cf3944e0b2b22e34aaecc4c5">unionPtsFromTop</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* stmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</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"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abf5cca7e8332930c8f6adbfdb6f72629">propDFOutToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#aab08c9a0527138599e58e72f69071ecb">propDFInToIn</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* srcStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcVar, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* dstStmt, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstVar) <span class="keyword">override</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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a3af0297eb75ac4009433be44bb286d30">expandFIObjs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts, <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; expandedPts) <span class="keyword">override</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad127b0ad478640ede3d426e3a58d2632">DIType</a> *<a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a045ffbf7eea276d154be2cf883ea71f7">getTypeFromCTirMetadata</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a> *);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a81ce8b1e98db245d3f4ccf189ca11e47">backPropagate</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> clone) <span class="keyword">override</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="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#abe784dfae06a7c1943b8f0a18bd79f14">countAliases</a>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set</a>&lt;std::pair&lt;NodeID, NodeID&gt;&gt; cmp, <span class="keywordtype">unsigned</span> *mayAliases, <span class="keywordtype">unsigned</span> *noAliases) <span class="keyword">override</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="keyword">private</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a80052c89d1a9f54cfbf8f9790110899d">determineWhichGepsAreLoads</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ad5b294dacf51a89306df9a22c6799bad">gepIsLoad</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gep);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#ac7ed9100533dc399c71cdf017bfa2462"> 109</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#ac7ed9100533dc399c71cdf017bfa2462">storeReuse</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a734e01c66832346c61d4cda38db84f4a"> 112</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a734e01c66832346c61d4cda38db84f4a">allReuse</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#acd6ade2b73c19d1eb7faf0e457becba6"> 115</a></span>&#160; <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeBS&gt;</a> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#acd6ade2b73c19d1eb7faf0e457becba6">gepToSVFGRetrievers</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1FlowSensitiveTBHC.html#a5c96229c2da784a3db98ecbdd3137434"> 117</a></span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> <a class="code" href="classSVF_1_1FlowSensitiveTBHC.html#a5c96229c2da784a3db98ecbdd3137434">loadGeps</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;} <span class="comment">// End namespace SVF</span></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="preprocessor">#endif </span><span class="comment">/* FLOWSENSITIVETYPEFILTER_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a3564d6ad7e12e0a833b4cea203a809e4"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a3564d6ad7e12e0a833b4cea203a809e4">SVF::FlowSensitiveTBHC::finalize</a></div><div class="ttdeci">virtual void finalize() override</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8cpp_source.html#l00052">FlowSensitiveTBHC.cpp:52</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1FlowSensitiveTBHC_html_a0b213f9c4011642309c550503802dad5"><div class="ttname"><a href="classSVF_1_1FlowSensitiveTBHC.html#a0b213f9c4011642309c550503802dad5">SVF::FlowSensitiveTBHC::classof</a></div><div class="ttdeci">static bool classof(const PointerAnalysis *pta)</div><div class="ttdoc">For LLVM RTTI. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitiveTBHC_8h_source.html#l00061">FlowSensitiveTBHC.h:61</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1AddrVFGNode_html"><div class="ttname"><a href="classSVF_1_1AddrVFGNode.html">SVF::AddrVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00756">VFGNode.h:756</a></div></div>