svf-tools 1.0.455 → 1.0.458

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 (323) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  6. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +1 -1
  9. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +3 -3
  10. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
  12. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +15 -15
  14. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  15. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  16. package/SVF-doxygen/html/html/CHG_8cpp_source.html +10 -10
  17. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  18. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +19 -19
  19. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +3 -3
  20. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  21. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  26. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
  27. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +14 -14
  28. package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
  29. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
  31. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
  33. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  35. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +8 -8
  36. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +4 -4
  37. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  38. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +3 -3
  44. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +4 -4
  45. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  46. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  48. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +5 -5
  50. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
  51. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  52. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  53. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +5 -5
  54. package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +9 -9
  56. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  57. package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +8 -8
  59. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
  60. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +15 -15
  61. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +15 -15
  62. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  63. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +5 -5
  65. package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
  66. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
  67. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +4 -4
  68. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +10 -10
  69. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
  70. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  71. package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
  72. package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
  73. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  74. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  75. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +5 -5
  76. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +14 -14
  77. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  78. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +4 -4
  79. package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
  80. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -3
  81. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  82. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  83. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +7 -7
  84. package/SVF-doxygen/html/html/MemRegion_8h_source.html +3 -3
  85. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +8 -8
  86. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
  87. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  88. package/SVF-doxygen/html/html/PCG_8cpp_source.html +7 -7
  89. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  90. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  91. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  92. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
  93. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +9 -9
  94. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  96. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  97. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
  98. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
  99. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  100. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  103. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  104. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  105. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  106. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
  107. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  108. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +30 -30
  109. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +14 -14
  110. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +2 -2
  111. package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
  112. package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
  113. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  114. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +3 -3
  115. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +12 -12
  116. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +10 -10
  117. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  118. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +6 -6
  119. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  120. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  121. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  122. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +18 -18
  124. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +5 -5
  125. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +9 -9
  126. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +5 -5
  127. package/SVF-doxygen/html/html/TCT_8cpp_source.html +13 -13
  128. package/SVF-doxygen/html/html/TCT_8h_source.html +10 -10
  129. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  130. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  131. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  132. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  133. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  134. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +13 -13
  135. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +3 -3
  136. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -0
  137. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +84 -84
  138. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  139. package/SVF-doxygen/html/html/VFG_8cpp_source.html +4 -4
  140. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  141. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  142. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  143. package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
  144. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  151. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +29 -29
  162. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  163. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
  166. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  167. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  170. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
  173. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  174. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +6 -6
  179. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +42 -42
  185. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  188. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +6 -6
  192. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  194. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +8 -8
  196. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +20 -20
  197. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  200. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  202. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
  203. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  205. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  210. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +10 -10
  211. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  212. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  213. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +2 -2
  214. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  221. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  226. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +16 -16
  227. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  228. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +6 -6
  231. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +30 -30
  232. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +12 -12
  233. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +25 -25
  234. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +9 -9
  235. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  237. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
  238. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +8 -8
  239. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +26 -26
  240. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +9 -9
  241. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
  242. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +16 -16
  244. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  245. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +2 -2
  246. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  248. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +19 -19
  250. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  251. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  252. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  254. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  256. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +22 -22
  257. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +19 -19
  259. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +4 -4
  260. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +8 -8
  261. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  265. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  268. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +29 -29
  269. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  270. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  271. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  272. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +82 -82
  273. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -2
  274. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  275. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  276. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  277. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +26 -26
  282. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +13 -13
  283. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +30 -30
  284. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  287. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +9 -9
  288. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +2 -2
  289. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  290. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
  293. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +17 -17
  294. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
  297. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  298. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  300. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  303. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  304. package/SVF-doxygen/html/html/namespaceSVF.html +47 -47
  305. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +44 -44
  306. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +36 -36
  307. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  308. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  309. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  310. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  311. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  312. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  313. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  314. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
  315. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  316. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  317. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  318. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  319. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  320. package/include/Util/BasicTypes.h +1 -0
  321. package/lib/SVF-FE/SVFIRBuilder.cpp +3 -3
  322. package/lib/Util/ExeState.cpp +2 -2
  323. package/package.json +1 -1
@@ -469,7 +469,7 @@ Private Attributes</h2></td></tr>
469
469
 
470
470
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00055">55</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
471
471
  <div class="fragment"><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;path condition allocation starts\n&quot;</span>));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; func : *M)</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="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(func))</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Allocate conditions for a program.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">for</span> (Function::const_iterator bit = func-&gt;getLLVMFun()-&gt;begin(), ebit = func-&gt;getLLVMFun()-&gt;end(); bit != ebit; ++bit)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> &amp; bb = *bit;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a391cb347cf98f33c261e59975900048e">collectBBCallingProgExit</a>(bb);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#af854f880e76738a13d6cb937a257828f">allocateForBB</a>(bb);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ae6b763ff293381ed5da9b07c2e8ae496">Options::PrintPathCond</a>)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a2932b15ef74e46b676075ba1b2e82111">printPathCond</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;path condition allocation ends\n&quot;</span>));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_af854f880e76738a13d6cb937a257828f"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#af854f880e76738a13d6cb937a257828f">SVF::PathCondAllocator::allocateForBB</a></div><div class="ttdeci">virtual void allocateForBB(const BasicBlock &amp;bb)</div><div class="ttdoc">Allocate path condition for every basic block. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00082">PathCondAllocator.cpp:82</a></div></div>
472
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
472
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
473
473
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00101">SVFUtil.cpp:101</a></div></div>
474
474
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a2932b15ef74e46b676075ba1b2e82111"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a2932b15ef74e46b676075ba1b2e82111">SVF::PathCondAllocator::printPathCond</a></div><div class="ttdeci">void printPathCond()</div><div class="ttdoc">Print out the path condition information. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00554">PathCondAllocator.cpp:554</a></div></div>
475
475
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
@@ -511,9 +511,9 @@ Private Attributes</h2></td></tr>
511
511
 
512
512
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00082">82</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
513
513
  <div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succ_number = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">getBBSuccessorNum</a>(&amp;bb);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// if successor number greater than 1, allocate new decision variable for successors</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(succ_number &gt; 1)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">//allocate log2(num_succ) decision variables</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">double</span> num = log(succ_number)/log(2);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bit_num = (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)ceil(num);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succ_index = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; std::vector&lt;Condition*&gt; condVec;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0 ; i &lt; bit_num; i++)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; condVec.push_back(<a class="code" href="classSVF_1_1PathCondAllocator.html#a3cd08242b82129e6074b2f30a19b5c17">newCond</a>(bb.getTerminator()));</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// iterate each successor</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(&amp;bb);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; succ_it != succ_end(&amp;bb);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; succ_it++, succ_index++)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ = *succ_it;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// for each successor decide its bit representation</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// decide whether each bit of succ_index is 1 or 0, if (three successor) succ_index is 000 then use C1^C2^C3</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// if 001 use C1^C2^negC3</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0 ; j &lt; bit_num; j++)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">//test each bit of this successor&#39;s index (binary representation)</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tool = 0x01 &lt;&lt; j;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span>(tool &amp; succ_index)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(path_cond, (<a class="code" href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">condNeg</a>(condVec.at(j))));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(path_cond, condVec.at(j));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aaec323fc8a3f83da4596ed7d447ab6f1">setBranchCond</a>(&amp;bb,succ,path_cond);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
514
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
514
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
515
515
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
516
- <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00121">BasicTypes.h:121</a></div></div>
516
+ <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
517
517
  <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#l00084">SVFBasicTypes.h:84</a></div></div>
518
518
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3cd08242b82129e6074b2f30a19b5c17"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3cd08242b82129e6074b2f30a19b5c17">SVF::PathCondAllocator::newCond</a></div><div class="ttdeci">Condition * newCond(const Instruction *inst)</div><div class="ttdoc">Allocate a new condition. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00121">PathCondAllocator.h:121</a></div></div>
519
519
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aaec323fc8a3f83da4596ed7d447ab6f1"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aaec323fc8a3f83da4596ed7d447ab6f1">SVF::PathCondAllocator::setBranchCond</a></div><div class="ttdeci">void setBranchCond(const BasicBlock *bb, const BasicBlock *succ, Condition *cond)</div><div class="ttdoc">Get/Set a branch condition, and its terminator instruction. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00164">PathCondAllocator.cpp:164</a></div></div>
@@ -582,7 +582,7 @@ Private Attributes</h2></td></tr>
582
582
  <div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;{</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">for</span>(BasicBlock::const_iterator it = bb.begin(), eit = bb.end(); it!=eit; it++)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = &amp;*it;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst))</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">SVFUtil::isProgExitCall</a>(inst))</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#ad35f1bdb406a85c5bfdcbbc15642853b">funToExitBBsMap</a>[bb.getParent()].insert(&amp;bb);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
583
583
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ad35f1bdb406a85c5bfdcbbc15642853b"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ad35f1bdb406a85c5bfdcbbc15642853b">SVF::PathCondAllocator::funToExitBBsMap</a></div><div class="ttdeci">FunToExitBBsMap funToExitBBsMap</div><div class="ttdoc">map a function to all its basic blocks calling program exit </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00291">PathCondAllocator.h:291</a></div></div>
584
584
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6528edf9a1750df4a84d1a60d4d0bbe4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">SVF::SVFUtil::isProgExitCall</a></div><div class="ttdeci">bool isProgExitCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00485">LLVMUtil.h:485</a></div></div>
585
- <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
585
+ <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
586
586
  </div><!-- fragment -->
587
587
  </div>
588
588
  </div>
@@ -629,7 +629,7 @@ Private Attributes</h2></td></tr>
629
629
 
630
630
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00470">470</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
631
631
  <div class="fragment"><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* funEntryBB = &amp;dstBB-&gt;getParent()-&gt;getEntryBlock();</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(srcBB,callBB);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(funEntryBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(funEntryBB),<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(callBB)));</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(funEntryBB,dstBB);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(c1,c2);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
632
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
632
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
633
633
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4cb61914dff693e284091e97ab8c8878"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">SVF::PathCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const BasicBlock *bb, Condition *cond)</div><div class="ttdoc">Get/Set control-flow conditions. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00261">PathCondAllocator.h:261</a></div></div>
634
634
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5a8c25d74ffc2a8f8dbd20faab4d9803"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">SVF::PathCondAllocator::condOr</a></div><div class="ttdeci">Condition * condOr(Condition *lhs, Condition *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00087">PathCondAllocator.h:87</a></div></div>
635
635
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">SVF::PathCondAllocator::condAnd</a></div><div class="ttdeci">Condition * condAnd(Condition *lhs, Condition *rhs)</div><div class="ttdoc">Condition operations. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00083">PathCondAllocator.h:83</a></div></div>
@@ -681,7 +681,7 @@ Private Attributes</h2></td></tr>
681
681
 
682
682
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00485">485</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
683
683
  <div class="fragment"><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;{</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* funExitBB = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">getFunExitBB</a>(srcBB-&gt;getParent());</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(srcBB,funExitBB);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(retBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(retBB),<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(funExitBB)));</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(retBB,dstBB);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(c1,c2);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
684
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
684
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
685
685
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4cb61914dff693e284091e97ab8c8878"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">SVF::PathCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const BasicBlock *bb, Condition *cond)</div><div class="ttdoc">Get/Set control-flow conditions. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00261">PathCondAllocator.h:261</a></div></div>
686
686
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5a8c25d74ffc2a8f8dbd20faab4d9803"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">SVF::PathCondAllocator::condOr</a></div><div class="ttdeci">Condition * condOr(Condition *lhs, Condition *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00087">PathCondAllocator.h:87</a></div></div>
687
687
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3cb226930eeaf558575e09e5b65e0223"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">SVF::SVFUtil::getFunExitBB</a></div><div class="ttdeci">const BasicBlock * getFunExitBB(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00520">LLVMUtil.h:520</a></div></div>
@@ -732,7 +732,7 @@ Private Attributes</h2></td></tr>
732
732
 
733
733
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00498">498</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
734
734
  <div class="fragment"><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;{</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(srcBB-&gt;getParent() == dstBB-&gt;getParent() &amp;&amp; <span class="stringliteral">&quot;two basic blocks are not in the same function??&quot;</span>);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* postDT = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">getPostDT</a>(srcBB-&gt;getParent());</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(postDT-&gt;dominates(dstBB,srcBB))</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#ac578894f959845164e1343384d60def1">CFWorkList</a> worklist;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; worklist.push(srcBB);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(srcBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>());</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = worklist.pop();</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(bb);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* loopExitCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a>(bb,dstBB))</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(cond, loopExitCond);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(bb);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; succ_it != succ_end(bb); succ_it++)</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ = *succ_it;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* brCond;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span>(postDT-&gt;dominates(succ,bb))</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; brCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; brCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a6d2c5b05f4966522c9310fd3c086adea">getEvalBrCond</a>(bb, succ);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; bb (&quot;</span> &lt;&lt; bb-&gt;getName().str() &lt;&lt;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; <span class="stringliteral">&quot;succ_bb (&quot;</span> &lt;&lt; succ-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;) condition: &quot;</span> &lt;&lt; brCond &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* succPathCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(cond, brCond);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(succ, <a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(succ), succPathCond)))</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; worklist.push(succ);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; src_bb (&quot;</span> &lt;&lt; srcBB-&gt;getName().str() &lt;&lt;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; <span class="stringliteral">&quot;dst_bb (&quot;</span> &lt;&lt; dstBB-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;) condition: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(dstBB) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(dstBB);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
735
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
735
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
736
736
  <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>
737
737
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
738
738
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4cb61914dff693e284091e97ab8c8878"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">SVF::PathCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const BasicBlock *bb, Condition *cond)</div><div class="ttdoc">Get/Set control-flow conditions. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00261">PathCondAllocator.h:261</a></div></div>
@@ -740,9 +740,9 @@ Private Attributes</h2></td></tr>
740
740
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a623e6ec670e5f6aeedee26b146ad5a0d"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">SVF::PathCondAllocator::evaluateLoopExitBranch</a></div><div class="ttdeci">Condition * evaluateLoopExitBranch(const BasicBlock *bb, const BasicBlock *succ)</div><div class="ttdoc">Evaluate loop exit branch. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00255">PathCondAllocator.cpp:255</a></div></div>
741
741
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a6d2c5b05f4966522c9310fd3c086adea"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a6d2c5b05f4966522c9310fd3c086adea">SVF::PathCondAllocator::getEvalBrCond</a></div><div class="ttdeci">Condition * getEvalBrCond(const BasicBlock *bb, const BasicBlock *succ)</div><div class="ttdoc">Get a condition, evaluate the value for conditions if necessary (e.g., testNull like express) ...</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00153">PathCondAllocator.cpp:153</a></div></div>
742
742
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5a8c25d74ffc2a8f8dbd20faab4d9803"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">SVF::PathCondAllocator::condOr</a></div><div class="ttdeci">Condition * condOr(Condition *lhs, Condition *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00087">PathCondAllocator.h:87</a></div></div>
743
- <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00121">BasicTypes.h:121</a></div></div>
743
+ <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
744
744
  <div class="ttc" id="SVFBasicTypes_8h_html_a817abc424f7cfcdec5954c7807970f36"><div class="ttname"><a href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a></div><div class="ttdeci">#define DSaber</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00173">SVFBasicTypes.h:173</a></div></div>
745
- <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
745
+ <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
746
746
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
747
747
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">SVF::PathCondAllocator::condAnd</a></div><div class="ttdeci">Condition * condAnd(Condition *lhs, Condition *rhs)</div><div class="ttdoc">Condition operations. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00083">PathCondAllocator.h:83</a></div></div>
748
748
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ac578894f959845164e1343384d60def1"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ac578894f959845164e1343384d60def1">SVF::PathCondAllocator::CFWorkList</a></div><div class="ttdeci">FIFOWorkList&lt; const BasicBlock * &gt; CFWorkList</div><div class="ttdoc">worklist for control-flow guard computation </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00059">PathCondAllocator.h:59</a></div></div>
@@ -964,7 +964,7 @@ Private Attributes</h2></td></tr>
964
964
  <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">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">getBBSuccessorNum</a>(bb) == 1)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bb-&gt;getTerminator()-&gt;getSuccessor(0) == succ &amp;&amp; <span class="stringliteral">&quot;not the unique successor?&quot;</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1PathCondAllocator.html#a80a607028f3a05d478ffbd6fcc0bbc2a">getICFG</a>()-&gt;getICFGNode(bb-&gt;getTerminator()))</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;svfStmt: icfgNode-&gt;getSVFStmts())</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *branchStmt = SVFUtil::dyn_cast&lt;BranchStmt&gt;(svfStmt))</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span>(branchStmt-&gt;getNumSuccessors() == 2)</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ1 = branchStmt-&gt;getSuccessor(0)-&gt;getBB();</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ2 = branchStmt-&gt;getSuccessor(1)-&gt;getBB();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((succ1 == succ || succ2 == succ) &amp;&amp; <span class="stringliteral">&quot;not a successor??&quot;</span>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* evalLoopExit = <a class="code" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a>(bb,succ);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span>(evalLoopExit)</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> evalLoopExit;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* evalProgExit = <a class="code" href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">evaluateProgExit</a>(branchStmt,succ);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(evalProgExit)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> evalProgExit;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* evalTestNullLike = <a class="code" href="classSVF_1_1PathCondAllocator.html#af595a4b93bd350f489bfe8635d86cfcc">evaluateTestNullLikeExpr</a>(branchStmt,succ);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span>(evalTestNullLike)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span> evalTestNullLike;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a4d00c3306b92e59568b54a6a72afdb74">getBranchCond</a>(bb, succ);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a79d6bbd55a134c856f3e80a898af23ee"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">SVF::PathCondAllocator::evaluateProgExit</a></div><div class="ttdeci">Condition * evaluateProgExit(const BranchStmt *branchStmt, const BasicBlock *succ)</div><div class="ttdoc">Return condition when there is a branch calls program exit. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00211">PathCondAllocator.cpp:211</a></div></div>
965
965
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4d00c3306b92e59568b54a6a72afdb74"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4d00c3306b92e59568b54a6a72afdb74">SVF::PathCondAllocator::getBranchCond</a></div><div class="ttdeci">Condition * getBranchCond(const BasicBlock *bb, const BasicBlock *succ) const</div><div class="ttdoc">Get branch condition. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00138">PathCondAllocator.cpp:138</a></div></div>
966
966
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
967
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
967
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
968
968
  <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>
969
969
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
970
970
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a623e6ec670e5f6aeedee26b146ad5a0d"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">SVF::PathCondAllocator::evaluateLoopExitBranch</a></div><div class="ttdeci">Condition * evaluateLoopExitBranch(const BasicBlock *bb, const BasicBlock *succ)</div><div class="ttdoc">Evaluate loop exit branch. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00255">PathCondAllocator.cpp:255</a></div></div>
@@ -1016,16 +1016,16 @@ Private Attributes</h2></td></tr>
1016
1016
  <p>if the dst dominate all other loop exit bbs, then dst can certainly be reached </p>
1017
1017
 
1018
1018
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00255">255</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
1019
- <div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = bb-&gt;getParent();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(fun==dst-&gt;getParent() &amp;&amp; <span class="stringliteral">&quot;two basic blocks should be in the same function&quot;</span>);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a>* loopInfo = <a class="code" href="classSVF_1_1PathCondAllocator.html#a10ddc3b02b2baad2edd72fe429113b0f">getLoopInfo</a>(fun);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(loopInfo-&gt;isLoopHeader(const_cast&lt;BasicBlock*&gt;(bb)))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a> *loop = loopInfo-&gt;getLoopFor(bb);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF.html#a02be4933b76c2baa7fdbe8b290e12bb3">SmallBBVector</a> exitbbs;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;BasicBlock*&gt;</a> filteredbbs;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; loop-&gt;getExitBlocks(exitbbs);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* eb = exitbbs.pop_back_val();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="classSVF_1_1PathCondAllocator.html#a39c0cc9dec89b0b52bf9f1026da942e1">isBBCallsProgExit</a>(eb))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; filteredbbs.insert(eb);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">bool</span> allPDT = <span class="keyword">true</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* pdt = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">getPostDT</a>(fun);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>&amp; filteredbb : filteredbbs)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span>(!pdt-&gt;dominates(dst,filteredbb))</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; allPDT =<span class="keyword">false</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span>(allPDT)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><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; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
1019
+ <div class="fragment"><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = bb-&gt;getParent();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(fun==dst-&gt;getParent() &amp;&amp; <span class="stringliteral">&quot;two basic blocks should be in the same function&quot;</span>);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a>* loopInfo = <a class="code" href="classSVF_1_1PathCondAllocator.html#a10ddc3b02b2baad2edd72fe429113b0f">getLoopInfo</a>(fun);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(loopInfo-&gt;isLoopHeader(const_cast&lt;BasicBlock*&gt;(bb)))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a> *loop = loopInfo-&gt;getLoopFor(bb);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="namespaceSVF.html#a02be4933b76c2baa7fdbe8b290e12bb3">SmallBBVector</a> exitbbs;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;BasicBlock*&gt;</a> filteredbbs;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; loop-&gt;getExitBlocks(exitbbs);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">while</span>(!exitbbs.empty())</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* eb = exitbbs.pop_back_val();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="classSVF_1_1PathCondAllocator.html#a39c0cc9dec89b0b52bf9f1026da942e1">isBBCallsProgExit</a>(eb))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; filteredbbs.insert(eb);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">bool</span> allPDT = <span class="keyword">true</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* pdt = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">getPostDT</a>(fun);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>&amp; filteredbb : filteredbbs)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span>(!pdt-&gt;dominates(dst,filteredbb))</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; allPDT =<span class="keyword">false</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span>(allPDT)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><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; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
1020
1020
  <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>
1021
1021
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
1022
1022
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1295e2c2c0a9c1a3744ba3927b95363e"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">SVF::PathCondAllocator::getPostDT</a></div><div class="ttdeci">PostDominatorTree * getPostDT(const Function *fun)</div><div class="ttdoc">Get Postdominators. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00153">PathCondAllocator.h:153</a></div></div>
1023
1023
  <div class="ttc" id="namespaceSVF_html_a02be4933b76c2baa7fdbe8b290e12bb3"><div class="ttname"><a href="namespaceSVF.html#a02be4933b76c2baa7fdbe8b290e12bb3">SVF::SmallBBVector</a></div><div class="ttdeci">llvm::SmallVector&lt; llvm::BasicBlock *, 8 &gt; SmallBBVector</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00118">SVFBasicTypes.h:118</a></div></div>
1024
- <div class="ttc" id="namespaceSVF_html_a77e088bfe47c0b0ddcbbe0693dec6fe5"><div class="ttname"><a href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">SVF::LoopInfo</a></div><div class="ttdeci">llvm::LoopInfo LoopInfo</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
1025
- <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
1024
+ <div class="ttc" id="namespaceSVF_html_a77e088bfe47c0b0ddcbbe0693dec6fe5"><div class="ttname"><a href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">SVF::LoopInfo</a></div><div class="ttdeci">llvm::LoopInfo LoopInfo</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
1025
+ <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
1026
1026
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00104">SVFBasicTypes.h:104</a></div></div>
1027
- <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
1028
- <div class="ttc" id="namespaceSVF_html_abf85e29310b2e4df8925d00a5c081314"><div class="ttname"><a href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVF::Loop</a></div><div class="ttdeci">llvm::Loop Loop</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
1027
+ <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
1028
+ <div class="ttc" id="namespaceSVF_html_abf85e29310b2e4df8925d00a5c081314"><div class="ttname"><a href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVF::Loop</a></div><div class="ttdeci">llvm::Loop Loop</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
1029
1029
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a10ddc3b02b2baad2edd72fe429113b0f"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a10ddc3b02b2baad2edd72fe429113b0f">SVF::PathCondAllocator::getLoopInfo</a></div><div class="ttdeci">LoopInfo * getLoopInfo(const Function *f)</div><div class="ttdoc">Get LoopInfo. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00158">PathCondAllocator.h:158</a></div></div>
1030
1030
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a39c0cc9dec89b0b52bf9f1026da942e1"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a39c0cc9dec89b0b52bf9f1026da942e1">SVF::PathCondAllocator::isBBCallsProgExit</a></div><div class="ttdeci">bool isBBCallsProgExit(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00428">PathCondAllocator.cpp:428</a></div></div>
1031
1031
  </div><!-- fragment -->
@@ -1072,7 +1072,7 @@ Private Attributes</h2></td></tr>
1072
1072
  <p>no branch call program exit </p>
1073
1073
 
1074
1074
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00211">211</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
1075
- <div class="fragment"><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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ1 = branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(0)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ac1689701c75e04481e2ae2f4482551c4">getBB</a>();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ2 = branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(1)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ac1689701c75e04481e2ae2f4482551c4">getBB</a>();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">bool</span> branch1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a39c0cc9dec89b0b52bf9f1026da942e1">isBBCallsProgExit</a>(succ1);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">bool</span> branch2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a39c0cc9dec89b0b52bf9f1026da942e1">isBBCallsProgExit</a>(succ2);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(branch1 &amp;&amp; !branch2)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(succ1 == succ)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!branch1 &amp;&amp; branch2)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span>(succ2 == succ)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// two branches both call program exit</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(branch1 &amp;&amp; branch2)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><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;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
1075
+ <div class="fragment"><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; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ1 = branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(0)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ac1689701c75e04481e2ae2f4482551c4">getBB</a>();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ2 = branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(1)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ac1689701c75e04481e2ae2f4482551c4">getBB</a>();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">bool</span> branch1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a39c0cc9dec89b0b52bf9f1026da942e1">isBBCallsProgExit</a>(succ1);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">bool</span> branch2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a39c0cc9dec89b0b52bf9f1026da942e1">isBBCallsProgExit</a>(succ2);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(branch1 &amp;&amp; !branch2)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(succ1 == succ)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!branch1 &amp;&amp; branch2)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span>(succ2 == succ)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// two branches both call program exit</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(branch1 &amp;&amp; branch2)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><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;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
1076
1076
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
1077
1077
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a0d059c9adce2c998ddf2489376beb8e2"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">SVF::PathCondAllocator::getFalseCond</a></div><div class="ttdeci">Condition * getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00099">PathCondAllocator.h:99</a></div></div>
1078
1078
  <div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01005">SVFStatements.h:1005</a></div></div>
@@ -1119,7 +1119,7 @@ Private Attributes</h2></td></tr>
1119
1119
  <p>Evaluate null like expression for source-sink related bug detection in SABER </p>
1120
1120
 
1121
1121
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00181">181</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
1122
- <div class="fragment"><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ1 = branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(0)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ac1689701c75e04481e2ae2f4482551c4">getBB</a>();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#af7959f60bca343fb5755cfa0c5d56cb1">isTestNullExpr</a>(branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a915384027ae53e99311f05a08edf99f0">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()))</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; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(succ1 == succ)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a03ee22dd8af2d9ca658e2437eeae0a10">isTestNotNullExpr</a>(branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a915384027ae53e99311f05a08edf99f0">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()))</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(succ1 == succ)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
1122
+ <div class="fragment"><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ1 = branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(0)-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#ac1689701c75e04481e2ae2f4482551c4">getBB</a>();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#af7959f60bca343fb5755cfa0c5d56cb1">isTestNullExpr</a>(branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a915384027ae53e99311f05a08edf99f0">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()))</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; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(succ1 == succ)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a03ee22dd8af2d9ca658e2437eeae0a10">isTestNotNullExpr</a>(branchStmt-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a915384027ae53e99311f05a08edf99f0">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">getValue</a>()))</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// succ is then branch</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(succ1 == succ)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// succ is else branch</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a>();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
1123
1123
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
1124
1124
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a0d059c9adce2c998ddf2489376beb8e2"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">SVF::PathCondAllocator::getFalseCond</a></div><div class="ttdeci">Condition * getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00099">PathCondAllocator.h:99</a></div></div>
1125
1125
  <div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01005">SVFStatements.h:1005</a></div></div>
@@ -1608,7 +1608,7 @@ Private Attributes</h2></td></tr>
1608
1608
  <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>
1609
1609
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
1610
1610
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a496a23bc37dfdea32c536e9ebe9a4b88"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a496a23bc37dfdea32c536e9ebe9a4b88">SVF::PathCondAllocator::getDT</a></div><div class="ttdeci">DominatorTree * getDT(const Function *fun)</div><div class="ttdoc">Get dominators. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00148">PathCondAllocator.h:148</a></div></div>
1611
- <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
1611
+ <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
1612
1612
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ac1ed60a8f59a55811c97c83def3bb739"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">SVF::PathCondAllocator::condNeg</a></div><div class="ttdeci">Condition * condNeg(Condition *cond)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00091">PathCondAllocator.h:91</a></div></div>
1613
1613
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5ab573cce84584c44778611ba6f4d99c"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">SVF::PathCondAllocator::ComputeIntraVFGGuard</a></div><div class="ttdeci">virtual Condition * ComputeIntraVFGGuard(const BasicBlock *src, const BasicBlock *dst)</div><div class="ttdoc">Guard Computation for a value-flow (between two basic blocks) </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00498">PathCondAllocator.cpp:498</a></div></div>
1614
1614
  </div><!-- fragment -->
@@ -1735,8 +1735,8 @@ Private Attributes</h2></td></tr>
1735
1735
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00428">428</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
1736
1736
  <div class="fragment"><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;{</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = bb-&gt;getParent();</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; FunToExitBBsMap::const_iterator it = <a class="code" href="classSVF_1_1PathCondAllocator.html#ad35f1bdb406a85c5bfdcbbc15642853b">funToExitBBsMap</a>.find(fun);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1PathCondAllocator.html#ad35f1bdb406a85c5bfdcbbc15642853b">funToExitBBsMap</a>.end())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* pdt = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">getPostDT</a>(fun);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>&amp; bit : it-&gt;second)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">if</span>(pdt-&gt;dominates(bit,bb))</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1295e2c2c0a9c1a3744ba3927b95363e"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">SVF::PathCondAllocator::getPostDT</a></div><div class="ttdeci">PostDominatorTree * getPostDT(const Function *fun)</div><div class="ttdoc">Get Postdominators. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00153">PathCondAllocator.h:153</a></div></div>
1737
1737
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ad35f1bdb406a85c5bfdcbbc15642853b"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ad35f1bdb406a85c5bfdcbbc15642853b">SVF::PathCondAllocator::funToExitBBsMap</a></div><div class="ttdeci">FunToExitBBsMap funToExitBBsMap</div><div class="ttdoc">map a function to all its basic blocks calling program exit </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00291">PathCondAllocator.h:291</a></div></div>
1738
- <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00113">BasicTypes.h:113</a></div></div>
1739
- <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
1738
+ <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
1739
+ <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
1740
1740
  </div><!-- fragment -->
1741
1741
  </div>
1742
1742
  </div>
@@ -1937,7 +1937,7 @@ Private Attributes</h2></td></tr>
1937
1937
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00375">375</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
1938
1938
  <div class="fragment"><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;{</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *op0 = cmp-&gt;getOperand(0);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *op1 = cmp-&gt;getOperand(1);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span> (SVFUtil::isa&lt;ConstantPointerNull&gt;(op1))</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const Value *&gt;</a> inDirVal;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</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_1PathCondAllocator.html#a0fa615ec0ccc48933b84d09b8e359da7">getCurEvalSVFGNode</a>()-&gt;getOutEdges())</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span> (it-&gt;isIndirectVFGEdge())</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; inDirVal.insert(it-&gt;getDstNode()-&gt;getValue());</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> inDirVal.find(op0) != inDirVal.end();</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;ConstantPointerNull&gt;(op0))</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const Value *&gt;</a> inDirVal;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</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_1PathCondAllocator.html#a0fa615ec0ccc48933b84d09b8e359da7">getCurEvalSVFGNode</a>()-&gt;getOutEdges())</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span> (it-&gt;isIndirectVFGEdge())</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; inDirVal.insert(it-&gt;getDstNode()-&gt;getValue());</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> inDirVal.find(op1) != inDirVal.end();</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00104">SVFBasicTypes.h:104</a></div></div>
1939
1939
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a0fa615ec0ccc48933b84d09b8e359da7"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a0fa615ec0ccc48933b84d09b8e359da7">SVF::PathCondAllocator::getCurEvalSVFGNode</a></div><div class="ttdeci">const SVFGNode * getCurEvalSVFGNode() const</div><div class="ttdoc">Get current value for branch condition evaluation. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00184">PathCondAllocator.h:184</a></div></div>
1940
- <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
1940
+ <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
1941
1941
  </div><!-- fragment -->
1942
1942
  </div>
1943
1943
  </div>
@@ -2059,7 +2059,7 @@ Private Attributes</h2></td></tr>
2059
2059
 
2060
2060
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00554">554</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
2061
2061
  <div class="fragment"><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;{</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;print path condition\n&quot;</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp; bbCond : <a class="code" href="classSVF_1_1PathCondAllocator.html#aff611b2797d61155c8c2f9d8ac4030bc">bbConds</a>)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bbCond.first;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>&amp; cit : bbCond.second)</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i=0;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ: successors(bb))</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">if</span> (i == cit.first)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* cond = cit.second;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; bb-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;--&gt;&quot;</span> &lt;&lt; succ-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="classSVF_1_1PathCondAllocator.html#aae773a674331bb80cc589835e0b16e4e">dumpCond</a>(cond) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; i++;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
2062
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
2062
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
2063
2063
  <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#l00084">SVFBasicTypes.h:84</a></div></div>
2064
2064
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aff611b2797d61155c8c2f9d8ac4030bc"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aff611b2797d61155c8c2f9d8ac4030bc">SVF::PathCondAllocator::bbConds</a></div><div class="ttdeci">BBCondMap bbConds</div><div class="ttdoc">map basic block to its successors/predecessors branch conditions </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00297">PathCondAllocator.h:297</a></div></div>
2065
2065
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>