svf-tools 1.0.322 → 1.0.326

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 (399) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +22 -20
  6. package/SVF-doxygen/html/html/Conditions_8h_source.html +12 -9
  7. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +13 -12
  8. package/SVF-doxygen/html/html/ConsG_8h_source.html +15 -15
  9. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  16. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  21. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  22. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  23. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
  27. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/IRGraph_8cpp.html +1 -0
  30. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -18
  31. package/SVF-doxygen/html/html/IRGraph_8h_source.html +13 -13
  32. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +7 -7
  33. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  34. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
  35. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +21 -21
  36. package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
  37. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +7 -7
  38. package/SVF-doxygen/html/html/MemSSA_8h_source.html +5 -5
  39. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
  41. package/SVF-doxygen/html/html/Options_8h_source.html +2 -1
  42. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  43. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +7 -7
  44. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -22
  45. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
  47. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
  48. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  49. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
  51. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  52. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
  56. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +61 -59
  57. package/SVF-doxygen/html/html/SVFG_8h_source.html +20 -20
  58. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
  59. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +33 -33
  60. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +56 -56
  61. package/SVF-doxygen/html/html/SVFIR_8h_source.html +147 -148
  62. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +8 -8
  63. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +133 -132
  64. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +14 -14
  65. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  66. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +6 -6
  70. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  71. package/SVF-doxygen/html/html/VFG_8cpp_source.html +39 -39
  72. package/SVF-doxygen/html/html/VFG_8h_source.html +26 -26
  73. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  74. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  75. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  77. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  78. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +20 -19
  80. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +18 -16
  81. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  82. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +4 -4
  83. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +34 -34
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +4 -4
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +12 -12
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +4 -4
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +8 -8
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +4 -4
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +8 -8
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +4 -4
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
  92. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +4 -4
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +8 -8
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +4 -4
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -11
  96. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +8 -8
  97. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +4 -4
  98. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -8
  99. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +4 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +25 -25
  101. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +26 -25
  102. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +24 -22
  103. package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +22 -22
  104. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +20 -19
  105. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +33 -31
  106. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  107. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +8 -8
  108. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +6 -6
  109. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  110. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +20 -19
  111. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -22
  112. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +8 -8
  113. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +24 -24
  114. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +8 -8
  115. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +24 -24
  116. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +8 -8
  117. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +24 -24
  118. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +28 -27
  119. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +41 -39
  120. package/SVF-doxygen/html/html/classSVF_1_1CondManager-members.html +10 -7
  121. package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +144 -43
  122. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +4 -4
  123. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +10 -10
  124. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +5 -5
  125. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +46 -46
  126. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +4 -4
  127. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -17
  128. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +20 -19
  129. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +18 -16
  130. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  132. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -10
  133. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +13 -13
  134. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +9 -9
  135. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +8 -8
  137. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +24 -24
  138. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +8 -8
  139. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +24 -24
  140. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +8 -8
  141. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +24 -24
  142. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +4 -4
  143. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +8 -8
  144. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +4 -4
  146. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +16 -16
  147. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +4 -4
  148. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +27 -27
  149. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +7 -7
  150. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +8 -8
  151. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +24 -24
  152. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
  154. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +6 -6
  155. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +6 -6
  156. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +6 -6
  157. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +6 -6
  158. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +8 -8
  160. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +24 -24
  161. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +20 -19
  162. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +18 -16
  163. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +8 -8
  164. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +28 -28
  165. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +6 -6
  166. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +6 -6
  167. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +6 -6
  168. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +22 -22
  169. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
  170. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +8 -8
  172. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +54 -54
  173. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  174. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +6 -6
  175. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +6 -6
  176. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +14 -14
  177. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +9 -9
  178. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +6 -6
  180. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +14 -14
  182. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +9 -9
  183. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  184. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
  185. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +7 -7
  186. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +23 -22
  187. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +18 -16
  188. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +17 -17
  189. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +92 -92
  190. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
  191. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  192. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  193. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
  194. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +18 -18
  195. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +41 -41
  196. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +24 -23
  197. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +33 -31
  198. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +24 -23
  199. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +25 -23
  200. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +8 -8
  201. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +24 -24
  202. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +5 -5
  203. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +13 -13
  204. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +21 -20
  205. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -0
  206. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +16 -16
  207. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +7 -7
  208. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +13 -12
  209. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +102 -70
  210. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +25 -24
  211. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +23 -21
  212. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +4 -4
  213. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +47 -47
  214. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +11 -10
  215. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +7 -7
  216. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +6 -6
  217. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +20 -19
  219. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -22
  220. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +24 -24
  222. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +47 -47
  223. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +74 -74
  224. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  225. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +59 -59
  226. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +19 -19
  227. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +131 -132
  228. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +732 -750
  229. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +3 -3
  230. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +86 -86
  231. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +23 -22
  232. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +50 -32
  233. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +8 -8
  234. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +69 -69
  235. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +10 -10
  236. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  237. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +4 -4
  238. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +8 -8
  239. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +20 -19
  240. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +18 -16
  241. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +23 -22
  242. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -16
  243. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +23 -22
  244. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  247. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +4 -4
  248. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +10 -10
  249. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +9 -9
  250. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +24 -23
  251. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +28 -26
  252. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +33 -33
  253. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +83 -83
  254. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +8 -8
  255. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
  256. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +8 -8
  257. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +24 -24
  258. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +23 -22
  259. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +20 -18
  260. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +4 -4
  261. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +17 -17
  262. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  263. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  264. package/SVF-doxygen/html/html/functions_a.html +29 -29
  265. package/SVF-doxygen/html/html/functions_c.html +25 -30
  266. package/SVF-doxygen/html/html/functions_f.html +2 -2
  267. package/SVF-doxygen/html/html/functions_func.html +29 -29
  268. package/SVF-doxygen/html/html/functions_func_g.html +59 -57
  269. package/SVF-doxygen/html/html/functions_func_h.html +6 -6
  270. package/SVF-doxygen/html/html/functions_func_i.html +8 -4
  271. package/SVF-doxygen/html/html/functions_func_s.html +8 -5
  272. package/SVF-doxygen/html/html/functions_g.html +74 -72
  273. package/SVF-doxygen/html/html/functions_h.html +6 -6
  274. package/SVF-doxygen/html/html/functions_i.html +20 -16
  275. package/SVF-doxygen/html/html/functions_k.html +9 -0
  276. package/SVF-doxygen/html/html/functions_l.html +8 -8
  277. package/SVF-doxygen/html/html/functions_n.html +3 -0
  278. package/SVF-doxygen/html/html/functions_o.html +12 -15
  279. package/SVF-doxygen/html/html/functions_p.html +20 -35
  280. package/SVF-doxygen/html/html/functions_s.html +35 -13
  281. package/SVF-doxygen/html/html/functions_t.html +5 -7
  282. package/SVF-doxygen/html/html/functions_type_c.html +1 -4
  283. package/SVF-doxygen/html/html/functions_type_f.html +2 -2
  284. package/SVF-doxygen/html/html/functions_type_g.html +2 -2
  285. package/SVF-doxygen/html/html/functions_type_i.html +3 -3
  286. package/SVF-doxygen/html/html/functions_type_k.html +3 -0
  287. package/SVF-doxygen/html/html/functions_type_p.html +2 -18
  288. package/SVF-doxygen/html/html/functions_type_s.html +16 -0
  289. package/SVF-doxygen/html/html/functions_type_v.html +1 -1
  290. package/SVF-doxygen/html/html/functions_v.html +4 -4
  291. package/SVF-doxygen/html/html/functions_vars_g.html +7 -7
  292. package/SVF-doxygen/html/html/functions_vars_i.html +7 -7
  293. package/SVF-doxygen/html/html/functions_vars_k.html +6 -0
  294. package/SVF-doxygen/html/html/functions_vars_n.html +3 -0
  295. package/SVF-doxygen/html/html/functions_vars_o.html +1 -2
  296. package/SVF-doxygen/html/html/functions_vars_p.html +4 -7
  297. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  298. package/SVF-doxygen/html/html/functions_w.html +9 -5
  299. package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
  300. package/SVF-doxygen/html/html/search/all_1.js +14 -14
  301. package/SVF-doxygen/html/html/search/all_10.js +13 -18
  302. package/SVF-doxygen/html/html/search/all_13.js +10 -4
  303. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  304. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  305. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  306. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  307. package/SVF-doxygen/html/html/search/all_3.js +2 -3
  308. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  309. package/SVF-doxygen/html/html/search/all_7.js +29 -28
  310. package/SVF-doxygen/html/html/search/all_8.js +2 -2
  311. package/SVF-doxygen/html/html/search/all_9.js +4 -3
  312. package/SVF-doxygen/html/html/search/all_b.js +3 -0
  313. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  314. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  315. package/SVF-doxygen/html/html/search/all_e.js +4 -3
  316. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  317. package/SVF-doxygen/html/html/search/functions_0.js +14 -14
  318. package/SVF-doxygen/html/html/search/functions_10.js +1 -0
  319. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  320. package/SVF-doxygen/html/html/search/functions_6.js +25 -24
  321. package/SVF-doxygen/html/html/search/functions_7.js +2 -2
  322. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  323. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  324. package/SVF-doxygen/html/html/search/typedefs_11.js +4 -0
  325. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  326. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -2
  327. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  328. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  329. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  330. package/SVF-doxygen/html/html/search/typedefs_a.js +2 -1
  331. package/SVF-doxygen/html/html/search/typedefs_f.js +2 -6
  332. package/SVF-doxygen/html/html/search/variables_10.js +2 -3
  333. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  334. package/SVF-doxygen/html/html/search/variables_14.js +4 -4
  335. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  336. package/SVF-doxygen/html/html/search/variables_7.js +3 -3
  337. package/SVF-doxygen/html/html/search/variables_9.js +3 -3
  338. package/SVF-doxygen/html/html/search/variables_b.js +3 -1
  339. package/SVF-doxygen/html/html/search/variables_e.js +3 -2
  340. package/SVF-doxygen/html/html/search/variables_f.js +2 -2
  341. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +9 -9
  342. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  343. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +18 -18
  344. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
  345. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  346. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  347. package/include/DDA/ContextDDA.h +1 -1
  348. package/include/DDA/FlowDDA.h +1 -1
  349. package/include/Graphs/ConsG.h +10 -10
  350. package/include/Graphs/ICFGNode.h +3 -3
  351. package/include/Graphs/IRGraph.h +7 -7
  352. package/include/Graphs/VFG.h +4 -4
  353. package/include/MSSA/MemRegion.h +3 -3
  354. package/include/MSSA/MemSSA.h +1 -1
  355. package/include/MemoryModel/PointerAnalysis.h +8 -8
  356. package/include/MemoryModel/PointerAnalysisImpl.h +2 -2
  357. package/include/MemoryModel/SVFIR.h +66 -67
  358. package/include/MemoryModel/SVFStatements.h +30 -25
  359. package/include/MemoryModel/SVFVariables.h +32 -32
  360. package/include/SABER/PathCondAllocator.h +4 -0
  361. package/include/SVF-FE/SVFIRBuilder.h +15 -15
  362. package/include/Util/Conditions.h +10 -0
  363. package/include/Util/IRAnnotator.h +1 -1
  364. package/include/Util/Options.h +3 -1
  365. package/include/Util/TypeBasedHeapCloning.h +2 -2
  366. package/include/WPA/Andersen.h +1 -1
  367. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  368. package/lib/DDA/ContextDDA.cpp +2 -2
  369. package/lib/DDA/DDAClient.cpp +6 -6
  370. package/lib/DDA/DDAStat.cpp +1 -1
  371. package/lib/DDA/FlowDDA.cpp +2 -2
  372. package/lib/Graphs/ConsG.cpp +25 -24
  373. package/lib/Graphs/ICFG.cpp +4 -4
  374. package/lib/Graphs/IRGraph.cpp +12 -9
  375. package/lib/Graphs/SVFG.cpp +10 -8
  376. package/lib/Graphs/VFG.cpp +37 -37
  377. package/lib/MSSA/MemRegion.cpp +17 -17
  378. package/lib/MSSA/MemSSA.cpp +9 -9
  379. package/lib/MTA/MTAAnnotator.cpp +5 -5
  380. package/lib/MemoryModel/PAGBuilderFromFile.cpp +10 -10
  381. package/lib/MemoryModel/PointerAnalysisImpl.cpp +12 -12
  382. package/lib/MemoryModel/SVFIR.cpp +63 -63
  383. package/lib/SABER/LeakChecker.cpp +2 -2
  384. package/lib/SABER/ProgSlice.cpp +4 -1
  385. package/lib/SABER/SaberSVFGBuilder.cpp +3 -3
  386. package/lib/SVF-FE/Graph2Json.cpp +2 -2
  387. package/lib/SVF-FE/SVFIRBuilder.cpp +18 -18
  388. package/lib/Util/Conditions.cpp +5 -1
  389. package/lib/Util/Options.cpp +6 -0
  390. package/lib/Util/PTAStat.cpp +7 -7
  391. package/lib/Util/TypeBasedHeapCloning.cpp +3 -3
  392. package/lib/WPA/Andersen.cpp +13 -13
  393. package/lib/WPA/AndersenSFR.cpp +1 -1
  394. package/lib/WPA/AndersenStat.cpp +3 -3
  395. package/lib/WPA/FlowSensitive.cpp +6 -6
  396. package/lib/WPA/FlowSensitiveStat.cpp +2 -2
  397. package/lib/WPA/FlowSensitiveTBHC.cpp +5 -5
  398. package/lib/WPA/VersionedFlowSensitive.cpp +1 -1
  399. package/package.json +1 -1
@@ -143,6 +143,10 @@ Public Member Functions</h2></td></tr>
143
143
  <tr class="separator:a4fac6a918f1f6d09fe1a4ceac7c19428"><td class="memSeparator" colspan="2">&#160;</td></tr>
144
144
  <tr class="memitem:a1fbf7dd446309e13671d838c91da26bf"><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>
145
145
  <tr class="separator:a1fbf7dd446309e13671d838c91da26bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
146
+ <tr class="memitem:a049541fec44cac3401a0dc68ff2f0ac1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">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>
147
+ <tr class="separator:a049541fec44cac3401a0dc68ff2f0ac1"><td class="memSeparator" colspan="2">&#160;</td></tr>
148
+ <tr class="memitem:ad1de136dbd62c3b9a7447222bd0890fa"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">isNegCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) const</td></tr>
149
+ <tr class="separator:ad1de136dbd62c3b9a7447222bd0890fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
146
150
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
147
151
  <tr class="memitem:a4b88160366a7c7b2bf7e2ab632ed04c7"><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#a4b88160366a7c7b2bf7e2ab632ed04c7">AND</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs)</td></tr>
148
152
  <tr class="memdesc:a4b88160366a7c7b2bf7e2ab632ed04c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operations on conditions. <a href="#a4b88160366a7c7b2bf7e2ab632ed04c7">More...</a><br /></td></tr>
@@ -190,6 +194,8 @@ Private Attributes</h2></td></tr>
190
194
  <tr class="memitem:ac735eb27ed4328f97ced87494683f7f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BranchCondManager.html">BranchCondManager</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a></td></tr>
191
195
  <tr class="memdesc:ac735eb27ed4328f97ced87494683f7f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">branch condition manager <a href="#ac735eb27ed4328f97ced87494683f7f1">More...</a><br /></td></tr>
192
196
  <tr class="separator:ac735eb27ed4328f97ced87494683f7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
197
+ <tr class="memitem:aa5e6dbdb4c88941996f7865a2d3ca314"><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_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">negConds</a></td></tr>
198
+ <tr class="separator:aa5e6dbdb4c88941996f7865a2d3ca314"><td class="memSeparator" colspan="2">&#160;</td></tr>
193
199
  </table><table class="memberdecls">
194
200
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
195
201
  Static Private Attributes</h2></td></tr>
@@ -296,13 +302,13 @@ Static Private Attributes</h2></td></tr>
296
302
  <p>Constructor </p>
297
303
 
298
304
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00046">46</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
299
- <div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; : <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>(<a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">const</span> z3::expr &amp;trueExpr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_val(<span class="keyword">true</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(trueExpr, <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>());</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">const</span> z3::expr &amp;falseExpr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_val(<span class="keyword">false</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(falseExpr, <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>());</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</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#l00296">Conditions.h:296</a></div></div>
305
+ <div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; : <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>(<a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">const</span> z3::expr &amp;trueExpr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_val(<span class="keyword">true</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(trueExpr, <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>());</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">const</span> z3::expr &amp;falseExpr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_val(<span class="keyword">false</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(falseExpr, <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>());</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</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#l00305">Conditions.h:305</a></div></div>
300
306
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
301
- <div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00294">Conditions.h:294</a></div></div>
302
- <div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00293">Conditions.h:293</a></div></div>
303
- <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00300">Conditions.h:300</a></div></div>
307
+ <div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00303">Conditions.h:303</a></div></div>
308
+ <div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00302">Conditions.h:302</a></div></div>
309
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
304
310
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_a013eb66493beb2b1d004605c68894a95"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">SVF::BranchCondManager::getFalseCond</a></div><div class="ttdeci">BranchCond * getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00138">Conditions.h:138</a></div></div>
305
- <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#l00295">Conditions.h:295</a></div></div>
311
+ <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#l00304">Conditions.h:304</a></div></div>
306
312
  <div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &amp;e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
307
313
  </div><!-- fragment -->
308
314
  </div>
@@ -326,7 +332,7 @@ Static Private Attributes</h2></td></tr>
326
332
  <p>Destructor </p>
327
333
 
328
334
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00057">57</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
329
- <div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">delete</span> it.second;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00297">Conditions.h:297</a></div></div>
335
+ <div class="fragment"><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">delete</span> it.second;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
330
336
  </div><!-- fragment -->
331
337
  </div>
332
338
  </div>
@@ -362,8 +368,8 @@ Static Private Attributes</h2></td></tr>
362
368
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00134">134</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
363
369
  <div class="fragment"><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>() || rhs == <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#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *branchCond = <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a739f4206abf4f367dc796e9fd35d4d04">AND</a>(SVFUtil::dyn_cast&lt;BranchCondExpr&gt;(lhs)-&gt;getBranchCond(),</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; SVFUtil::dyn_cast&lt;BranchCondExpr&gt;(rhs)-&gt;getBranchCond());</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = lhs-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>() &amp;&amp; rhs-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(expr, branchCond);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_afb6c29587f01bf5b80878bae0850d2f6"><div class="ttname"><a href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00190">Conditions.h:190</a></div></div>
364
370
  <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#l00226">Conditions.h:226</a></div></div>
365
- <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00300">Conditions.h:300</a></div></div>
366
- <div class="ttc" id="classSVF_1_1BranchCondManager_html_a739f4206abf4f367dc796e9fd35d4d04"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a739f4206abf4f367dc796e9fd35d4d04">SVF::BranchCondManager::AND</a></div><div class="ttdeci">BranchCond * AND(BranchCond *lhs, BranchCond *rhs)</div><div class="ttdoc">Operations on conditions. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00256">Conditions.cpp:256</a></div></div>
371
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
372
+ <div class="ttc" id="classSVF_1_1BranchCondManager_html_a739f4206abf4f367dc796e9fd35d4d04"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a739f4206abf4f367dc796e9fd35d4d04">SVF::BranchCondManager::AND</a></div><div class="ttdeci">BranchCond * AND(BranchCond *lhs, BranchCond *rhs)</div><div class="ttdoc">Operations on conditions. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00260">Conditions.cpp:260</a></div></div>
367
373
  <div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
368
374
  <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#l00231">Conditions.h:231</a></div></div>
369
375
  <div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &amp;e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
@@ -390,15 +396,16 @@ Static Private Attributes</h2></td></tr>
390
396
  <p>Create a fresh condition to encode each program branch </p>
391
397
 
392
398
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00091">91</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
393
- <div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</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="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_const((<span class="stringliteral">&quot;c&quot;</span> + std::to_string(condCountIdx)).c_str());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; IDToCondExprMap::const_iterator it = <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.find(expr.id());</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.end())</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *branchCond = <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">createCond</a>(condCountIdx);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>(expr, branchCond);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">auto</span> *negCond = <a class="code" href="classSVF_1_1CondManager.html#a5751792e45c8abd5ffd3610d94e9f0b7">NEG</a>(cond);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(negCond, inst);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.emplace(branchCond, cond);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.emplace(expr.id(), cond).first-&gt;second;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_a6c807df0d5627d3afda2359b658bc97c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">SVF::BranchCondManager::createCond</a></div><div class="ttdeci">BranchCond * createCond(u32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00130">Conditions.h:130</a></div></div>
399
+ <div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</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="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>.bool_const((<span class="stringliteral">&quot;c&quot;</span> + std::to_string(condCountIdx)).c_str());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; IDToCondExprMap::const_iterator it = <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.find(expr.id());</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.end())</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *branchCond = <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">createCond</a>(condCountIdx);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>(expr, branchCond);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">auto</span> *negCond = <a class="code" href="classSVF_1_1CondManager.html#a5751792e45c8abd5ffd3610d94e9f0b7">NEG</a>(cond);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">setNegCondInst</a>(negCond, inst);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.emplace(branchCond, cond);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.emplace(expr.id(), cond).first-&gt;second;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_a6c807df0d5627d3afda2359b658bc97c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">SVF::BranchCondManager::createCond</a></div><div class="ttdeci">BranchCond * createCond(u32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00130">Conditions.h:130</a></div></div>
394
400
  <div class="ttc" id="classSVF_1_1CondManager_html_afb6c29587f01bf5b80878bae0850d2f6"><div class="ttname"><a href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00190">Conditions.h:190</a></div></div>
395
- <div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00293">Conditions.h:293</a></div></div>
396
- <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00300">Conditions.h:300</a></div></div>
401
+ <div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00302">Conditions.h:302</a></div></div>
402
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
397
403
  <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#l00075">SVFBasicTypes.h:75</a></div></div>
398
404
  <div class="ttc" id="classSVF_1_1CondManager_html_a5751792e45c8abd5ffd3610d94e9f0b7"><div class="ttname"><a href="classSVF_1_1CondManager.html#a5751792e45c8abd5ffd3610d94e9f0b7">SVF::CondManager::NEG</a></div><div class="ttdeci">CondExpr * NEG(CondExpr *lhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00163">Conditions.cpp:163</a></div></div>
399
- <div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00298">Conditions.h:298</a></div></div>
405
+ <div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00307">Conditions.h:307</a></div></div>
400
406
  <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#l00286">Conditions.h:286</a></div></div>
401
- <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00297">Conditions.h:297</a></div></div>
407
+ <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
408
+ <div class="ttc" id="classSVF_1_1CondManager_html_a049541fec44cac3401a0dc68ff2f0ac1"><div class="ttname"><a href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">SVF::CondManager::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#l00291">Conditions.h:291</a></div></div>
402
409
  <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#l00192">Conditions.h:192</a></div></div>
403
410
  <div class="ttc" id="classSVF_1_1BranchCondExpr_html"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html">SVF::BranchCondExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00079">Conditions.h:79</a></div></div>
404
411
  </div><!-- fragment -->
@@ -423,8 +430,8 @@ Static Private Attributes</h2></td></tr>
423
430
  <p>Return string format of this expression. </p>
424
431
  <p>Return string format of this expression </p>
425
432
 
426
- <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00246">246</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
427
- <div class="fragment"><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; std::ostringstream out;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; out &lt;&lt; e-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> out.str();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
433
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00250">250</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
434
+ <div class="fragment"><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;{</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; std::ostringstream out;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; out &lt;&lt; e-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>();</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> out.str();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
428
435
  </div><!-- fragment -->
429
436
  </div>
430
437
  </div>
@@ -458,8 +465,9 @@ Static Private Attributes</h2></td></tr>
458
465
  <p>Extract sub conditions of this expression </p>
459
466
 
460
467
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00204">204</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
461
- <div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args() == 0)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (!cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().is_true() &amp;&amp; !cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().is_false())</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; support.set(cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().id());</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args(); ++i) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().arg(i);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#acd773bd9dbf5161e488c827b0b71481d">extractSubConds</a>(<a class="code" href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">getCond</a>(expr.id()), support);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_acd773bd9dbf5161e488c827b0b71481d"><div class="ttname"><a href="classSVF_1_1CondManager.html#acd773bd9dbf5161e488c827b0b71481d">SVF::CondManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const CondExpr *cond, NodeBS &amp;support) const</div><div class="ttdoc">Extract sub conditions of this expression. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00204">Conditions.cpp:204</a></div></div>
468
+ <div class="fragment"><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args() == 1 &amp;&amp; <a class="code" href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">isNegCond</a>(cond)) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; support.set(cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().id());</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span> (cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args() == 0)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (!cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().is_true() &amp;&amp; !cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().is_false())</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; support.set(cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().id());</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().num_args(); ++i) {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().arg(i);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#acd773bd9dbf5161e488c827b0b71481d">extractSubConds</a>(<a class="code" href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">getCond</a>(expr.id()), support);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_acd773bd9dbf5161e488c827b0b71481d"><div class="ttname"><a href="classSVF_1_1CondManager.html#acd773bd9dbf5161e488c827b0b71481d">SVF::CondManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const CondExpr *cond, NodeBS &amp;support) const</div><div class="ttdoc">Extract sub conditions of this expression. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00204">Conditions.cpp:204</a></div></div>
462
469
  <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#l00075">SVFBasicTypes.h:75</a></div></div>
470
+ <div class="ttc" id="classSVF_1_1CondManager_html_ad1de136dbd62c3b9a7447222bd0890fa"><div class="ttname"><a href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">SVF::CondManager::isNegCond</a></div><div class="ttdeci">bool isNegCond(const CondExpr *cond) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00296">Conditions.h:296</a></div></div>
463
471
  <div class="ttc" id="classSVF_1_1CondManager_html_ac246b92ebdf6a9635ed79892b81b9ae8"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">SVF::CondManager::getCond</a></div><div class="ttdeci">CondExpr * getCond(u32_t id) const</div><div class="ttdoc">Get condition using condition id (z3 ast id) </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00272">Conditions.h:272</a></div></div>
464
472
  <div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
465
473
  </div><!-- fragment -->
@@ -493,7 +501,7 @@ Static Private Attributes</h2></td></tr>
493
501
 
494
502
  <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00272">272</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
495
503
  <div class="fragment"><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">const</span> IDToCondExprMap::const_iterator it = <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=<a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.end() &amp;&amp; <span class="stringliteral">&quot;condition not found!&quot;</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</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>
496
- <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00297">Conditions.h:297</a></div></div>
504
+ <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
497
505
  </div><!-- fragment -->
498
506
  </div>
499
507
  </div>
@@ -525,7 +533,7 @@ Static Private Attributes</h2></td></tr>
525
533
 
526
534
  <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00280">280</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
527
535
  <div class="fragment"><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; CondToTermInstMap::const_iterator it = <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.find(cond);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=<a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</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>
528
- <div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00299">Conditions.h:299</a></div></div>
536
+ <div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00308">Conditions.h:308</a></div></div>
529
537
  </div><!-- fragment -->
530
538
  </div>
531
539
  </div>
@@ -579,7 +587,7 @@ Static Private Attributes</h2></td></tr>
579
587
  <p>Return the number of condition expressions </p>
580
588
 
581
589
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00128">128</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
582
- <div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.get_model().size();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00294">Conditions.h:294</a></div></div>
590
+ <div class="fragment"><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.get_model().size();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00303">Conditions.h:303</a></div></div>
583
591
  </div><!-- fragment -->
584
592
  </div>
585
593
  </div>
@@ -609,7 +617,7 @@ Static Private Attributes</h2></td></tr>
609
617
  <p>Return the unique false condition. </p>
610
618
 
611
619
  <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00231">231</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
612
- <div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</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#l00296">Conditions.h:296</a></div></div>
620
+ <div class="fragment"><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</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#l00305">Conditions.h:305</a></div></div>
613
621
  </div><!-- fragment -->
614
622
  </div>
615
623
  </div>
@@ -665,8 +673,8 @@ Static Private Attributes</h2></td></tr>
665
673
  <p>Get or add a single branch condition, e.g., when doing condition conjunction </p>
666
674
 
667
675
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00113">113</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
668
- <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> it = <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.find(branchCond);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(it != <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.end())</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>(e, branchCond);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.emplace(branchCond, cond);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.emplace(e.id(), cond).first-&gt;second;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00298">Conditions.h:298</a></div></div>
669
- <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00297">Conditions.h:297</a></div></div>
676
+ <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> it = <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.find(branchCond);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(it != <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.end())</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>(e, branchCond);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>.emplace(branchCond, cond);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>.emplace(e.id(), cond).first-&gt;second;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00307">Conditions.h:307</a></div></div>
677
+ <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
670
678
  <div class="ttc" id="classSVF_1_1BranchCondExpr_html"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html">SVF::BranchCondExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00079">Conditions.h:79</a></div></div>
671
679
  </div><!-- fragment -->
672
680
  </div>
@@ -697,7 +705,7 @@ Static Private Attributes</h2></td></tr>
697
705
  <p>Return the unique true condition. </p>
698
706
 
699
707
  <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00226">226</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
700
- <div class="fragment"><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><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#l00295">Conditions.h:295</a></div></div>
708
+ <div class="fragment"><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><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#l00304">Conditions.h:304</a></div></div>
701
709
  </div><!-- fragment -->
702
710
  </div>
703
711
  </div>
@@ -720,8 +728,8 @@ Static Private Attributes</h2></td></tr>
720
728
  <p>Whether <b>All Paths</b> are reachable. </p>
721
729
  <p>Whether <b>All Paths</b> are reachable </p>
722
730
 
723
- <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>
724
- <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="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">isEquivalentBranchCond</a>(e, <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>());</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><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#l00226">Conditions.h:226</a></div></div>
731
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00235">235</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
732
+ <div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">isEquivalentBranchCond</a>(e, <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>());</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div><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#l00226">Conditions.h:226</a></div></div>
725
733
  <div class="ttc" id="classSVF_1_1CondManager_html_adef2474c65a7f9d96b27ee670136a240"><div class="ttname"><a href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">SVF::CondManager::isEquivalentBranchCond</a></div><div class="ttdeci">bool isEquivalentBranchCond(const CondExpr *lhs, const CondExpr *rhs) const</div><div class="ttdoc">Whether lhs and rhs are equivalent branch conditions. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00264">Conditions.h:264</a></div></div>
726
734
  </div><!-- fragment -->
727
735
  </div>
@@ -767,6 +775,35 @@ Static Private Attributes</h2></td></tr>
767
775
  </div><!-- fragment -->
768
776
  </div>
769
777
  </div>
778
+ <a id="ad1de136dbd62c3b9a7447222bd0890fa"></a>
779
+ <h2 class="memtitle"><span class="permalink"><a href="#ad1de136dbd62c3b9a7447222bd0890fa">&#9670;&nbsp;</a></span>isNegCond()</h2>
780
+
781
+ <div class="memitem">
782
+ <div class="memproto">
783
+ <table class="mlabels">
784
+ <tr>
785
+ <td class="mlabels-left">
786
+ <table class="memname">
787
+ <tr>
788
+ <td class="memname">bool SVF::CondManager::isNegCond </td>
789
+ <td>(</td>
790
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
791
+ <td class="paramname"><em>cond</em></td><td>)</td>
792
+ <td> const</td>
793
+ </tr>
794
+ </table>
795
+ </td>
796
+ <td class="mlabels-right">
797
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
798
+ </tr>
799
+ </table>
800
+ </div><div class="memdoc">
801
+
802
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00296">296</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
803
+ <div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">negConds</a>.test(cond-&gt;getId());</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_aa5e6dbdb4c88941996f7865a2d3ca314"><div class="ttname"><a href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">SVF::CondManager::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00310">Conditions.h:310</a></div></div>
804
+ </div><!-- fragment -->
805
+ </div>
806
+ </div>
770
807
  <a id="a725d9c0a3aad4ebea3f06edf433f04ea"></a>
771
808
  <h2 class="memtitle"><span class="permalink"><a href="#a725d9c0a3aad4ebea3f06edf433f04ea">&#9670;&nbsp;</a></span>isSatisfiable()</h2>
772
809
 
@@ -786,8 +823,8 @@ Static Private Attributes</h2></td></tr>
786
823
  <p>Whether the condition is satisfiable. </p>
787
824
  <p>Whether the condition is satisfiable </p>
788
825
 
789
- <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00218">218</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
790
- <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.reset();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.add(cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>());</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; z3::check_result <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.check();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (result == z3::sat || result == z3::unknown)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00294">Conditions.h:294</a></div></div>
826
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00222">222</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
827
+ <div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.reset();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.add(cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>());</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; z3::check_result <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a> = <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.check();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (result == z3::sat || result == z3::unknown)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00303">Conditions.h:303</a></div></div>
791
828
  <div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
792
829
  <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>
793
830
  </div><!-- fragment -->
@@ -812,8 +849,8 @@ Static Private Attributes</h2></td></tr>
812
849
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00163">163</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
813
850
  <div class="fragment"><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *branchCond = <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#ad7832b33b3b73fcaca5c8278ed4d3e7f">NEG</a>(SVFUtil::dyn_cast&lt;BranchCondExpr&gt;(lhs)-&gt;getBranchCond());</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = !lhs-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(expr, branchCond);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_afb6c29587f01bf5b80878bae0850d2f6"><div class="ttname"><a href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00190">Conditions.h:190</a></div></div>
814
851
  <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#l00226">Conditions.h:226</a></div></div>
815
- <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00300">Conditions.h:300</a></div></div>
816
- <div class="ttc" id="classSVF_1_1BranchCondManager_html_ad7832b33b3b73fcaca5c8278ed4d3e7f"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ad7832b33b3b73fcaca5c8278ed4d3e7f">SVF::BranchCondManager::NEG</a></div><div class="ttdeci">BranchCond * NEG(BranchCond *lhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00309">Conditions.cpp:309</a></div></div>
852
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
853
+ <div class="ttc" id="classSVF_1_1BranchCondManager_html_ad7832b33b3b73fcaca5c8278ed4d3e7f"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ad7832b33b3b73fcaca5c8278ed4d3e7f">SVF::BranchCondManager::NEG</a></div><div class="ttdeci">BranchCond * NEG(BranchCond *lhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00313">Conditions.cpp:313</a></div></div>
817
854
  <div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
818
855
  <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#l00231">Conditions.h:231</a></div></div>
819
856
  <div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &amp;e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
@@ -849,8 +886,8 @@ Static Private Attributes</h2></td></tr>
849
886
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00149">149</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
850
887
  <div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>() || rhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a> *branchCond = <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>.<a class="code" href="classSVF_1_1BranchCondManager.html#a7f3fa5e90c08950099ff6f05e96ecb9c">OR</a>(SVFUtil::dyn_cast&lt;BranchCondExpr&gt;(lhs)-&gt;getBranchCond(),</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; SVFUtil::dyn_cast&lt;BranchCondExpr&gt;(rhs)-&gt;getBranchCond());</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">const</span> z3::expr &amp;expr = lhs-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>() || rhs-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">getOrAddBranchCond</a>(expr, branchCond);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_afb6c29587f01bf5b80878bae0850d2f6"><div class="ttname"><a href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00190">Conditions.h:190</a></div></div>
851
888
  <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#l00226">Conditions.h:226</a></div></div>
852
- <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00300">Conditions.h:300</a></div></div>
853
- <div class="ttc" id="classSVF_1_1BranchCondManager_html_a7f3fa5e90c08950099ff6f05e96ecb9c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a7f3fa5e90c08950099ff6f05e96ecb9c">SVF::BranchCondManager::OR</a></div><div class="ttdeci">BranchCond * OR(BranchCond *lhs, BranchCond *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00284">Conditions.cpp:284</a></div></div>
889
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
890
+ <div class="ttc" id="classSVF_1_1BranchCondManager_html_a7f3fa5e90c08950099ff6f05e96ecb9c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a7f3fa5e90c08950099ff6f05e96ecb9c">SVF::BranchCondManager::OR</a></div><div class="ttdeci">BranchCond * OR(BranchCond *lhs, BranchCond *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00288">Conditions.cpp:288</a></div></div>
854
891
  <div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
855
892
  <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#l00231">Conditions.h:231</a></div></div>
856
893
  <div class="ttc" id="classSVF_1_1CondManager_html_a0ca23ef4850f9be8abf303eafd104dab"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ca23ef4850f9be8abf303eafd104dab">SVF::CondManager::getOrAddBranchCond</a></div><div class="ttdeci">CondExpr * getOrAddBranchCond(const z3::expr &amp;e, BranchCond *branchCond)</div><div class="ttdoc">Get or add a single branch condition, e.g., when doing condition conjunction. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00113">Conditions.cpp:113</a></div></div>
@@ -884,8 +921,8 @@ Static Private Attributes</h2></td></tr>
884
921
  <p>Print out one particular expression. </p>
885
922
  <p>Print out one particular expression </p>
886
923
 
887
- <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00238">238</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
888
- <div class="fragment"><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;{</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; std::cout &lt;&lt; e-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
924
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00242">242</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
925
+ <div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;{</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; std::cout &lt;&lt; e-&gt;<a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondExpr_html_ac83903c62554c6f91812d79d23ec4e23"><div class="ttname"><a href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">SVF::CondExpr::getExpr</a></div><div class="ttdeci">const z3::expr &amp; getExpr() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00055">Conditions.h:55</a></div></div>
889
926
  </div><!-- fragment -->
890
927
  </div>
891
928
  </div>
@@ -908,7 +945,7 @@ Static Private Attributes</h2></td></tr>
908
945
  <p>Print the expressions in this model </p>
909
946
 
910
947
  <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00179">179</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
911
- <div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::cout &lt;&lt; <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.check() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; z3::model m = <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.get_model();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</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="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; z3::func_decl v = m[<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a><span class="keyword">&gt;</span>(i)];</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; std::cout &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="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00294">Conditions.h:294</a></div></div>
948
+ <div class="fragment"><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; std::cout &lt;&lt; <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.check() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; z3::model m = <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>.get_model();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</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="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; z3::func_decl v = m[<span class="keyword">static_cast&lt;</span><a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a><span class="keyword">&gt;</span>(i)];</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; std::cout &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="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00303">Conditions.h:303</a></div></div>
912
949
  <div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00077">SVFBasicTypes.h:77</a></div></div>
913
950
  <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#l00075">SVFBasicTypes.h:75</a></div></div>
914
951
  </div><!-- fragment -->
@@ -978,7 +1015,47 @@ Static Private Attributes</h2></td></tr>
978
1015
 
979
1016
  <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00286">286</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
980
1017
  <div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.find(cond)==<a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>[cond] = inst;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</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>
981
- <div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00299">Conditions.h:299</a></div></div>
1018
+ <div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00308">Conditions.h:308</a></div></div>
1019
+ </div><!-- fragment -->
1020
+ </div>
1021
+ </div>
1022
+ <a id="a049541fec44cac3401a0dc68ff2f0ac1"></a>
1023
+ <h2 class="memtitle"><span class="permalink"><a href="#a049541fec44cac3401a0dc68ff2f0ac1">&#9670;&nbsp;</a></span>setNegCondInst()</h2>
1024
+
1025
+ <div class="memitem">
1026
+ <div class="memproto">
1027
+ <table class="mlabels">
1028
+ <tr>
1029
+ <td class="mlabels-left">
1030
+ <table class="memname">
1031
+ <tr>
1032
+ <td class="memname">void SVF::CondManager::setNegCondInst </td>
1033
+ <td>(</td>
1034
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
1035
+ <td class="paramname"><em>cond</em>, </td>
1036
+ </tr>
1037
+ <tr>
1038
+ <td class="paramkey"></td>
1039
+ <td></td>
1040
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1041
+ <td class="paramname"><em>inst</em>&#160;</td>
1042
+ </tr>
1043
+ <tr>
1044
+ <td></td>
1045
+ <td>)</td>
1046
+ <td></td><td></td>
1047
+ </tr>
1048
+ </table>
1049
+ </td>
1050
+ <td class="mlabels-right">
1051
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
1052
+ </tr>
1053
+ </table>
1054
+ </div><div class="memdoc">
1055
+
1056
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00291">291</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1057
+ <div class="fragment"><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">negConds</a>.set(cond-&gt;getId());</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_aa5e6dbdb4c88941996f7865a2d3ca314"><div class="ttname"><a href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">SVF::CondManager::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00310">Conditions.h:310</a></div></div>
1058
+ <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#l00286">Conditions.h:286</a></div></div>
982
1059
  </div><!-- fragment -->
983
1060
  </div>
984
1061
  </div>
@@ -1029,7 +1106,7 @@ Static Private Attributes</h2></td></tr>
1029
1106
 
1030
1107
  <p>map condition id (z3 ast id) to its Condition wrapper </p>
1031
1108
 
1032
- <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00297">297</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1109
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00306">306</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1033
1110
 
1034
1111
  </div>
1035
1112
  </div>
@@ -1055,7 +1132,7 @@ Static Private Attributes</h2></td></tr>
1055
1132
 
1056
1133
  <p>branch condition manager </p>
1057
1134
 
1058
- <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>
1135
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00309">309</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1059
1136
 
1060
1137
  </div>
1061
1138
  </div>
@@ -1081,7 +1158,7 @@ Static Private Attributes</h2></td></tr>
1081
1158
 
1082
1159
  <p>map branch condition to its Condition wrapper </p>
1083
1160
 
1084
- <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00298">298</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1161
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00307">307</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1085
1162
 
1086
1163
  </div>
1087
1164
  </div>
@@ -1131,7 +1208,7 @@ Static Private Attributes</h2></td></tr>
1131
1208
 
1132
1209
  <p>map condition to llvm instruction </p>
1133
1210
 
1134
- <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00299">299</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1211
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00308">308</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1135
1212
 
1136
1213
  </div>
1137
1214
  </div>
@@ -1155,7 +1232,7 @@ Static Private Attributes</h2></td></tr>
1155
1232
  </table>
1156
1233
  </div><div class="memdoc">
1157
1234
 
1158
- <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>
1235
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00302">302</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1159
1236
 
1160
1237
  </div>
1161
1238
  </div>
@@ -1179,7 +1256,31 @@ Static Private Attributes</h2></td></tr>
1179
1256
  </table>
1180
1257
  </div><div class="memdoc">
1181
1258
 
1182
- <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00296">296</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1259
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00305">305</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1260
+
1261
+ </div>
1262
+ </div>
1263
+ <a id="aa5e6dbdb4c88941996f7865a2d3ca314"></a>
1264
+ <h2 class="memtitle"><span class="permalink"><a href="#aa5e6dbdb4c88941996f7865a2d3ca314">&#9670;&nbsp;</a></span>negConds</h2>
1265
+
1266
+ <div class="memitem">
1267
+ <div class="memproto">
1268
+ <table class="mlabels">
1269
+ <tr>
1270
+ <td class="mlabels-left">
1271
+ <table class="memname">
1272
+ <tr>
1273
+ <td class="memname"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> SVF::CondManager::negConds</td>
1274
+ </tr>
1275
+ </table>
1276
+ </td>
1277
+ <td class="mlabels-right">
1278
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1279
+ </tr>
1280
+ </table>
1281
+ </div><div class="memdoc">
1282
+
1283
+ <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>
1183
1284
 
1184
1285
  </div>
1185
1286
  </div>
@@ -1203,7 +1304,7 @@ Static Private Attributes</h2></td></tr>
1203
1304
  </table>
1204
1305
  </div><div class="memdoc">
1205
1306
 
1206
- <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00294">294</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1307
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00303">303</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1207
1308
 
1208
1309
  </div>
1209
1310
  </div>
@@ -1251,7 +1352,7 @@ Static Private Attributes</h2></td></tr>
1251
1352
  </table>
1252
1353
  </div><div class="memdoc">
1253
1354
 
1254
- <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00295">295</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1355
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00304">304</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1255
1356
 
1256
1357
  </div>
1257
1358
  </div>