svf-tools 1.0.418 → 1.0.421

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 (260) hide show
  1. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +14 -14
  3. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/Conditions_8cpp.html +0 -1
  5. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +58 -49
  6. package/SVF-doxygen/html/html/Conditions_8h.html +6 -2
  7. package/SVF-doxygen/html/html/Conditions_8h_source.html +68 -60
  8. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  12. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  27. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/Options_8cpp_source.html +114 -113
  29. package/SVF-doxygen/html/html/Options_8h.html +1 -0
  30. package/SVF-doxygen/html/html/Options_8h_source.html +117 -115
  31. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +41 -23
  33. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +74 -74
  34. package/SVF-doxygen/html/html/PathDPItem_8h_source.html +7 -7
  35. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  36. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
  37. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +13 -13
  40. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  41. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  42. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
  48. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
  49. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  53. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  54. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  55. package/SVF-doxygen/html/html/annotated.html +7 -5
  56. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +23 -25
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
  59. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -0
  62. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -6
  63. package/SVF-doxygen/html/html/classSVF_1_1BDDExpr-members.html +92 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1BDDExpr.html +304 -0
  65. package/SVF-doxygen/html/html/classSVF_1_1BDDExpr.png +0 -0
  66. package/SVF-doxygen/html/html/classSVF_1_1BDDManager-members.html +124 -0
  67. package/SVF-doxygen/html/html/classSVF_1_1BDDManager.html +1139 -0
  68. package/SVF-doxygen/html/html/classSVF_1_1BDDManager.png +0 -0
  69. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
  70. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1CondExpr-members.html +5 -8
  76. package/SVF-doxygen/html/html/classSVF_1_1CondExpr.html +22 -151
  77. package/SVF-doxygen/html/html/classSVF_1_1CondExpr.png +0 -0
  78. package/SVF-doxygen/html/html/classSVF_1_1CondManager-members.html +25 -36
  79. package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +276 -605
  80. package/SVF-doxygen/html/html/classSVF_1_1CondManager.png +0 -0
  81. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  82. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  84. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
  85. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +9 -9
  88. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -7
  89. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  94. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  97. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  101. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
  102. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  103. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +2 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
  107. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  108. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +103 -102
  110. package/SVF-doxygen/html/html/classSVF_1_1Options.html +141 -115
  111. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  112. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +189 -196
  114. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +13 -13
  116. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  117. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +20 -20
  118. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
  120. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +5 -5
  121. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +4 -4
  122. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +5 -5
  123. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +8 -8
  125. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  127. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  128. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  133. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  136. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +11 -11
  137. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr-members.html +95 -0
  138. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +396 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.png +0 -0
  140. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager-members.html +122 -0
  141. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.html +1066 -0
  142. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.png +0 -0
  143. package/SVF-doxygen/html/html/classes.html +12 -11
  144. package/SVF-doxygen/html/html/functions_0x7e.html +9 -3
  145. package/SVF-doxygen/html/html/functions_a.html +4 -6
  146. package/SVF-doxygen/html/html/functions_b.html +33 -34
  147. package/SVF-doxygen/html/html/functions_c.html +43 -32
  148. package/SVF-doxygen/html/html/functions_d.html +5 -4
  149. package/SVF-doxygen/html/html/functions_e.html +8 -7
  150. package/SVF-doxygen/html/html/functions_enum.html +3 -0
  151. package/SVF-doxygen/html/html/functions_eval_b.html +6 -3
  152. package/SVF-doxygen/html/html/functions_eval_z.html +79 -0
  153. package/SVF-doxygen/html/html/functions_f.html +3 -3
  154. package/SVF-doxygen/html/html/functions_func.html +8 -7
  155. package/SVF-doxygen/html/html/functions_func_0x7e.html +9 -3
  156. package/SVF-doxygen/html/html/functions_func_b.html +10 -10
  157. package/SVF-doxygen/html/html/functions_func_c.html +23 -20
  158. package/SVF-doxygen/html/html/functions_func_d.html +5 -4
  159. package/SVF-doxygen/html/html/functions_func_e.html +3 -2
  160. package/SVF-doxygen/html/html/functions_func_g.html +33 -24
  161. package/SVF-doxygen/html/html/functions_func_i.html +17 -11
  162. package/SVF-doxygen/html/html/functions_func_n.html +4 -3
  163. package/SVF-doxygen/html/html/functions_func_o.html +4 -3
  164. package/SVF-doxygen/html/html/functions_func_p.html +3 -3
  165. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  166. package/SVF-doxygen/html/html/functions_func_z.html +79 -0
  167. package/SVF-doxygen/html/html/functions_g.html +35 -26
  168. package/SVF-doxygen/html/html/functions_i.html +30 -15
  169. package/SVF-doxygen/html/html/functions_l.html +8 -8
  170. package/SVF-doxygen/html/html/functions_m.html +1 -1
  171. package/SVF-doxygen/html/html/functions_n.html +4 -3
  172. package/SVF-doxygen/html/html/functions_o.html +9 -14
  173. package/SVF-doxygen/html/html/functions_p.html +10 -10
  174. package/SVF-doxygen/html/html/functions_r.html +7 -7
  175. package/SVF-doxygen/html/html/functions_rela.html +4 -0
  176. package/SVF-doxygen/html/html/functions_s.html +13 -15
  177. package/SVF-doxygen/html/html/functions_t.html +1 -3
  178. package/SVF-doxygen/html/html/functions_type_b.html +5 -6
  179. package/SVF-doxygen/html/html/functions_type_c.html +1 -1
  180. package/SVF-doxygen/html/html/functions_type_i.html +4 -1
  181. package/SVF-doxygen/html/html/functions_type_z.html +77 -0
  182. package/SVF-doxygen/html/html/functions_v.html +3 -3
  183. package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
  184. package/SVF-doxygen/html/html/functions_vars_b.html +6 -9
  185. package/SVF-doxygen/html/html/functions_vars_c.html +5 -2
  186. package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
  187. package/SVF-doxygen/html/html/functions_vars_i.html +6 -0
  188. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  189. package/SVF-doxygen/html/html/functions_vars_n.html +1 -1
  190. package/SVF-doxygen/html/html/functions_vars_s.html +1 -1
  191. package/SVF-doxygen/html/html/functions_z.html +16 -0
  192. package/SVF-doxygen/html/html/hierarchy.html +436 -434
  193. package/SVF-doxygen/html/html/menudata.js +5 -2
  194. package/SVF-doxygen/html/html/namespaceSVF.html +8 -4
  195. package/SVF-doxygen/html/html/search/all_1.js +1 -2
  196. package/SVF-doxygen/html/html/search/all_10.js +11 -11
  197. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  198. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  199. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  200. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  201. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  202. package/SVF-doxygen/html/html/search/all_1a.js +5 -0
  203. package/SVF-doxygen/html/html/search/all_1b.js +5 -3
  204. package/SVF-doxygen/html/html/search/all_2.js +10 -9
  205. package/SVF-doxygen/html/html/search/all_3.js +9 -7
  206. package/SVF-doxygen/html/html/search/all_4.js +3 -3
  207. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  208. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  209. package/SVF-doxygen/html/html/search/all_7.js +13 -11
  210. package/SVF-doxygen/html/html/search/all_9.js +8 -6
  211. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  212. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  213. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  214. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  215. package/SVF-doxygen/html/html/search/classes_1.js +2 -2
  216. package/SVF-doxygen/html/html/search/classes_14.html +26 -0
  217. package/SVF-doxygen/html/html/search/classes_14.js +5 -0
  218. package/SVF-doxygen/html/html/search/enums_1.js +1 -0
  219. package/SVF-doxygen/html/html/search/enumvalues_1.js +2 -1
  220. package/SVF-doxygen/html/html/search/enumvalues_14.html +26 -0
  221. package/SVF-doxygen/html/html/search/enumvalues_14.js +5 -0
  222. package/SVF-doxygen/html/html/search/functions_0.js +1 -1
  223. package/SVF-doxygen/html/html/search/functions_1.js +5 -5
  224. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  225. package/SVF-doxygen/html/html/search/functions_15.js +2 -0
  226. package/SVF-doxygen/html/html/search/functions_16.js +5 -3
  227. package/SVF-doxygen/html/html/search/functions_2.js +5 -5
  228. package/SVF-doxygen/html/html/search/functions_3.js +3 -3
  229. package/SVF-doxygen/html/html/search/functions_4.js +1 -1
  230. package/SVF-doxygen/html/html/search/functions_6.js +13 -11
  231. package/SVF-doxygen/html/html/search/functions_8.js +4 -4
  232. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  233. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  234. package/SVF-doxygen/html/html/search/functions_e.js +4 -4
  235. package/SVF-doxygen/html/html/search/related_0.js +2 -1
  236. package/SVF-doxygen/html/html/search/searchdata.js +3 -3
  237. package/SVF-doxygen/html/html/search/typedefs_1.js +2 -2
  238. package/SVF-doxygen/html/html/search/typedefs_16.html +26 -0
  239. package/SVF-doxygen/html/html/search/typedefs_16.js +4 -0
  240. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  241. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -1
  242. package/SVF-doxygen/html/html/search/variables_1.js +0 -1
  243. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  244. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  245. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  246. package/SVF-doxygen/html/html/search/variables_2.js +2 -3
  247. package/SVF-doxygen/html/html/search/variables_3.js +2 -1
  248. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  249. package/SVF-doxygen/html/html/search/variables_9.js +2 -0
  250. package/SVF-doxygen/html/html/search/variables_d.js +2 -2
  251. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  252. package/include/SABER/PathCondAllocator.h +2 -3
  253. package/include/Util/Conditions.h +272 -166
  254. package/include/Util/Options.h +4 -0
  255. package/index.html +2 -0
  256. package/lib/SABER/PathCondAllocator.cpp +3 -0
  257. package/lib/Util/Conditions.cpp +245 -209
  258. package/lib/Util/Options.cpp +11 -0
  259. package/lib/WPA/Andersen.cpp +10 -9
  260. package/package.json +1 -1
@@ -0,0 +1,1066 @@
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: SVF::Z3Manager Class Reference</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="namespaceSVF.html">SVF</a></li><li class="navelem"><a class="el" href="classSVF_1_1Z3Manager.html">Z3Manager</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="summary">
66
+ <a href="#pub-types">Public Types</a> &#124;
67
+ <a href="#pub-methods">Public Member Functions</a> &#124;
68
+ <a href="#pri-methods">Private Member Functions</a> &#124;
69
+ <a href="#pri-attribs">Private Attributes</a> &#124;
70
+ <a href="#friends">Friends</a> &#124;
71
+ <a href="classSVF_1_1Z3Manager-members.html">List of all members</a> </div>
72
+ <div class="headertitle">
73
+ <div class="title">SVF::Z3Manager Class Reference</div> </div>
74
+ </div><!--header-->
75
+ <div class="contents">
76
+
77
+ <p><code>#include &lt;<a class="el" href="Conditions_8h_source.html">Conditions.h</a>&gt;</code></p>
78
+ <div class="dynheader">
79
+ Inheritance diagram for SVF::Z3Manager:</div>
80
+ <div class="dyncontent">
81
+ <div class="center">
82
+ <img src="classSVF_1_1Z3Manager.png" usemap="#SVF::Z3Manager_map" alt=""/>
83
+ <map id="SVF::Z3Manager_map" name="SVF::Z3Manager_map">
84
+ <area href="classSVF_1_1CondManager.html" alt="SVF::CondManager" shape="rect" coords="0,0,124,24"/>
85
+ </map>
86
+ </div></div>
87
+ <table class="memberdecls">
88
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
89
+ Public Types</h2></td></tr>
90
+ <tr class="memitem:aae5b5661f0a34771753648072d6ea20a"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1Z3Expr.html#a4c5d8b4850d005c46dc52b4a448a1235">Z3Expr::Z3Cond</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#aae5b5661f0a34771753648072d6ea20a">Z3Cond</a></td></tr>
91
+ <tr class="separator:aae5b5661f0a34771753648072d6ea20a"><td class="memSeparator" colspan="2">&#160;</td></tr>
92
+ <tr class="memitem:aae29d2331b696987a2ca5c349bb8315b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#aae29d2331b696987a2ca5c349bb8315b">IDToCondExprMap</a></td></tr>
93
+ <tr class="separator:aae29d2331b696987a2ca5c349bb8315b"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
+ <tr class="inherit_header pub_types_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
95
+ <tr class="memitem:a7f7519973f1e0ab8054670a6154bd74f inherit pub_types_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">CondMgrKind</a> { <a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d">BDDMgrK</a>,
96
+ <a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780">Z3MgrK</a>
97
+ }</td></tr>
98
+ <tr class="separator:a7f7519973f1e0ab8054670a6154bd74f inherit pub_types_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
99
+ <tr class="memitem:a01565ecb4f167283396be0e446b9df0a inherit pub_types_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a01565ecb4f167283396be0e446b9df0a">CondToTermInstMap</a></td></tr>
100
+ <tr class="separator:a01565ecb4f167283396be0e446b9df0a inherit pub_types_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ </table><table class="memberdecls">
102
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
103
+ Public Member Functions</h2></td></tr>
104
+ <tr class="memitem:ad3d9d77ee64d84bb204fa66c1a51a01a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#ad3d9d77ee64d84bb204fa66c1a51a01a">~Z3Manager</a> ()</td></tr>
105
+ <tr class="memdesc:ad3d9d77ee64d84bb204fa66c1a51a01a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#ad3d9d77ee64d84bb204fa66c1a51a01a">More...</a><br /></td></tr>
106
+ <tr class="separator:ad3d9d77ee64d84bb204fa66c1a51a01a"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
+ <tr class="memitem:a5143c47868ea644735f34ca95400ee42"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a5143c47868ea644735f34ca95400ee42">getCondNumber</a> () override</td></tr>
108
+ <tr class="memdesc:a5143c47868ea644735f34ca95400ee42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of condition expressions. <a href="#a5143c47868ea644735f34ca95400ee42">More...</a><br /></td></tr>
109
+ <tr class="separator:a5143c47868ea644735f34ca95400ee42"><td class="memSeparator" colspan="2">&#160;</td></tr>
110
+ <tr class="memitem:aa0fd8e460f4d89155da3487c0350f972"><td class="memItemLeft" align="right" valign="top">z3::expr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#aa0fd8e460f4d89155da3487c0350f972">simplify</a> (const z3::expr &amp;expr) const</td></tr>
111
+ <tr class="memdesc:aa0fd8e460f4d89155da3487c0350f972"><td class="mdescLeft">&#160;</td><td class="mdescRight">Preprocess the condition, e.g., Compressing using And-Inverter-Graph. <a href="#aa0fd8e460f4d89155da3487c0350f972">More...</a><br /></td></tr>
112
+ <tr class="separator:aa0fd8e460f4d89155da3487c0350f972"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
+ <tr class="memitem:aa8ecb34cf54a5defb48747b1278b4764"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#aa8ecb34cf54a5defb48747b1278b4764">getCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i) const override</td></tr>
114
+ <tr class="memdesc:aa8ecb34cf54a5defb48747b1278b4764"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an id, get its condition. <a href="#aa8ecb34cf54a5defb48747b1278b4764">More...</a><br /></td></tr>
115
+ <tr class="separator:aa8ecb34cf54a5defb48747b1278b4764"><td class="memSeparator" colspan="2">&#160;</td></tr>
116
+ <tr class="memitem:a4ba99458553cfd7b586f0730b62e5b82"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a4ba99458553cfd7b586f0730b62e5b82">createFreshBranchCond</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst) override</td></tr>
117
+ <tr class="memdesc:a4ba99458553cfd7b586f0730b62e5b82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a fresh condition to encode each program branch. <a href="#a4ba99458553cfd7b586f0730b62e5b82">More...</a><br /></td></tr>
118
+ <tr class="separator:a4ba99458553cfd7b586f0730b62e5b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
+ <tr class="memitem:a747edc9290575156f1edd50be043617d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">getOrAddZ3Cond</a> (const <a class="el" href="classSVF_1_1Z3Manager.html#aae5b5661f0a34771753648072d6ea20a">Z3Cond</a> &amp;z3Cond)</td></tr>
120
+ <tr class="separator:a747edc9290575156f1edd50be043617d"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
+ <tr class="memitem:a98916f1ae12b8c2bb98231b19c94d928"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a98916f1ae12b8c2bb98231b19c94d928">isSatisfiable</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) override</td></tr>
122
+ <tr class="separator:a98916f1ae12b8c2bb98231b19c94d928"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
+ <tr class="memitem:a34d8f9fc93bb82a8916ae45534ef5941"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a34d8f9fc93bb82a8916ae45534ef5941">isEquivalentBranchCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs) override</td></tr>
124
+ <tr class="memdesc:a34d8f9fc93bb82a8916ae45534ef5941"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether lhs and rhs are equivalent branch conditions. <a href="#a34d8f9fc93bb82a8916ae45534ef5941">More...</a><br /></td></tr>
125
+ <tr class="separator:a34d8f9fc93bb82a8916ae45534ef5941"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
+ <tr class="memitem:a7ec31e7f5d856ac7de8416573aef396f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a7ec31e7f5d856ac7de8416573aef396f">setNegCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
127
+ <tr class="separator:a7ec31e7f5d856ac7de8416573aef396f"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
+ <tr class="memitem:a869828207971498df1fd7c9f29d3e999"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a869828207971498df1fd7c9f29d3e999">isNegCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) const override</td></tr>
129
+ <tr class="separator:a869828207971498df1fd7c9f29d3e999"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
+ <tr class="memitem:aa6a78fc2f0a3ed9957230703fb8d730d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#aa6a78fc2f0a3ed9957230703fb8d730d">extractSubConds</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *f, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) const override</td></tr>
131
+ <tr class="separator:aa6a78fc2f0a3ed9957230703fb8d730d"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
+ <tr class="memitem:a163ced4f232f18a0d2c0066fc72745e1"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a163ced4f232f18a0d2c0066fc72745e1">dumpStr</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e) const override</td></tr>
133
+ <tr class="separator:a163ced4f232f18a0d2c0066fc72745e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
134
+ <tr class="memitem:aca945ffd7a479fcf4de413a1ddcbf15a"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#aca945ffd7a479fcf4de413a1ddcbf15a">getMemUsage</a> () override</td></tr>
135
+ <tr class="memdesc:aca945ffd7a479fcf4de413a1ddcbf15a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return memory usage for this condition manager. <a href="#aca945ffd7a479fcf4de413a1ddcbf15a">More...</a><br /></td></tr>
136
+ <tr class="separator:aca945ffd7a479fcf4de413a1ddcbf15a"><td class="memSeparator" colspan="2">&#160;</td></tr>
137
+ <tr class="memitem:a667818d7f30d6d6763e5a6a83aeb242a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a667818d7f30d6d6763e5a6a83aeb242a">printDbg</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e)</td></tr>
138
+ <tr class="memdesc:a667818d7f30d6d6763e5a6a83aeb242a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out one particular expression. <a href="#a667818d7f30d6d6763e5a6a83aeb242a">More...</a><br /></td></tr>
139
+ <tr class="separator:a667818d7f30d6d6763e5a6a83aeb242a"><td class="memSeparator" colspan="2">&#160;</td></tr>
140
+ <tr class="memitem:af9655650f2ddfba9418fc1762794a730"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#af9655650f2ddfba9418fc1762794a730">printModel</a> ()</td></tr>
141
+ <tr class="memdesc:af9655650f2ddfba9418fc1762794a730"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dump out all expressions. <a href="#af9655650f2ddfba9418fc1762794a730">More...</a><br /></td></tr>
142
+ <tr class="separator:af9655650f2ddfba9418fc1762794a730"><td class="memSeparator" colspan="2">&#160;</td></tr>
143
+ <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
144
+ <tr class="memitem:a540de948d9cc396341376e081d7e46aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a540de948d9cc396341376e081d7e46aa">AND</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs) override</td></tr>
145
+ <tr class="memdesc:a540de948d9cc396341376e081d7e46aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operations on conditions. <a href="#a540de948d9cc396341376e081d7e46aa">More...</a><br /></td></tr>
146
+ <tr class="separator:a540de948d9cc396341376e081d7e46aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
147
+ <tr class="memitem:af50dd899af45580176376d2bb7cf6243"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#af50dd899af45580176376d2bb7cf6243">OR</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs) override</td></tr>
148
+ <tr class="separator:af50dd899af45580176376d2bb7cf6243"><td class="memSeparator" colspan="2">&#160;</td></tr>
149
+ <tr class="memitem:a5fcfc5dcdd77d9860aaaff9cd9f43c55"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a5fcfc5dcdd77d9860aaaff9cd9f43c55">NEG</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs) override</td></tr>
150
+ <tr class="separator:a5fcfc5dcdd77d9860aaaff9cd9f43c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
151
+ <tr class="inherit_header pub_methods_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
152
+ <tr class="memitem:ae17d57a0fdc02a5558120e65e11976d4 inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ae17d57a0fdc02a5558120e65e11976d4">~CondManager</a> ()</td></tr>
153
+ <tr class="memdesc:ae17d57a0fdc02a5558120e65e11976d4 inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classSVF_1_1CondManager.html#ae17d57a0fdc02a5558120e65e11976d4">More...</a><br /></td></tr>
154
+ <tr class="separator:ae17d57a0fdc02a5558120e65e11976d4 inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
+ <tr class="memitem:ac74f182ef249a7c892ba9c630f889ddc inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a> () const</td></tr>
156
+ <tr class="memdesc:ac74f182ef249a7c892ba9c630f889ddc inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the unique true condition. <a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">More...</a><br /></td></tr>
157
+ <tr class="separator:ac74f182ef249a7c892ba9c630f889ddc inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
+ <tr class="memitem:a39e9d42cb3661d1c686b5163c70eeade inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a> () const</td></tr>
159
+ <tr class="memdesc:a39e9d42cb3661d1c686b5163c70eeade inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the unique false condition. <a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">More...</a><br /></td></tr>
160
+ <tr class="separator:a39e9d42cb3661d1c686b5163c70eeade inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
161
+ <tr class="memitem:a6151817a6f671fa1e7814e74f7ce2e51 inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">isAllPathReachable</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e)</td></tr>
162
+ <tr class="memdesc:a6151817a6f671fa1e7814e74f7ce2e51 inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether <b>All Paths</b> are reachable. <a href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">More...</a><br /></td></tr>
163
+ <tr class="separator:a6151817a6f671fa1e7814e74f7ce2e51 inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
164
+ <tr class="memitem:a4fac6a918f1f6d09fe1a4ceac7c19428 inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">getCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) const</td></tr>
165
+ <tr class="memdesc:a4fac6a918f1f6d09fe1a4ceac7c19428 inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set llvm conditional expression. <a href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">More...</a><br /></td></tr>
166
+ <tr class="separator:a4fac6a918f1f6d09fe1a4ceac7c19428 inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
+ <tr class="memitem:a1fbf7dd446309e13671d838c91da26bf inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
168
+ <tr class="separator:a1fbf7dd446309e13671d838c91da26bf inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
+ </table><table class="memberdecls">
170
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
171
+ Private Member Functions</h2></td></tr>
172
+ <tr class="memitem:a2b2c98208ab6d9b6fd103a965d9aa1ac"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a2b2c98208ab6d9b6fd103a965d9aa1ac">Z3Manager</a> ()</td></tr>
173
+ <tr class="memdesc:a2b2c98208ab6d9b6fd103a965d9aa1ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a2b2c98208ab6d9b6fd103a965d9aa1ac">More...</a><br /></td></tr>
174
+ <tr class="separator:a2b2c98208ab6d9b6fd103a965d9aa1ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
175
+ </table><table class="memberdecls">
176
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
177
+ Private Attributes</h2></td></tr>
178
+ <tr class="memitem:a72e5e03058e98c4f511ce2bb180f89cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1Z3Manager.html#aae29d2331b696987a2ca5c349bb8315b">IDToCondExprMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a></td></tr>
179
+ <tr class="separator:a72e5e03058e98c4f511ce2bb180f89cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
180
+ <tr class="memitem:ac5968fcdba98bd405509b8abd1997cbc"><td class="memItemLeft" align="right" valign="top">z3::context&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#ac5968fcdba98bd405509b8abd1997cbc">cxt</a></td></tr>
181
+ <tr class="separator:ac5968fcdba98bd405509b8abd1997cbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
182
+ <tr class="memitem:ac6fe9310046274759c45c1435fcc85c6"><td class="memItemLeft" align="right" valign="top">z3::solver&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a></td></tr>
183
+ <tr class="separator:ac6fe9310046274759c45c1435fcc85c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
184
+ <tr class="memitem:abd4a010660942227d7db81533e80b2c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#abd4a010660942227d7db81533e80b2c3">negConds</a></td></tr>
185
+ <tr class="separator:abd4a010660942227d7db81533e80b2c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
186
+ </table><table class="memberdecls">
187
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
188
+ Friends</h2></td></tr>
189
+ <tr class="memitem:a243595beea0081ef5ff38dec8c150651"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1Z3Manager.html#a243595beea0081ef5ff38dec8c150651">CondManager</a></td></tr>
190
+ <tr class="separator:a243595beea0081ef5ff38dec8c150651"><td class="memSeparator" colspan="2">&#160;</td></tr>
191
+ </table><table class="memberdecls">
192
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
193
+ Additional Inherited Members</h2></td></tr>
194
+ <tr class="inherit_header pub_static_methods_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
195
+ <tr class="memitem:a08cad78a4ebb31f32b72d5ff9793b83e inherit pub_static_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondManager.html">CondManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a08cad78a4ebb31f32b72d5ff9793b83e">getCondMgr</a> (<a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">CondMgrKind</a> _condMgrKind)</td></tr>
196
+ <tr class="memdesc:a08cad78a4ebb31f32b72d5ff9793b83e inherit pub_static_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Singleton design here to make sure we only have one instance during any analysis. <a href="classSVF_1_1CondManager.html#a08cad78a4ebb31f32b72d5ff9793b83e">More...</a><br /></td></tr>
197
+ <tr class="separator:a08cad78a4ebb31f32b72d5ff9793b83e inherit pub_static_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
198
+ <tr class="memitem:a2748338b4a5b122b5bbf4a9cb1f54211 inherit pub_static_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211">releaseCondMgr</a> ()</td></tr>
199
+ <tr class="separator:a2748338b4a5b122b5bbf4a9cb1f54211 inherit pub_static_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
200
+ <tr class="inherit_header pub_static_attribs_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
201
+ <tr class="memitem:a7efaeff7229fcfdc6c05d53ee3e1d916 inherit pub_static_attribs_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a> = 0</td></tr>
202
+ <tr class="separator:a7efaeff7229fcfdc6c05d53ee3e1d916 inherit pub_static_attribs_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
203
+ <tr class="inherit_header pro_methods_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
204
+ <tr class="memitem:a692a05088457ba5e4e1b7873c8da411d inherit pro_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a692a05088457ba5e4e1b7873c8da411d">CondManager</a> ()</td></tr>
205
+ <tr class="memdesc:a692a05088457ba5e4e1b7873c8da411d inherit pro_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1CondManager.html#a692a05088457ba5e4e1b7873c8da411d">More...</a><br /></td></tr>
206
+ <tr class="separator:a692a05088457ba5e4e1b7873c8da411d inherit pro_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
207
+ <tr class="inherit_header pro_static_attribs_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
208
+ <tr class="memitem:aed854ecc55a568597f7d7f1f78fb92f4 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = nullptr</td></tr>
209
+ <tr class="separator:aed854ecc55a568597f7d7f1f78fb92f4 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
210
+ <tr class="memitem:a0ba3cf86743de62bcd5fd38d8166bc90 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = nullptr</td></tr>
211
+ <tr class="separator:a0ba3cf86743de62bcd5fd38d8166bc90 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
212
+ </table>
213
+ <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
214
+ <div class="textblock"><p>Z3 Condition Manager </p>
215
+
216
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00240">240</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
217
+ </div><h2 class="groupheader">Member Typedef Documentation</h2>
218
+ <a id="aae29d2331b696987a2ca5c349bb8315b"></a>
219
+ <h2 class="memtitle"><span class="permalink"><a href="#aae29d2331b696987a2ca5c349bb8315b">&#9670;&nbsp;</a></span>IDToCondExprMap</h2>
220
+
221
+ <div class="memitem">
222
+ <div class="memproto">
223
+ <table class="memname">
224
+ <tr>
225
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *&gt; <a class="el" href="classSVF_1_1Z3Manager.html#aae29d2331b696987a2ca5c349bb8315b">SVF::Z3Manager::IDToCondExprMap</a></td>
226
+ </tr>
227
+ </table>
228
+ </div><div class="memdoc">
229
+
230
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00245">245</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
231
+
232
+ </div>
233
+ </div>
234
+ <a id="aae5b5661f0a34771753648072d6ea20a"></a>
235
+ <h2 class="memtitle"><span class="permalink"><a href="#aae5b5661f0a34771753648072d6ea20a">&#9670;&nbsp;</a></span>Z3Cond</h2>
236
+
237
+ <div class="memitem">
238
+ <div class="memproto">
239
+ <table class="memname">
240
+ <tr>
241
+ <td class="memname">typedef <a class="el" href="classSVF_1_1Z3Expr.html#a4c5d8b4850d005c46dc52b4a448a1235">Z3Expr::Z3Cond</a> <a class="el" href="classSVF_1_1Z3Manager.html#aae5b5661f0a34771753648072d6ea20a">SVF::Z3Manager::Z3Cond</a></td>
242
+ </tr>
243
+ </table>
244
+ </div><div class="memdoc">
245
+
246
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00244">244</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
247
+
248
+ </div>
249
+ </div>
250
+ <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
251
+ <a id="a2b2c98208ab6d9b6fd103a965d9aa1ac"></a>
252
+ <h2 class="memtitle"><span class="permalink"><a href="#a2b2c98208ab6d9b6fd103a965d9aa1ac">&#9670;&nbsp;</a></span>Z3Manager()</h2>
253
+
254
+ <div class="memitem">
255
+ <div class="memproto">
256
+ <table class="mlabels">
257
+ <tr>
258
+ <td class="mlabels-left">
259
+ <table class="memname">
260
+ <tr>
261
+ <td class="memname">Z3Manager::Z3Manager </td>
262
+ <td>(</td>
263
+ <td class="paramname"></td><td>)</td>
264
+ <td></td>
265
+ </tr>
266
+ </table>
267
+ </td>
268
+ <td class="mlabels-right">
269
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
270
+ </tr>
271
+ </table>
272
+ </div><div class="memdoc">
273
+
274
+ <p>Constructor. </p>
275
+
276
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00072">72</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
277
+ <div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; : <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>(<a class="code" href="classSVF_1_1Z3Manager.html#ac5968fcdba98bd405509b8abd1997cbc">cxt</a>) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> z3::expr &amp;trueExpr = <a class="code" href="classSVF_1_1Z3Manager.html#ac5968fcdba98bd405509b8abd1997cbc">cxt</a>.bool_val(<span class="keyword">true</span>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = <a class="code" href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">getOrAddZ3Cond</a>(trueExpr);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">const</span> z3::expr &amp;falseExpr = <a class="code" href="classSVF_1_1Z3Manager.html#ac5968fcdba98bd405509b8abd1997cbc">cxt</a>.bool_val(<span class="keyword">false</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = <a class="code" href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">getOrAddZ3Cond</a>(falseExpr);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a0ba3cf86743de62bcd5fd38d8166bc90"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">SVF::CondManager::falseCond</a></div><div class="ttdeci">static CondExpr * falseCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00229">Conditions.h:229</a></div></div>
278
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_ac6fe9310046274759c45c1435fcc85c6"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">SVF::Z3Manager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00253">Conditions.h:253</a></div></div>
279
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a747edc9290575156f1edd50be043617d"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">SVF::Z3Manager::getOrAddZ3Cond</a></div><div class="ttdeci">Z3Expr * getOrAddZ3Cond(const Z3Cond &amp;z3Cond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00062">Conditions.cpp:62</a></div></div>
280
+ <div class="ttc" id="classSVF_1_1CondManager_html_aed854ecc55a568597f7d7f1f78fb92f4"><div class="ttname"><a href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">SVF::CondManager::trueCond</a></div><div class="ttdeci">static CondExpr * trueCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00228">Conditions.h:228</a></div></div>
281
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_ac5968fcdba98bd405509b8abd1997cbc"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#ac5968fcdba98bd405509b8abd1997cbc">SVF::Z3Manager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00252">Conditions.h:252</a></div></div>
282
+ </div><!-- fragment -->
283
+ </div>
284
+ </div>
285
+ <a id="ad3d9d77ee64d84bb204fa66c1a51a01a"></a>
286
+ <h2 class="memtitle"><span class="permalink"><a href="#ad3d9d77ee64d84bb204fa66c1a51a01a">&#9670;&nbsp;</a></span>~Z3Manager()</h2>
287
+
288
+ <div class="memitem">
289
+ <div class="memproto">
290
+ <table class="mlabels">
291
+ <tr>
292
+ <td class="mlabels-left">
293
+ <table class="memname">
294
+ <tr>
295
+ <td class="memname">Z3Manager::~Z3Manager </td>
296
+ <td>(</td>
297
+ <td class="paramname"></td><td>)</td>
298
+ <td></td>
299
+ </tr>
300
+ </table>
301
+ </td>
302
+ <td class="mlabels-right">
303
+ <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
304
+ </tr>
305
+ </table>
306
+ </div><div class="memdoc">
307
+
308
+ <p>Destructor. </p>
309
+
310
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00079">79</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
311
+ <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">delete</span> it.second;</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="ttc" id="classSVF_1_1Z3Manager_html_a72e5e03058e98c4f511ce2bb180f89cf"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">SVF::Z3Manager::idToCondExprMap</a></div><div class="ttdeci">IDToCondExprMap idToCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00251">Conditions.h:251</a></div></div>
312
+ </div><!-- fragment -->
313
+ </div>
314
+ </div>
315
+ <h2 class="groupheader">Member Function Documentation</h2>
316
+ <a id="a540de948d9cc396341376e081d7e46aa"></a>
317
+ <h2 class="memtitle"><span class="permalink"><a href="#a540de948d9cc396341376e081d7e46aa">&#9670;&nbsp;</a></span>AND()</h2>
318
+
319
+ <div class="memitem">
320
+ <div class="memproto">
321
+ <table class="mlabels">
322
+ <tr>
323
+ <td class="mlabels-left">
324
+ <table class="memname">
325
+ <tr>
326
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * Z3Manager::AND </td>
327
+ <td>(</td>
328
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
329
+ <td class="paramname"><em>lhs</em>, </td>
330
+ </tr>
331
+ <tr>
332
+ <td class="paramkey"></td>
333
+ <td></td>
334
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
335
+ <td class="paramname"><em>rhs</em>&#160;</td>
336
+ </tr>
337
+ <tr>
338
+ <td></td>
339
+ <td>)</td>
340
+ <td></td><td></td>
341
+ </tr>
342
+ </table>
343
+ </td>
344
+ <td class="mlabels-right">
345
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
346
+ </tr>
347
+ </table>
348
+ </div><div class="memdoc">
349
+
350
+ <p>Operations on conditions. </p>
351
+
352
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aedda2ed496d0009d92d44a82af2ce8ae">SVF::CondManager</a>.</p>
353
+
354
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00098">98</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
355
+ <div class="fragment"><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">auto</span> *z3lhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(lhs);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">auto</span> *z3rhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(rhs);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3lhs &amp;&amp; z3rhs &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span> (z3lhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>() || z3rhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z3lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> z3rhs;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z3rhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> z3lhs;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = z3lhs-&gt;getExpr() &amp;&amp; z3rhs-&gt;getExpr();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">getOrAddZ3Cond</a>(expr);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><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>
356
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
357
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
358
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
359
+ <div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
360
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a747edc9290575156f1edd50be043617d"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">SVF::Z3Manager::getOrAddZ3Cond</a></div><div class="ttdeci">Z3Expr * getOrAddZ3Cond(const Z3Cond &amp;z3Cond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00062">Conditions.cpp:62</a></div></div>
361
+ </div><!-- fragment -->
362
+ </div>
363
+ </div>
364
+ <a id="a4ba99458553cfd7b586f0730b62e5b82"></a>
365
+ <h2 class="memtitle"><span class="permalink"><a href="#a4ba99458553cfd7b586f0730b62e5b82">&#9670;&nbsp;</a></span>createFreshBranchCond()</h2>
366
+
367
+ <div class="memitem">
368
+ <div class="memproto">
369
+ <table class="mlabels">
370
+ <tr>
371
+ <td class="mlabels-left">
372
+ <table class="memname">
373
+ <tr>
374
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * Z3Manager::createFreshBranchCond </td>
375
+ <td>(</td>
376
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
377
+ <td class="paramname"><em>inst</em></td><td>)</td>
378
+ <td></td>
379
+ </tr>
380
+ </table>
381
+ </td>
382
+ <td class="mlabels-right">
383
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
384
+ </tr>
385
+ </table>
386
+ </div><div class="memdoc">
387
+
388
+ <p>Create a fresh condition to encode each program branch. </p>
389
+
390
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#abd330e858463fed92fb3df6e8529f790">SVF::CondManager</a>.</p>
391
+
392
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00144">144</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
393
+ <div class="fragment"><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> condCountIdx = <a class="code" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a>++;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = <a class="code" href="classSVF_1_1Z3Manager.html#ac5968fcdba98bd405509b8abd1997cbc">cxt</a>.bool_const((<span class="stringliteral">&quot;c&quot;</span> + std::to_string(condCountIdx)).c_str());</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.find(expr.id());</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.end())</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>(expr);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">auto</span> *negCond = <a class="code" href="classSVF_1_1Z3Manager.html#a5fcfc5dcdd77d9860aaaff9cd9f43c55">NEG</a>(cond);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#a7ec31e7f5d856ac7de8416573aef396f">setNegCondInst</a>(negCond, inst);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.emplace(expr.id(), cond).first-&gt;second;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}</div><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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
394
+ <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#l00077">SVFBasicTypes.h:77</a></div></div>
395
+ <div class="ttc" id="classSVF_1_1CondManager_html_a1fbf7dd446309e13671d838c91da26bf"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">SVF::CondManager::setCondInst</a></div><div class="ttdeci">void setCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00212">Conditions.h:212</a></div></div>
396
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a72e5e03058e98c4f511ce2bb180f89cf"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">SVF::Z3Manager::idToCondExprMap</a></div><div class="ttdeci">IDToCondExprMap idToCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00251">Conditions.h:251</a></div></div>
397
+ <div class="ttc" id="classSVF_1_1CondManager_html_a7efaeff7229fcfdc6c05d53ee3e1d916"><div class="ttname"><a href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">SVF::CondManager::totalCondNum</a></div><div class="ttdeci">static u32_t totalCondNum</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00151">Conditions.h:151</a></div></div>
398
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a5fcfc5dcdd77d9860aaaff9cd9f43c55"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a5fcfc5dcdd77d9860aaaff9cd9f43c55">SVF::Z3Manager::NEG</a></div><div class="ttdeci">CondExpr * NEG(CondExpr *lhs) override</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00130">Conditions.cpp:130</a></div></div>
399
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_ac5968fcdba98bd405509b8abd1997cbc"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#ac5968fcdba98bd405509b8abd1997cbc">SVF::Z3Manager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00252">Conditions.h:252</a></div></div>
400
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a7ec31e7f5d856ac7de8416573aef396f"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a7ec31e7f5d856ac7de8416573aef396f">SVF::Z3Manager::setNegCondInst</a></div><div class="ttdeci">void setNegCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00293">Conditions.h:293</a></div></div>
401
+ </div><!-- fragment -->
402
+ </div>
403
+ </div>
404
+ <a id="a163ced4f232f18a0d2c0066fc72745e1"></a>
405
+ <h2 class="memtitle"><span class="permalink"><a href="#a163ced4f232f18a0d2c0066fc72745e1">&#9670;&nbsp;</a></span>dumpStr()</h2>
406
+
407
+ <div class="memitem">
408
+ <div class="memproto">
409
+ <table class="mlabels">
410
+ <tr>
411
+ <td class="mlabels-left">
412
+ <table class="memname">
413
+ <tr>
414
+ <td class="memname">std::string Z3Manager::dumpStr </td>
415
+ <td>(</td>
416
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
417
+ <td class="paramname"><em>e</em></td><td>)</td>
418
+ <td> const</td>
419
+ </tr>
420
+ </table>
421
+ </td>
422
+ <td class="mlabels-right">
423
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
424
+ </tr>
425
+ </table>
426
+ </div><div class="memdoc">
427
+ <p>Return string format of this expression </p>
428
+
429
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a19c63783d5d20f363be3641941263a78">SVF::CondManager</a>.</p>
430
+
431
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00240">240</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
432
+ <div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; std::ostringstream out;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *z3CondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(e);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3CondExpr &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; out &lt;&lt; z3CondExpr-&gt;<a class="code" href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">getExpr</a>();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> out.str();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><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>
433
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
434
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a167a586980be31f4f54884e88f972a04"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const Z3Cond &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00075">Conditions.h:75</a></div></div>
435
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
436
+ </div><!-- fragment -->
437
+ </div>
438
+ </div>
439
+ <a id="aa6a78fc2f0a3ed9957230703fb8d730d"></a>
440
+ <h2 class="memtitle"><span class="permalink"><a href="#aa6a78fc2f0a3ed9957230703fb8d730d">&#9670;&nbsp;</a></span>extractSubConds()</h2>
441
+
442
+ <div class="memitem">
443
+ <div class="memproto">
444
+ <table class="mlabels">
445
+ <tr>
446
+ <td class="mlabels-left">
447
+ <table class="memname">
448
+ <tr>
449
+ <td class="memname">void Z3Manager::extractSubConds </td>
450
+ <td>(</td>
451
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
452
+ <td class="paramname"><em>cond</em>, </td>
453
+ </tr>
454
+ <tr>
455
+ <td class="paramkey"></td>
456
+ <td></td>
457
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
458
+ <td class="paramname"><em>support</em>&#160;</td>
459
+ </tr>
460
+ <tr>
461
+ <td></td>
462
+ <td>)</td>
463
+ <td></td><td> const</td>
464
+ </tr>
465
+ </table>
466
+ </td>
467
+ <td class="mlabels-right">
468
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
469
+ </tr>
470
+ </table>
471
+ </div><div class="memdoc">
472
+ <p>Extract sub conditions of this expression </p>
473
+
474
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a66ed79e36f8c09ee3ae58fb9b4a6f3e3">SVF::CondManager</a>.</p>
475
+
476
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00162">162</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
477
+ <div class="fragment"><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> *z3CondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(cond);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3CondExpr &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span> (z3CondExpr-&gt;getExpr().num_args() == 1 &amp;&amp; <a class="code" href="classSVF_1_1Z3Manager.html#a869828207971498df1fd7c9f29d3e999">isNegCond</a>(z3CondExpr)) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; support.set(z3CondExpr-&gt;getExpr().id());</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span>;</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">if</span> (z3CondExpr-&gt;getExpr().num_args() == 0)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> (!z3CondExpr-&gt;getExpr().is_true() &amp;&amp; !z3CondExpr-&gt;getExpr().is_false())</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; support.set(z3CondExpr-&gt;getExpr().id());</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; z3CondExpr-&gt;getExpr().num_args(); ++i) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = z3CondExpr-&gt;getExpr().arg(i);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#aa6a78fc2f0a3ed9957230703fb8d730d">extractSubConds</a>(<a class="code" href="classSVF_1_1Z3Manager.html#aa8ecb34cf54a5defb48747b1278b4764">getCond</a>(expr.id()), support);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div><div class="ttc" id="classSVF_1_1Z3Manager_html_a869828207971498df1fd7c9f29d3e999"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a869828207971498df1fd7c9f29d3e999">SVF::Z3Manager::isNegCond</a></div><div class="ttdeci">bool isNegCond(const CondExpr *cond) const override</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00300">Conditions.h:300</a></div></div>
478
+ <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>
479
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_aa6a78fc2f0a3ed9957230703fb8d730d"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#aa6a78fc2f0a3ed9957230703fb8d730d">SVF::Z3Manager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const CondExpr *f, NodeBS &amp;support) const override</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00162">Conditions.cpp:162</a></div></div>
480
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
481
+ <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#l00077">SVFBasicTypes.h:77</a></div></div>
482
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_aa8ecb34cf54a5defb48747b1278b4764"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#aa8ecb34cf54a5defb48747b1278b4764">SVF::Z3Manager::getCond</a></div><div class="ttdeci">CondExpr * getCond(u32_t i) const override</div><div class="ttdoc">Given an id, get its condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00270">Conditions.h:270</a></div></div>
483
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
484
+ </div><!-- fragment -->
485
+ </div>
486
+ </div>
487
+ <a id="aa8ecb34cf54a5defb48747b1278b4764"></a>
488
+ <h2 class="memtitle"><span class="permalink"><a href="#aa8ecb34cf54a5defb48747b1278b4764">&#9670;&nbsp;</a></span>getCond()</h2>
489
+
490
+ <div class="memitem">
491
+ <div class="memproto">
492
+ <table class="mlabels">
493
+ <tr>
494
+ <td class="mlabels-left">
495
+ <table class="memname">
496
+ <tr>
497
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>* SVF::Z3Manager::getCond </td>
498
+ <td>(</td>
499
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td>
500
+ <td class="paramname"><em>i</em></td><td>)</td>
501
+ <td> const</td>
502
+ </tr>
503
+ </table>
504
+ </td>
505
+ <td class="mlabels-right">
506
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
507
+ </tr>
508
+ </table>
509
+ </div><div class="memdoc">
510
+
511
+ <p>Given an id, get its condition. </p>
512
+
513
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#ad0273f830c9a6791aea55bfbdebf1138">SVF::CondManager</a>.</p>
514
+
515
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00270">270</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
516
+ <div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.find(i);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;condition not found!&quot;</span>);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><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>
517
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a72e5e03058e98c4f511ce2bb180f89cf"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">SVF::Z3Manager::idToCondExprMap</a></div><div class="ttdeci">IDToCondExprMap idToCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00251">Conditions.h:251</a></div></div>
518
+ </div><!-- fragment -->
519
+ </div>
520
+ </div>
521
+ <a id="a5143c47868ea644735f34ca95400ee42"></a>
522
+ <h2 class="memtitle"><span class="permalink"><a href="#a5143c47868ea644735f34ca95400ee42">&#9670;&nbsp;</a></span>getCondNumber()</h2>
523
+
524
+ <div class="memitem">
525
+ <div class="memproto">
526
+ <table class="mlabels">
527
+ <tr>
528
+ <td class="mlabels-left">
529
+ <table class="memname">
530
+ <tr>
531
+ <td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::Z3Manager::getCondNumber </td>
532
+ <td>(</td>
533
+ <td class="paramname"></td><td>)</td>
534
+ <td></td>
535
+ </tr>
536
+ </table>
537
+ </td>
538
+ <td class="mlabels-right">
539
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
540
+ </tr>
541
+ </table>
542
+ </div><div class="memdoc">
543
+
544
+ <p>Return the number of condition expressions. </p>
545
+
546
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a03d9a0d209505631f6d9e500d9c6bde3">SVF::CondManager</a>.</p>
547
+
548
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00262">262</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
549
+ <div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.get_model().size();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="ttc" id="classSVF_1_1Z3Manager_html_ac6fe9310046274759c45c1435fcc85c6"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">SVF::Z3Manager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00253">Conditions.h:253</a></div></div>
550
+ </div><!-- fragment -->
551
+ </div>
552
+ </div>
553
+ <a id="aca945ffd7a479fcf4de413a1ddcbf15a"></a>
554
+ <h2 class="memtitle"><span class="permalink"><a href="#aca945ffd7a479fcf4de413a1ddcbf15a">&#9670;&nbsp;</a></span>getMemUsage()</h2>
555
+
556
+ <div class="memitem">
557
+ <div class="memproto">
558
+ <table class="mlabels">
559
+ <tr>
560
+ <td class="mlabels-left">
561
+ <table class="memname">
562
+ <tr>
563
+ <td class="memname">std::string SVF::Z3Manager::getMemUsage </td>
564
+ <td>(</td>
565
+ <td class="paramname"></td><td>)</td>
566
+ <td></td>
567
+ </tr>
568
+ </table>
569
+ </td>
570
+ <td class="mlabels-right">
571
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
572
+ </tr>
573
+ </table>
574
+ </div><div class="memdoc">
575
+
576
+ <p>Return memory usage for this condition manager. </p>
577
+
578
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a9d1f2e6ef92ee120c7f26d98b1389b04">SVF::CondManager</a>.</p>
579
+
580
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00310">310</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
581
+ <div class="fragment"><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div></div><!-- fragment -->
582
+ </div>
583
+ </div>
584
+ <a id="a747edc9290575156f1edd50be043617d"></a>
585
+ <h2 class="memtitle"><span class="permalink"><a href="#a747edc9290575156f1edd50be043617d">&#9670;&nbsp;</a></span>getOrAddZ3Cond()</h2>
586
+
587
+ <div class="memitem">
588
+ <div class="memproto">
589
+ <table class="memname">
590
+ <tr>
591
+ <td class="memname"><a class="el" href="classSVF_1_1Z3Expr.html">Z3Expr</a> * Z3Manager::getOrAddZ3Cond </td>
592
+ <td>(</td>
593
+ <td class="paramtype">const <a class="el" href="classSVF_1_1Z3Manager.html#aae5b5661f0a34771753648072d6ea20a">Z3Cond</a> &amp;&#160;</td>
594
+ <td class="paramname"><em>z3Cond</em></td><td>)</td>
595
+ <td></td>
596
+ </tr>
597
+ </table>
598
+ </div><div class="memdoc">
599
+
600
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00062">62</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
601
+ <div class="fragment"><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="keyword">auto</span> it = <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.find(z3Cond.id());</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.end()) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *z3CondExpr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>(z3Cond);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">idToCondExprMap</a>.emplace(z3Cond.id(), z3CondExpr).first-&gt;second;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
602
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a72e5e03058e98c4f511ce2bb180f89cf"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a72e5e03058e98c4f511ce2bb180f89cf">SVF::Z3Manager::idToCondExprMap</a></div><div class="ttdeci">IDToCondExprMap idToCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00251">Conditions.h:251</a></div></div>
603
+ </div><!-- fragment -->
604
+ </div>
605
+ </div>
606
+ <a id="a34d8f9fc93bb82a8916ae45534ef5941"></a>
607
+ <h2 class="memtitle"><span class="permalink"><a href="#a34d8f9fc93bb82a8916ae45534ef5941">&#9670;&nbsp;</a></span>isEquivalentBranchCond()</h2>
608
+
609
+ <div class="memitem">
610
+ <div class="memproto">
611
+ <table class="mlabels">
612
+ <tr>
613
+ <td class="mlabels-left">
614
+ <table class="memname">
615
+ <tr>
616
+ <td class="memname">bool Z3Manager::isEquivalentBranchCond </td>
617
+ <td>(</td>
618
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
619
+ <td class="paramname"><em>lhs</em>, </td>
620
+ </tr>
621
+ <tr>
622
+ <td class="paramkey"></td>
623
+ <td></td>
624
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
625
+ <td class="paramname"><em>rhs</em>&#160;</td>
626
+ </tr>
627
+ <tr>
628
+ <td></td>
629
+ <td>)</td>
630
+ <td></td><td></td>
631
+ </tr>
632
+ </table>
633
+ </td>
634
+ <td class="mlabels-right">
635
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
636
+ </tr>
637
+ </table>
638
+ </div><div class="memdoc">
639
+
640
+ <p>Whether lhs and rhs are equivalent branch conditions. </p>
641
+
642
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aa20839631502b975590754e146242175">SVF::CondManager</a>.</p>
643
+
644
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00085">85</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
645
+ <div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.push();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *z3lhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(lhs);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *z3rhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(rhs);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3lhs &amp;&amp; z3rhs &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.add(z3lhs-&gt;<a class="code" href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">getExpr</a>() != z3rhs-&gt;getExpr());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; z3::check_result res = <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.check();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.pop();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> res == z3::unsat;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><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>
646
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
647
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a167a586980be31f4f54884e88f972a04"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const Z3Cond &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00075">Conditions.h:75</a></div></div>
648
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_ac6fe9310046274759c45c1435fcc85c6"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">SVF::Z3Manager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00253">Conditions.h:253</a></div></div>
649
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
650
+ </div><!-- fragment -->
651
+ </div>
652
+ </div>
653
+ <a id="a869828207971498df1fd7c9f29d3e999"></a>
654
+ <h2 class="memtitle"><span class="permalink"><a href="#a869828207971498df1fd7c9f29d3e999">&#9670;&nbsp;</a></span>isNegCond()</h2>
655
+
656
+ <div class="memitem">
657
+ <div class="memproto">
658
+ <table class="mlabels">
659
+ <tr>
660
+ <td class="mlabels-left">
661
+ <table class="memname">
662
+ <tr>
663
+ <td class="memname">bool SVF::Z3Manager::isNegCond </td>
664
+ <td>(</td>
665
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
666
+ <td class="paramname"><em>cond</em></td><td>)</td>
667
+ <td> const</td>
668
+ </tr>
669
+ </table>
670
+ </td>
671
+ <td class="mlabels-right">
672
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
673
+ </tr>
674
+ </table>
675
+ </div><div class="memdoc">
676
+
677
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a1007afa25f9a95c5d12c58852ef74686">SVF::CondManager</a>.</p>
678
+
679
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00300">300</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
680
+ <div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">const</span> Z3Expr *z3CondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;Z3Expr&gt;(cond);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3CondExpr &amp;&amp; <span class="stringliteral">&quot;not z3 condition.&quot;</span>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Manager.html#abd4a010660942227d7db81533e80b2c3">negConds</a>.test(z3CondExpr-&gt;getId());</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><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>
681
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_abd4a010660942227d7db81533e80b2c3"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#abd4a010660942227d7db81533e80b2c3">SVF::Z3Manager::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00254">Conditions.h:254</a></div></div>
682
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
683
+ </div><!-- fragment -->
684
+ </div>
685
+ </div>
686
+ <a id="a98916f1ae12b8c2bb98231b19c94d928"></a>
687
+ <h2 class="memtitle"><span class="permalink"><a href="#a98916f1ae12b8c2bb98231b19c94d928">&#9670;&nbsp;</a></span>isSatisfiable()</h2>
688
+
689
+ <div class="memitem">
690
+ <div class="memproto">
691
+ <table class="mlabels">
692
+ <tr>
693
+ <td class="mlabels-left">
694
+ <table class="memname">
695
+ <tr>
696
+ <td class="memname">bool Z3Manager::isSatisfiable </td>
697
+ <td>(</td>
698
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
699
+ <td class="paramname"><em>cond</em></td><td>)</td>
700
+ <td></td>
701
+ </tr>
702
+ </table>
703
+ </td>
704
+ <td class="mlabels-right">
705
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
706
+ </tr>
707
+ </table>
708
+ </div><div class="memdoc">
709
+ <p>Whether the condition is satisfiable </p>
710
+
711
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a5ef85ea09500adc006a25c1eb3426831">SVF::CondManager</a>.</p>
712
+
713
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00181">181</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
714
+ <div class="fragment"><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.push();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *z3CondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(cond);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3CondExpr &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.add(z3CondExpr-&gt;<a class="code" href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">getExpr</a>());</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; z3::check_result <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.check();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.pop();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span> (result == z3::sat || result == z3::unknown)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><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>
715
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
716
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a167a586980be31f4f54884e88f972a04"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const Z3Cond &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00075">Conditions.h:75</a></div></div>
717
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_ac6fe9310046274759c45c1435fcc85c6"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">SVF::Z3Manager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00253">Conditions.h:253</a></div></div>
718
+ <div class="ttc" id="cuddInt_8c_html_a8b2e13c78efca330f06b6ddcd7464b41"><div class="ttname"><a href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a></div><div class="ttdeci">static int result</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l07466">cuddInt.c:7466</a></div></div>
719
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
720
+ </div><!-- fragment -->
721
+ </div>
722
+ </div>
723
+ <a id="a5fcfc5dcdd77d9860aaaff9cd9f43c55"></a>
724
+ <h2 class="memtitle"><span class="permalink"><a href="#a5fcfc5dcdd77d9860aaaff9cd9f43c55">&#9670;&nbsp;</a></span>NEG()</h2>
725
+
726
+ <div class="memitem">
727
+ <div class="memproto">
728
+ <table class="mlabels">
729
+ <tr>
730
+ <td class="mlabels-left">
731
+ <table class="memname">
732
+ <tr>
733
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * Z3Manager::NEG </td>
734
+ <td>(</td>
735
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
736
+ <td class="paramname"><em>lhs</em></td><td>)</td>
737
+ <td></td>
738
+ </tr>
739
+ </table>
740
+ </td>
741
+ <td class="mlabels-right">
742
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
743
+ </tr>
744
+ </table>
745
+ </div><div class="memdoc">
746
+
747
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aecb97f6eb6ba2943b2eaa7a8212a9ba6">SVF::CondManager</a>.</p>
748
+
749
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00130">130</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
750
+ <div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">auto</span> *z3lhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(lhs);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3lhs &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (z3lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z3lhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = !z3lhs-&gt;getExpr();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">getOrAddZ3Cond</a>(expr);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><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>
751
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
752
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
753
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
754
+ <div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
755
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a747edc9290575156f1edd50be043617d"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">SVF::Z3Manager::getOrAddZ3Cond</a></div><div class="ttdeci">Z3Expr * getOrAddZ3Cond(const Z3Cond &amp;z3Cond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00062">Conditions.cpp:62</a></div></div>
756
+ </div><!-- fragment -->
757
+ </div>
758
+ </div>
759
+ <a id="af50dd899af45580176376d2bb7cf6243"></a>
760
+ <h2 class="memtitle"><span class="permalink"><a href="#af50dd899af45580176376d2bb7cf6243">&#9670;&nbsp;</a></span>OR()</h2>
761
+
762
+ <div class="memitem">
763
+ <div class="memproto">
764
+ <table class="mlabels">
765
+ <tr>
766
+ <td class="mlabels-left">
767
+ <table class="memname">
768
+ <tr>
769
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * Z3Manager::OR </td>
770
+ <td>(</td>
771
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
772
+ <td class="paramname"><em>lhs</em>, </td>
773
+ </tr>
774
+ <tr>
775
+ <td class="paramkey"></td>
776
+ <td></td>
777
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
778
+ <td class="paramname"><em>rhs</em>&#160;</td>
779
+ </tr>
780
+ <tr>
781
+ <td></td>
782
+ <td>)</td>
783
+ <td></td><td></td>
784
+ </tr>
785
+ </table>
786
+ </td>
787
+ <td class="mlabels-right">
788
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
789
+ </tr>
790
+ </table>
791
+ </div><div class="memdoc">
792
+
793
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aa6dcd9cb78deef05b6c4d4e9b6b0a16b">SVF::CondManager</a>.</p>
794
+
795
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00114">114</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
796
+ <div class="fragment"><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">auto</span> *z3lhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(lhs);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">auto</span> *z3rhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(rhs);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3lhs &amp;&amp; z3rhs &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span> (z3lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>() || z3rhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z3lhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> z3rhs;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (z3rhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> z3lhs;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = z3lhs-&gt;getExpr() || z3rhs-&gt;getExpr();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">getOrAddZ3Cond</a>(expr);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div><div class="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>
797
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
798
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
799
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
800
+ <div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
801
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_a747edc9290575156f1edd50be043617d"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#a747edc9290575156f1edd50be043617d">SVF::Z3Manager::getOrAddZ3Cond</a></div><div class="ttdeci">Z3Expr * getOrAddZ3Cond(const Z3Cond &amp;z3Cond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00062">Conditions.cpp:62</a></div></div>
802
+ </div><!-- fragment -->
803
+ </div>
804
+ </div>
805
+ <a id="a667818d7f30d6d6763e5a6a83aeb242a"></a>
806
+ <h2 class="memtitle"><span class="permalink"><a href="#a667818d7f30d6d6763e5a6a83aeb242a">&#9670;&nbsp;</a></span>printDbg()</h2>
807
+
808
+ <div class="memitem">
809
+ <div class="memproto">
810
+ <table class="mlabels">
811
+ <tr>
812
+ <td class="mlabels-left">
813
+ <table class="memname">
814
+ <tr>
815
+ <td class="memname">void Z3Manager::printDbg </td>
816
+ <td>(</td>
817
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
818
+ <td class="paramname"><em>e</em></td><td>)</td>
819
+ <td></td>
820
+ </tr>
821
+ </table>
822
+ </td>
823
+ <td class="mlabels-right">
824
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
825
+ </tr>
826
+ </table>
827
+ </div><div class="memdoc">
828
+
829
+ <p>Print out one particular expression. </p>
830
+ <p>Print out one particular expression </p>
831
+
832
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00231">231</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
833
+ <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a> *z3CondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1Z3Expr.html">Z3Expr</a>&gt;(e);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3CondExpr &amp;&amp; <span class="stringliteral">&quot;not z3 condition?&quot;</span>);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; z3CondExpr-&gt;<a class="code" href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">getExpr</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div><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>
834
+ <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="Conditions_8h_source.html#l00064">Conditions.h:64</a></div></div>
835
+ <div class="ttc" id="classSVF_1_1Z3Expr_html_a167a586980be31f4f54884e88f972a04"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#a167a586980be31f4f54884e88f972a04">SVF::Z3Expr::getExpr</a></div><div class="ttdeci">const Z3Cond &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00075">Conditions.h:75</a></div></div>
836
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
837
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
838
+ </div><!-- fragment -->
839
+ </div>
840
+ </div>
841
+ <a id="af9655650f2ddfba9418fc1762794a730"></a>
842
+ <h2 class="memtitle"><span class="permalink"><a href="#af9655650f2ddfba9418fc1762794a730">&#9670;&nbsp;</a></span>printModel()</h2>
843
+
844
+ <div class="memitem">
845
+ <div class="memproto">
846
+ <table class="memname">
847
+ <tr>
848
+ <td class="memname">void Z3Manager::printModel </td>
849
+ <td>(</td>
850
+ <td class="paramname"></td><td>)</td>
851
+ <td></td>
852
+ </tr>
853
+ </table>
854
+ </div><div class="memdoc">
855
+
856
+ <p>Dump out all expressions. </p>
857
+ <p>Print the expressions in this model </p>
858
+
859
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00219">219</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
860
+ <div class="fragment"><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.check() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; z3::model m = <a class="code" href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">sol</a>.get_model();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; m.size(); i++) {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; z3::func_decl v = m[i];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() &lt;&lt; v.name() &lt;&lt; <span class="stringliteral">&quot; = &quot;</span> &lt;&lt; m.get_const_interp(v) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><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#l00077">SVFBasicTypes.h:77</a></div></div>
861
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_ac6fe9310046274759c45c1435fcc85c6"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#ac6fe9310046274759c45c1435fcc85c6">SVF::Z3Manager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00253">Conditions.h:253</a></div></div>
862
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
863
+ </div><!-- fragment -->
864
+ </div>
865
+ </div>
866
+ <a id="a7ec31e7f5d856ac7de8416573aef396f"></a>
867
+ <h2 class="memtitle"><span class="permalink"><a href="#a7ec31e7f5d856ac7de8416573aef396f">&#9670;&nbsp;</a></span>setNegCondInst()</h2>
868
+
869
+ <div class="memitem">
870
+ <div class="memproto">
871
+ <table class="mlabels">
872
+ <tr>
873
+ <td class="mlabels-left">
874
+ <table class="memname">
875
+ <tr>
876
+ <td class="memname">void SVF::Z3Manager::setNegCondInst </td>
877
+ <td>(</td>
878
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
879
+ <td class="paramname"><em>cond</em>, </td>
880
+ </tr>
881
+ <tr>
882
+ <td class="paramkey"></td>
883
+ <td></td>
884
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
885
+ <td class="paramname"><em>inst</em>&#160;</td>
886
+ </tr>
887
+ <tr>
888
+ <td></td>
889
+ <td>)</td>
890
+ <td></td><td></td>
891
+ </tr>
892
+ </table>
893
+ </td>
894
+ <td class="mlabels-right">
895
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
896
+ </tr>
897
+ </table>
898
+ </div><div class="memdoc">
899
+
900
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00293">293</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
901
+ <div class="fragment"><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">const</span> Z3Expr *z3CondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;Z3Expr&gt;(cond);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(z3CondExpr &amp;&amp; <span class="stringliteral">&quot;not z3 condition.&quot;</span>);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="classSVF_1_1Z3Manager.html#abd4a010660942227d7db81533e80b2c3">negConds</a>.set(z3CondExpr-&gt;getId());</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><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>
902
+ <div class="ttc" id="classSVF_1_1CondManager_html_a1fbf7dd446309e13671d838c91da26bf"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">SVF::CondManager::setCondInst</a></div><div class="ttdeci">void setCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00212">Conditions.h:212</a></div></div>
903
+ <div class="ttc" id="classSVF_1_1Z3Manager_html_abd4a010660942227d7db81533e80b2c3"><div class="ttname"><a href="classSVF_1_1Z3Manager.html#abd4a010660942227d7db81533e80b2c3">SVF::Z3Manager::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00254">Conditions.h:254</a></div></div>
904
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
905
+ </div><!-- fragment -->
906
+ </div>
907
+ </div>
908
+ <a id="aa0fd8e460f4d89155da3487c0350f972"></a>
909
+ <h2 class="memtitle"><span class="permalink"><a href="#aa0fd8e460f4d89155da3487c0350f972">&#9670;&nbsp;</a></span>simplify()</h2>
910
+
911
+ <div class="memitem">
912
+ <div class="memproto">
913
+ <table class="memname">
914
+ <tr>
915
+ <td class="memname">z3::expr Z3Manager::simplify </td>
916
+ <td>(</td>
917
+ <td class="paramtype">const z3::expr &amp;&#160;</td>
918
+ <td class="paramname"><em>expr</em></td><td>)</td>
919
+ <td> const</td>
920
+ </tr>
921
+ </table>
922
+ </div><div class="memdoc">
923
+
924
+ <p>Preprocess the condition, e.g., Compressing using And-Inverter-Graph. </p>
925
+ <p>Preprocess the condition, e.g., Compressing using And-Inverter-Graph, Gaussian Elimination </p>
926
+
927
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00198">198</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
928
+ <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; z3::goal g(expr.ctx());</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; z3::tactic qe =</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; z3::tactic(expr.ctx(), <span class="stringliteral">&quot;aig&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; g.add(expr);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; z3::apply_result r = qe(g);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; z3::expr res(expr.ctx().bool_val(<span class="keyword">false</span>));</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; r.size(); ++i) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (res.is_false()) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; res = r[i].as_expr();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; res = res || r[i].as_expr();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> res;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><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#l00077">SVFBasicTypes.h:77</a></div></div>
929
+ </div><!-- fragment -->
930
+ </div>
931
+ </div>
932
+ <h2 class="groupheader">Friends And Related Function Documentation</h2>
933
+ <a id="a243595beea0081ef5ff38dec8c150651"></a>
934
+ <h2 class="memtitle"><span class="permalink"><a href="#a243595beea0081ef5ff38dec8c150651">&#9670;&nbsp;</a></span>CondManager</h2>
935
+
936
+ <div class="memitem">
937
+ <div class="memproto">
938
+ <table class="mlabels">
939
+ <tr>
940
+ <td class="mlabels-left">
941
+ <table class="memname">
942
+ <tr>
943
+ <td class="memname">friend class <a class="el" href="classSVF_1_1CondManager.html">CondManager</a></td>
944
+ </tr>
945
+ </table>
946
+ </td>
947
+ <td class="mlabels-right">
948
+ <span class="mlabels"><span class="mlabel">friend</span></span> </td>
949
+ </tr>
950
+ </table>
951
+ </div><div class="memdoc">
952
+
953
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00241">241</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
954
+
955
+ </div>
956
+ </div>
957
+ <h2 class="groupheader">Member Data Documentation</h2>
958
+ <a id="ac5968fcdba98bd405509b8abd1997cbc"></a>
959
+ <h2 class="memtitle"><span class="permalink"><a href="#ac5968fcdba98bd405509b8abd1997cbc">&#9670;&nbsp;</a></span>cxt</h2>
960
+
961
+ <div class="memitem">
962
+ <div class="memproto">
963
+ <table class="mlabels">
964
+ <tr>
965
+ <td class="mlabels-left">
966
+ <table class="memname">
967
+ <tr>
968
+ <td class="memname">z3::context SVF::Z3Manager::cxt</td>
969
+ </tr>
970
+ </table>
971
+ </td>
972
+ <td class="mlabels-right">
973
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
974
+ </tr>
975
+ </table>
976
+ </div><div class="memdoc">
977
+
978
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00252">252</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
979
+
980
+ </div>
981
+ </div>
982
+ <a id="a72e5e03058e98c4f511ce2bb180f89cf"></a>
983
+ <h2 class="memtitle"><span class="permalink"><a href="#a72e5e03058e98c4f511ce2bb180f89cf">&#9670;&nbsp;</a></span>idToCondExprMap</h2>
984
+
985
+ <div class="memitem">
986
+ <div class="memproto">
987
+ <table class="mlabels">
988
+ <tr>
989
+ <td class="mlabels-left">
990
+ <table class="memname">
991
+ <tr>
992
+ <td class="memname"><a class="el" href="classSVF_1_1Z3Manager.html#aae29d2331b696987a2ca5c349bb8315b">IDToCondExprMap</a> SVF::Z3Manager::idToCondExprMap</td>
993
+ </tr>
994
+ </table>
995
+ </td>
996
+ <td class="mlabels-right">
997
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
998
+ </tr>
999
+ </table>
1000
+ </div><div class="memdoc">
1001
+
1002
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00251">251</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1003
+
1004
+ </div>
1005
+ </div>
1006
+ <a id="abd4a010660942227d7db81533e80b2c3"></a>
1007
+ <h2 class="memtitle"><span class="permalink"><a href="#abd4a010660942227d7db81533e80b2c3">&#9670;&nbsp;</a></span>negConds</h2>
1008
+
1009
+ <div class="memitem">
1010
+ <div class="memproto">
1011
+ <table class="mlabels">
1012
+ <tr>
1013
+ <td class="mlabels-left">
1014
+ <table class="memname">
1015
+ <tr>
1016
+ <td class="memname"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> SVF::Z3Manager::negConds</td>
1017
+ </tr>
1018
+ </table>
1019
+ </td>
1020
+ <td class="mlabels-right">
1021
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1022
+ </tr>
1023
+ </table>
1024
+ </div><div class="memdoc">
1025
+
1026
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00254">254</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1027
+
1028
+ </div>
1029
+ </div>
1030
+ <a id="ac6fe9310046274759c45c1435fcc85c6"></a>
1031
+ <h2 class="memtitle"><span class="permalink"><a href="#ac6fe9310046274759c45c1435fcc85c6">&#9670;&nbsp;</a></span>sol</h2>
1032
+
1033
+ <div class="memitem">
1034
+ <div class="memproto">
1035
+ <table class="mlabels">
1036
+ <tr>
1037
+ <td class="mlabels-left">
1038
+ <table class="memname">
1039
+ <tr>
1040
+ <td class="memname">z3::solver SVF::Z3Manager::sol</td>
1041
+ </tr>
1042
+ </table>
1043
+ </td>
1044
+ <td class="mlabels-right">
1045
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1046
+ </tr>
1047
+ </table>
1048
+ </div><div class="memdoc">
1049
+
1050
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00253">253</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1051
+
1052
+ </div>
1053
+ </div>
1054
+ <hr/>The documentation for this class was generated from the following files:<ul>
1055
+ <li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="Conditions_8h_source.html">Conditions.h</a></li>
1056
+ <li>/home/runner/work/SVF/SVF/lib/Util/<a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a></li>
1057
+ </ul>
1058
+ </div><!-- contents -->
1059
+ <!-- start footer part -->
1060
+ <hr class="footer"/><address class="footer"><small>
1061
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
1062
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
1063
+ </a> 1.8.13
1064
+ </small></address>
1065
+ </body>
1066
+ </html>