svf-tools 1.0.459 → 1.0.460

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 (315) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +10 -10
  5. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  6. package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +12 -12
  9. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  11. package/SVF-doxygen/html/html/CHG_8cpp_source.html +8 -8
  12. package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +13 -13
  14. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  16. package/SVF-doxygen/html/html/ConsG_8h_source.html +3 -3
  17. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  18. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  19. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +2 -2
  20. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +17 -17
  21. package/SVF-doxygen/html/html/DCHG_8h_source.html +8 -8
  22. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  26. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +6 -6
  28. package/SVF-doxygen/html/html/ExeState_8cpp.html +1 -0
  29. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +26 -25
  30. package/SVF-doxygen/html/html/ExeState_8h_source.html +13 -13
  31. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  33. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  34. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +4 -4
  35. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +7 -7
  37. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  38. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +4 -4
  39. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  40. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
  43. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  44. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  45. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
  46. package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
  47. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +5 -5
  48. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +7 -7
  49. package/SVF-doxygen/html/html/IRGraph_8h_source.html +21 -21
  50. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +3 -3
  52. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +9 -9
  53. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +6 -6
  54. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +3 -3
  55. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  56. package/SVF-doxygen/html/html/LocationSet_8cpp.html +1 -0
  57. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +14 -13
  58. package/SVF-doxygen/html/html/LocationSet_8h_source.html +10 -10
  59. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +6 -6
  60. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
  61. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +8 -8
  62. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
  63. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  64. package/SVF-doxygen/html/html/MHP_8cpp_source.html +46 -46
  65. package/SVF-doxygen/html/html/MHP_8h.html +1 -0
  66. package/SVF-doxygen/html/html/MHP_8h_source.html +102 -101
  67. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
  69. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
  70. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +11 -11
  71. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +8 -8
  72. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +9 -9
  73. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  74. package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
  75. package/SVF-doxygen/html/html/MTA_8h_source.html +3 -3
  76. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  77. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  79. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
  81. package/SVF-doxygen/html/html/MemSSA_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  83. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  84. package/SVF-doxygen/html/html/PCG_8cpp_source.html +4 -4
  85. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  86. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
  87. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  88. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +18 -18
  89. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
  90. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
  91. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  92. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
  93. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +19 -19
  94. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +6 -6
  95. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +68 -50
  96. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +51 -50
  97. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  99. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  100. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  101. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  103. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  104. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +46 -46
  105. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +36 -36
  106. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +19 -19
  107. package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
  108. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  109. package/SVF-doxygen/html/html/SVFModule_8h_source.html +2 -2
  110. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  111. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
  112. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
  113. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -3
  114. package/SVF-doxygen/html/html/SVFVariables_8cpp.html +1 -0
  115. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +35 -32
  116. package/SVF-doxygen/html/html/SVFVariables_8h.html +0 -1
  117. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +140 -142
  118. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +2 -2
  119. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  120. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  121. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
  122. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  123. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +50 -50
  124. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  125. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp.html +1 -0
  126. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +95 -91
  127. package/SVF-doxygen/html/html/SymbolTableInfo_8h.html +0 -1
  128. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +141 -143
  129. package/SVF-doxygen/html/html/TCT_8cpp.html +1 -0
  130. package/SVF-doxygen/html/html/TCT_8cpp_source.html +41 -40
  131. package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
  132. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +2 -2
  133. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +4 -4
  134. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +5 -5
  135. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
  136. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  137. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +22 -22
  138. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +4 -4
  139. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -2
  140. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +61 -62
  141. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  142. package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -10
  143. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  144. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  145. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  146. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  147. package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
  148. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  150. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +4 -4
  152. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +10 -10
  153. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  156. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
  157. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +4 -4
  159. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +7 -7
  160. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
  162. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +18 -18
  164. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +6 -6
  165. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  166. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  167. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +15 -15
  169. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +16 -16
  171. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +16 -16
  173. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  174. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +11 -11
  175. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +50 -50
  176. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  177. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +3 -3
  178. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +2 -2
  180. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +20 -20
  183. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +18 -18
  185. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +40 -40
  186. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +22 -22
  188. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  190. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  191. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +8 -8
  192. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +9 -9
  193. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +183 -183
  194. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +45 -45
  200. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +29 -29
  203. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +9 -9
  205. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +10 -10
  206. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +21 -21
  207. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  213. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +6 -6
  214. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +27 -27
  215. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +20 -20
  216. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
  217. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +177 -177
  218. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +16 -16
  219. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +7 -7
  220. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +7 -7
  221. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
  222. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +8 -8
  223. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +91 -91
  224. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +9 -9
  225. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +98 -98
  228. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +35 -35
  230. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
  231. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +9 -9
  232. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +3 -3
  234. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +19 -19
  236. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +9 -9
  237. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +31 -31
  238. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +3 -3
  239. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +19 -19
  241. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  242. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +27 -27
  243. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +4 -4
  244. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  245. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  246. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +62 -62
  247. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +66 -66
  248. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  249. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +98 -106
  251. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +3 -3
  252. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +7 -7
  253. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  254. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +38 -38
  255. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +78 -78
  256. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +2 -2
  257. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +224 -240
  258. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +88 -88
  259. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +7 -7
  261. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
  263. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +36 -36
  264. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +13 -13
  266. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
  268. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +19 -19
  270. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +4 -4
  272. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +2 -2
  273. package/SVF-doxygen/html/html/functions_func_g.html +1 -1
  274. package/SVF-doxygen/html/html/functions_func_h.html +1 -1
  275. package/SVF-doxygen/html/html/functions_func_i.html +1 -1
  276. package/SVF-doxygen/html/html/functions_g.html +1 -1
  277. package/SVF-doxygen/html/html/functions_h.html +1 -1
  278. package/SVF-doxygen/html/html/functions_i.html +1 -1
  279. package/SVF-doxygen/html/html/globals_c.html +103 -100
  280. package/SVF-doxygen/html/html/globals_s.html +9 -7
  281. package/SVF-doxygen/html/html/globals_type.html +3 -0
  282. package/SVF-doxygen/html/html/namespaceSVF.html +25 -43
  283. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +14 -14
  284. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +23 -23
  285. package/SVF-doxygen/html/html/namespacemembers_c.html +0 -3
  286. package/SVF-doxygen/html/html/namespacemembers_type.html +0 -3
  287. package/SVF-doxygen/html/html/search/all_13.js +3 -3
  288. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  289. package/SVF-doxygen/html/html/search/all_7.js +1 -1
  290. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  291. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  292. package/SVF-doxygen/html/html/search/functions_6.js +1 -1
  293. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  294. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  295. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  296. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +3 -3
  297. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  298. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +3 -3
  299. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  300. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +14 -14
  301. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  302. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  303. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  304. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  305. package/include/MTA/MHP.h +1 -0
  306. package/include/MemoryModel/SVFVariables.h +1 -8
  307. package/include/MemoryModel/SymbolTableInfo.h +2 -22
  308. package/include/SVF-FE/BasicTypes.h +1 -0
  309. package/include/Util/BasicTypes.h +0 -1
  310. package/lib/MTA/TCT.cpp +1 -0
  311. package/lib/MemoryModel/LocationSet.cpp +1 -0
  312. package/lib/MemoryModel/SVFVariables.cpp +10 -1
  313. package/lib/MemoryModel/SymbolTableInfo.cpp +26 -0
  314. package/lib/Util/ExeState.cpp +1 -0
  315. package/package.json +1 -1
@@ -104,7 +104,7 @@ $(function() {
104
104
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
105
105
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aa436aac95be84d1946169f4984deae59"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aa436aac95be84d1946169f4984deae59">SVF::ConstraintGraph::moveOutEdgesToRepNode</a></div><div class="ttdeci">bool moveOutEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00478">ConsG.cpp:478</a></div></div>
106
106
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4_html_aa72b3ad953c6ea3309c83735512ff408"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html#aa72b3ad953c6ea3309c83735512ff408">llvm::DOTGraphTraits&lt; ConstraintGraph * &gt;::getNodeLabel</a></div><div class="ttdeci">static std::string getNodeLabel(NodeType *n, ConstraintGraph *)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00644">ConsG.cpp:644</a></div></div>
107
- <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
107
+ <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
108
108
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4_html_a007736227bec42182208176006b7d83d"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html#a007736227bec42182208176006b7d83d">llvm::DOTGraphTraits&lt; ConstraintGraph * &gt;::DOTGraphTraits</a></div><div class="ttdeci">DOTGraphTraits(bool isSimple=false)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00620">ConsG.cpp:620</a></div></div>
109
109
  <div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
110
110
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4_html_a9ed4562e3c1223c20e76e1372ba8b30d"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html#a9ed4562e3c1223c20e76e1372ba8b30d">llvm::DOTGraphTraits&lt; ConstraintGraph * &gt;::getGraphName</a></div><div class="ttdeci">static std::string getGraphName(ConstraintGraph *)</div><div class="ttdoc">Return name of the graph. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00626">ConsG.cpp:626</a></div></div>
@@ -149,7 +149,7 @@ $(function() {
149
149
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00392">SVFUtil.cpp:392</a></div></div>
150
150
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a77ba38543b1ee164f1ae95589d5dbc44"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a77ba38543b1ee164f1ae95589d5dbc44">SVF::ConstraintGraph::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00150">ConsG.cpp:150</a></div></div>
151
151
  <div class="ttc" id="classSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
152
- <div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00096">SVFVariables.h:96</a></div></div>
152
+ <div class="ttc" id="classSVF_1_1SVFVar_html_afaa33caa8d2a306f6741d9d066243e40"><div class="ttname"><a href="classSVF_1_1SVFVar.html#afaa33caa8d2a306f6741d9d066243e40">SVF::SVFVar::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get/has methods of the components. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00095">SVFVariables.h:95</a></div></div>
153
153
  <div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet &amp; getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00440">SVFStatements.h:440</a></div></div>
154
154
  <div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01021">SVFStatements.h:1021</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_ad155e1ed2473cc4f5f57128d282ac541"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#ad155e1ed2473cc4f5f57128d282ac541">SVF::ConstraintEdge::ConstraintEdgeSetTy</a></div><div class="ttdeci">GenericNode&lt; ConstraintNode, ConstraintEdge &gt;::GEdgeSetTy ConstraintEdgeSetTy</div><div class="ttdoc">Constraint edge type. </div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00085">ConsGEdge.h:85</a></div></div>
@@ -72,7 +72,7 @@ $(function() {
72
72
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a04a57ef9803917346cb966e05ecd0de4"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a04a57ef9803917346cb966e05ecd0de4">SVF::ConstraintGraph::getEdge</a></div><div class="ttdeci">ConstraintEdge * getEdge(ConstraintNode *src, ConstraintNode *dst, ConstraintEdge::ConstraintEdgeK kind)</div><div class="ttdoc">Get an edge via its src and dst nodes and kind. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00146">ConsG.h:146</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a8ba74f82c1e796f2888ba34bc8355ce9"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a8ba74f82c1e796f2888ba34bc8355ce9">SVF::ConstraintGraph::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00310">ConsG.h:310</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a27d8078577d479c84f2a87b44f015d1c"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a27d8078577d479c84f2a87b44f015d1c">SVF::ConstraintGraph::view</a></div><div class="ttdeci">void view()</div><div class="ttdoc">View graph from the debugger. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00605">ConsG.cpp:605</a></div></div>
75
- <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00392">SymbolTableInfo.h:392</a></div></div>
75
+ <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00372">SymbolTableInfo.h:372</a></div></div>
76
76
  <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00131">CFLGraph.h:131</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375">SVF::ConstraintEdge::ConstraintEdgeK</a></div><div class="ttdeci">ConstraintEdgeK</div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00054">ConsGEdge.h:54</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1ConstraintEdge_html_a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375ae5df3ce07dd670b48916f7b8ab33ae5a">SVF::ConstraintEdge::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00056">ConsGEdge.h:56</a></div></div>
@@ -92,7 +92,7 @@ $(function() {
92
92
  <div class="ttc" id="classSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00414">SVFIR.h:414</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_afe34ca6bdbb22b188799a4297fd19004"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#afe34ca6bdbb22b188799a4297fd19004">SVF::ConstraintGraph::NodeToRepMap</a></div><div class="ttdeci">Map&lt; NodeID, NodeID &gt; NodeToRepMap</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00050">ConsG.h:50</a></div></div>
95
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00133">BasicTypes.h:133</a></div></div>
95
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00410">SVFIR.h:410</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a633666953f8d6675961981c4eab1adb0"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a633666953f8d6675961981c4eab1adb0">SVF::ConstraintGraph::addStoreCGEdge</a></div><div class="ttdeci">StoreCGEdge * addStoreCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Store edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00261">ConsG.cpp:261</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_aabe2861fcbc364e2c8aa8114d4879c39"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#aabe2861fcbc364e2c8aa8114d4879c39">SVF::ConstraintGraph::moveEdgesToRepNode</a></div><div class="ttdeci">bool moveEdgesToRepNode(ConstraintNode *node, ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00284">ConsG.h:284</a></div></div>
@@ -134,7 +134,7 @@ $(function() {
134
134
  <div class="ttc" id="classSVF_1_1StoreCGEdge_html"><div class="ttname"><a href="classSVF_1_1StoreCGEdge.html">SVF::StoreCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00157">ConsGEdge.h:157</a></div></div>
135
135
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_acc23df2db1fa7b8e0270d8a04f08f2ee"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#acc23df2db1fa7b8e0270d8a04f08f2ee">SVF::ConstraintGraph::removeAddrEdge</a></div><div class="ttdeci">void removeAddrEdge(AddrCGEdge *edge)</div><div class="ttdoc">Remove addr edge from their src and dst edge sets. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00369">ConsG.cpp:369</a></div></div>
136
136
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_ab2b4725a8fcae8a1bc3c026d236005b8"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#ab2b4725a8fcae8a1bc3c026d236005b8">SVF::ConstraintGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode()</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00306">ConsG.h:306</a></div></div>
137
- <div class="ttc" id="classSVF_1_1MemObj_html_a51be7ad70bc2c6a4230bd2f6b86bdc88"><div class="ttname"><a href="classSVF_1_1MemObj.html#a51be7ad70bc2c6a4230bd2f6b86bdc88">SVF::MemObj::getMaxFieldOffsetLimit</a></div><div class="ttdeci">u32_t getMaxFieldOffsetLimit() const</div><div class="ttdoc">Get max field offset limit. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00687">SymbolTableInfo.cpp:687</a></div></div>
137
+ <div class="ttc" id="classSVF_1_1MemObj_html_a51be7ad70bc2c6a4230bd2f6b86bdc88"><div class="ttname"><a href="classSVF_1_1MemObj.html#a51be7ad70bc2c6a4230bd2f6b86bdc88">SVF::MemObj::getMaxFieldOffsetLimit</a></div><div class="ttdeci">u32_t getMaxFieldOffsetLimit() const</div><div class="ttdoc">Get max field offset limit. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00688">SymbolTableInfo.cpp:688</a></div></div>
138
138
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a148235bd1355a700d3ce187702e89bc8"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a148235bd1355a700d3ce187702e89bc8">SVF::ConstraintGraph::setSubs</a></div><div class="ttdeci">void setSubs(NodeID node, NodeBS &amp;subs)</div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8h_source.html#l00250">ConsG.h:250</a></div></div>
139
139
  <div class="ttc" id="classSVF_1_1ConstraintGraph_html_a60bb27100e8c264be2add004069d1758"><div class="ttname"><a href="classSVF_1_1ConstraintGraph.html#a60bb27100e8c264be2add004069d1758">SVF::ConstraintGraph::addCopyCGEdge</a></div><div class="ttdeci">CopyCGEdge * addCopyCGEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge. </div><div class="ttdef"><b>Definition:</b> <a href="ConsG_8cpp_source.html#l00186">ConsG.cpp:186</a></div></div>
140
140
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a0ffe4f1ca1a6f70466cc1c6b3b12c90d"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a0ffe4f1ca1a6f70466cc1c6b3b12c90d">SVF::ConstraintNode::isPWCNode</a></div><div class="ttdeci">bool isPWCNode() const</div><div class="ttdoc">Whether a node involves in PWC, if so, all its points-to elements should become field-insensitive. </div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00094">ConsGNode.h:94</a></div></div>
@@ -68,7 +68,7 @@ $(function() {
68
68
  <div class="contents">
69
69
  <a href="ContextDDA_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * ContextDDA.cpp</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Created on: Aug 17, 2014</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ContextDDA_8h.html">DDA/ContextDDA.h</a>&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="FlowDDA_8h.html">DDA/FlowDDA.h</a>&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="DDAClient_8h.html">DDA/DDAClient.h</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ac73213825d188fb4d1105ddc472fde05"> 20</a></span>&#160;<a class="code" href="classSVF_1_1ContextDDA.html#ac73213825d188fb4d1105ddc472fde05">ContextDDA::ContextDDA</a>(<a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* _pag, <a class="code" href="classSVF_1_1DDAClient.html">DDAClient</a>* client)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; : <a class="code" href="classSVF_1_1CondPTAImpl.html">CondPTAImpl</a>&lt;<a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>&gt;(_pag, <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>::Cxt_DDA),<a class="code" href="classSVF_1_1DDAVFSolver.html">DDAVFSolver</a>&lt;<a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>,<a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>,<a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a>&gt;(),</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; _client(client)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>(_pag, client);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a691e26b2d370efe2aee77212f982a1ed"> 30</a></span>&#160;<a class="code" href="classSVF_1_1ContextDDA.html#a691e26b2d370efe2aee77212f982a1ed">ContextDDA::~ContextDDA</a>()</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a>)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#adb9f21a86daeb2dd79537f3939c393cf"> 40</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#adb9f21a86daeb2dd79537f3939c393cf">ContextDDA::initialize</a>()</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">CondPTAImpl&lt;ContextCond&gt;::initialize</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#af34ed8482d3737a8aaaff2d5c75960ec">buildSVFG</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afc2b0eeb1d5d5f292690f3c949217c38">setCallGraph</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>());</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#abd652b2627f68d7d4f8bf3bdb20ce975">setCallGraphSCC</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a0bddf297a2d8cd59ce9a232f0229f248">getCallGraphSCC</a>());</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <a class="code" href="classSVF_1_1DDAVFSolver.html#adcb641eec4f620effdb3f61a46429f40">setDDAStat</a>(<span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAVFSolver.html#af83f88f2ae2456f2691e8822d56b1598">DDAStat</a>(<span class="keyword">this</span>));</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a>-&gt;<a class="code" href="classSVF_1_1FlowDDA.html#af1fcf058a9feefeda63f07d4189513a1">initialize</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#ae0f3b07267ded5f0ee879c39effff864"> 53</a></span>&#160;<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>&amp; <a class="code" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">ContextDDA::computeDDAPts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>&amp; var)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#afe518d3d7f8051de5b9860f2460aa1b7">resetQuery</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="classSVF_1_1DPItem.html#a687ef8944ccb55b826508c47ea5b9240">LocDPItem::setMaxBudget</a>(<a class="code" href="classSVF_1_1Options.html#a7b9af13feccc116377aeb107640ae874">Options::CxtBudget</a>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = var.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a> dpm = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad7d92fad8606d5512786a7b7a08930e2">getDPIm</a>(var, <a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(node));</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">// start DDA analysis</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">DDAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>&amp; cpts = <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dpm);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a> = <a class="code" href="classSVF_1_1PTAStat.html#a3c4eaa1695ea13405911ae1621f98edc">DDAStat::getClk</a>(<span class="keyword">true</span>) - start);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a> += <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-&gt;<a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7994236bff84ba8244592fdf5e546734">isOutOfBudgetQuery</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1CondPTAImpl.html#a1a95d1d6ac48157c896d9895cff697b4">unionPts</a>(var,cpts);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a1b9bfe46777c8a57781452a05635fb02">handleOutOfBudgetDpm</a>(dpm);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#adef061d4454a1b1fb46efa4013d9a956">performStatPerQuery</a>(<span class="keywordtype">id</span>));</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="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-&gt;<a class="code" href="classSVF_1_1PTAStat.html#a7ce0630cfe41448bec002f03a176175d">printStatPerQuery</a>(<span class="keywordtype">id</span>,<a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var))));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5"> 83</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">ContextDDA::computeDDAPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</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="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(cxt, <span class="keywordtype">id</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">computeDDAPts</a>(var);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a1b9bfe46777c8a57781452a05635fb02"> 93</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ContextDDA.html#a1b9bfe46777c8a57781452a05635fb02">ContextDDA::handleOutOfBudgetDpm</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a>&amp; dpm)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</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; <span class="stringliteral">&quot;~~~Out of budget query, downgrade to flow sensitive analysis \n&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a>-&gt;<a class="code" href="classSVF_1_1FlowDDA.html#a113faa56ee75eff39da19fd4b47a47e0">computeDDAPts</a>(dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; flowPts = <a class="code" href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">flowDDA</a>-&gt;<a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> cxtPts;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> it = flowPts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), eit = flowPts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); it!=eit; ++it)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(cxt, *it);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; cxtPts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(var);</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">updateCachedPointsTo</a>(dpm,cxtPts);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1CondPTAImpl.html#a1a95d1d6ac48157c896d9895cff697b4">unionPts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ab1098f5093419b62ea27a20933059270">getCondVar</a>(),cxtPts);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classSVF_1_1DDAVFSolver.html#ae1e77060ac22d465b5cc9430962e280c">addOutOfBudgetDpm</a>(dpm);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a57d309971de00db9bd8c6bfaf237cbff"> 114</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a57d309971de00db9bd8c6bfaf237cbff">ContextDDA::isCondCompatible</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>&amp; cxt1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a>&amp; cxt2, <span class="keywordtype">bool</span> singleton)<span class="keyword"> const</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(singleton)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">int</span> i = cxt1.<a class="code" href="classSVF_1_1ContextCond.html#a20f15a1661f928ab80bacaf8f5c497b1">cxtSize</a>() - 1;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">int</span> j = cxt2.<a class="code" href="classSVF_1_1ContextCond.html#a20f15a1661f928ab80bacaf8f5c497b1">cxtSize</a>() - 1;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">for</span>(; i &gt;= 0 &amp;&amp; j&gt;=0; i--, j--)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(cxt1[i] != cxt2[j])</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</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; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#aefd2b50015aa98fa88a508e3ed1d402a"> 132</a></span>&#160;<a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> <a class="code" href="classSVF_1_1ContextDDA.html#aefd2b50015aa98fa88a508e3ed1d402a">ContextDDA::processGepPts</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepVFGNode.html">GepSVFGNode</a>* gep, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a>&amp; srcPts)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="classSVF_1_1CondStdSet.html">CxtPtSet</a> tmpDstPts;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1CondStdSet.html#a6d82b5ddafa28542ce65adb0cc56cdce">CxtPtSet::iterator</a> piter = srcPts.<a class="code" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">begin</a>(); piter != srcPts.<a class="code" href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">end</a>(); ++piter)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> ptd = *piter;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a45462312a746339fff8b990a093d9a1b">isBlkObjOrConstantObj</a>(ptd.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>()))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; tmpDstPts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(ptd);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* gepStmt = SVFUtil::cast&lt;GepStmt&gt;(gep-&gt;<a class="code" href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">getPAGEdge</a>());</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (gepStmt-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>())</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ac5683fe2e24b393ccc5cb6d8bc92cf2b">setObjFieldInsensitive</a>(ptd.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>());</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(ptd.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),<a class="code" href="classSVF_1_1PointerAnalysis.html#a68b05bc02c5473c1e0d39ac4f4454bac">getFIObjVar</a>(ptd.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>()));</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; tmpDstPts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(var);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(ptd.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(),<a class="code" href="classSVF_1_1PointerAnalysis.html#acbbc0934af9bc0145389dc41430c6d8b">getGepObjVar</a>(ptd.<a class="code" href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">get_id</a>(),gepStmt-&gt;<a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>()));</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; tmpDstPts.<a class="code" href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">set</a>(var);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t return created gep objs &quot;</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; srcPts.<a class="code" href="classSVF_1_1CondStdSet.html#a07267b0a4f7cfeaa6d1f7d722932c4d5">toString</a>());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; --&gt; &quot;</span>);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; tmpDstPts.<a class="code" href="classSVF_1_1CondStdSet.html#a07267b0a4f7cfeaa6d1f7d722932c4d5">toString</a>());</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> tmpDstPts;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a05ac33ca33efb58099839f72050bb008"> 166</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a05ac33ca33efb58099839f72050bb008">ContextDDA::testIndCallReachability</a>(<a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a>&amp; dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;isIndirectCallSites(cs))</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span> = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(cs);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> funptrVar(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ab1098f5093419b62ea27a20933059270">getCondVar</a>().<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>(), id);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a> funptrDpm = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad7d92fad8606d5512786a7b7a08930e2">getDPIm</a>(funptrVar,<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(node));</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts = <a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(funptrDpm));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(pts.<a class="code" href="classSVF_1_1PointsTo.html#af61271fefa574c39f405fdfee59a8b3f">test</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;getObjectNode(callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>())))</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92"> 187</a></span>&#160;<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">ContextDDA::getCSIDAtCall</a>(<a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a>&amp;, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> svfg_csId = 0;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallDirSVFGEdge.html">CallDirSVFGEdge</a>* callEdge = SVFUtil::dyn_cast&lt;CallDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; svfg_csId = callEdge-&gt;getCallSiteId();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; svfg_csId = SVFUtil::cast&lt;CallIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#a246cce511b8e9164a7c1760d1983f492">getCallSite</a>(svfg_csId);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>()-&gt;getFun();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;hasCallSiteID(cbn,callee))</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn,callee);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</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; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202"> 211</a></span>&#160;<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> <a class="code" href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">ContextDDA::getCSIDAtRet</a>(<a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a>&amp;, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;{</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> svfg_csId = 0;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetDirSVFGEdge.html">RetDirSVFGEdge</a>* retEdge = SVFUtil::dyn_cast&lt;RetDirSVFGEdge&gt;(edge))</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; svfg_csId = retEdge-&gt;getCallSiteId();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; svfg_csId = SVFUtil::cast&lt;RetIndSVFGEdge&gt;(edge)-&gt;getCallSiteId();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = <a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-&gt;<a class="code" href="classSVF_1_1VFG.html#a246cce511b8e9164a7c1760d1983f492">getCallSite</a>(svfg_csId);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>()-&gt;getFun();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;hasCallSiteID(cbn,callee))</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">getCallSiteID</a>(cbn,callee);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;}</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#aa8a7b6e99b92abfa5c2404515b703a2d"> 233</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#aa8a7b6e99b92abfa5c2404515b703a2d">ContextDDA::handleBKCondition</a>(<a class="code" href="classSVF_1_1CxtStmtDPItem.html">CxtLocDPItem</a>&amp; dpm, <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#ae3b04859ed69c47302177988aa68a70b">_client</a>-&gt;<a class="code" href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">handleStatement</a>(edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(), dpm.<a class="code" href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">getCurNodeID</a>());</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">isCallVFGEdge</a>())</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1ContextDDA.html#a2ce589a1d63a5126e178fc47527e0f92">getCSIDAtCall</a>(dpm,edge))</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;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(csId))</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t call edge &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;getCallerOfCallSite(csId)-&gt;getName() &lt;&lt;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="stringliteral">&quot;=&gt;&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;getCalleeOfCallSite(csId)-&gt;getName() &lt;&lt; <span class="stringliteral">&quot;in recursion \n&quot;</span>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">popRecursiveCallSites</a>(dpm);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#a35c0c0d5194983769e313d6e31b3d7ec">matchContext</a>(csId) == <span class="keyword">false</span>)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t context not match, edge &quot;</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot; --| &quot;</span> &lt;&lt; edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot; \t&quot;</span>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t match contexts &quot;</span>);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</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; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">isRetVFGEdge</a>())</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">CallSiteID</a> csId = <a class="code" href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">getCSIDAtRet</a>(dpm,edge))</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;</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_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">isEdgeInRecursion</a>(csId))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>,<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t return edge &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;getCalleeOfCallSite(csId)-&gt;getName() &lt;&lt;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="stringliteral">&quot;=&gt;&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>()-&gt;getCallerOfCallSite(csId)-&gt;getName() &lt;&lt; <span class="stringliteral">&quot;in recursion \n&quot;</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">popRecursiveCallSites</a>(dpm);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>().<a class="code" href="classSVF_1_1ContextCond.html#a6f5b0bbc0978220aaa990f5fd0ddce8d">containCallStr</a>(csId))</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; <a class="code" href="classSVF_1_1DDAVFSolver.html#afdecfbacc64cb8d694268aa73ec8a7b6">outOfBudgetQuery</a> = <span class="keyword">true</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">&quot;Call site ID is contained in call string. Is this a recursion?&quot;</span>);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</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">else</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>().<a class="code" href="classSVF_1_1ContextCond.html#a6f5b0bbc0978220aaa990f5fd0ddce8d">containCallStr</a>(csId) ==<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;contain visited call string ??&quot;</span>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#a3bb07147466d6ccb397616e1c09fc60b">pushContext</a>(csId))</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t push context &quot;</span>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">else</span></div><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; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;\t\t context is full &quot;</span>);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a40845b3027a1237076aa8297ca39e730">DDDA</a>, <a class="code" href="classSVF_1_1ContextDDA.html#ac3e622d810ee69917b7bef08a882117c">dumpContexts</a>(dpm.<a class="code" href="classSVF_1_1CxtStmtDPItem.html#ace41c90e66f6a85f12ff67540ad9d594">getCond</a>()));</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</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; }</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">return</span> <span class="keyword">true</span>;</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;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1ContextDDA.html#a02902af9bc4455b994a5da4a9d6cf121"> 312</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ContextDDA.html#a02902af9bc4455b994a5da4a9d6cf121">ContextDDA::isHeapCondMemObj</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a>&amp; var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreVFGNode.html">StoreSVFGNode</a>*)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;{</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397">getPtrNodeID</a>(var));</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(mem &amp;&amp; <span class="stringliteral">&quot;memory object is null??&quot;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span> (!mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>())</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a> *pnode = <a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<a class="code" href="classSVF_1_1ContextDDA.html#a6ae16be6774994932aaa594c9b9cb397">getPtrNodeID</a>(var));</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1GepObjVar.html">GepObjVar</a>* gepobj = SVFUtil::dyn_cast&lt;GepObjVar&gt;(pnode))</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="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;DummyObjVar&gt;(<a class="code" href="classSVF_1_1DDAVFSolver.html#a5521918cc06c182c821b9fae8136e4fe">_pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(gepobj-&gt;getBaseNode())) &amp;&amp; <span class="stringliteral">&quot;emtpy refVal in a gep object whose base is a non-dummy object&quot;</span>);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((SVFUtil::isa&lt;DummyObjVar&gt;(pnode) || SVFUtil::isa&lt;DummyValVar&gt;(pnode)) &amp;&amp; <span class="stringliteral">&quot;empty refVal in non-dummy object&quot;</span>);</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; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* mallocSite = SVFUtil::dyn_cast&lt;Instruction&gt;(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()))</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = mallocSite-&gt;getFunction();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#aa1d1b6e8cc23f0a6d3935cbe4f02cbdf">_ander</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#aa725a0c9426e8615cbc078c88561f66a">isInRecursion</a>(svfFun))</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(var.<a class="code" href="classSVF_1_1CondVar.html#af84e7bfcff909009be5e109c600c63fe">get_cond</a>().isConcreteCxt() == <span class="keyword">false</span>)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ContextDDA.html#afb57381096ffc49b2065de6d9bf00895">loopInfoBuilder</a>.<a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a418e6009760a7c9a048d2ffd9cd29956">getLoopInfo</a>(fun)-&gt;getLoopFor(mallocSite-&gt;getParent()))</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a711bd8ad385f8454fbfcd20f134efe1b"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a711bd8ad385f8454fbfcd20f134efe1b">SVF::PTACallGraph::getCallSiteID</a></div><div class="ttdeci">CallSiteID getCallSiteID(const CallICFGNode *cs, const SVFFunction *callee) const</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00344">PTACallGraph.h:344</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1StoreVFGNode_html"><div class="ttname"><a href="classSVF_1_1StoreVFGNode.html">SVF::StoreVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00240">VFGNode.h:240</a></div></div>
71
- <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00392">SymbolTableInfo.h:392</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00372">SymbolTableInfo.h:372</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver&lt; CxtVar, CxtPtSet, CxtLocDPItem &gt;::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00768">DDAVFSolver.h:768</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1CondVar_html_a5d64fa2be89051cd03301e3b07bffd6a"><div class="ttname"><a href="classSVF_1_1CondVar.html#a5d64fa2be89051cd03301e3b07bffd6a">SVF::CondVar::get_id</a></div><div class="ttdeci">NodeID get_id() const</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00103">ConditionalPT.h:103</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1CondStdSet_html_a93c232ef7e5dea652622da7f994e1dc3"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#a93c232ef7e5dea652622da7f994e1dc3">SVF::CondStdSet::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00195">ConditionalPT.h:195</a></div></div>
@@ -88,7 +88,7 @@ $(function() {
88
88
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00180">PointsTo.h:180</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
91
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00133">BasicTypes.h:133</a></div></div>
91
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1Options_html_a7b9af13feccc116377aeb107640ae874"><div class="ttname"><a href="classSVF_1_1Options.html#a7b9af13feccc116377aeb107640ae874">SVF::Options::CxtBudget</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned long long &gt; CxtBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00080">Options.h:80</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1CxtStmtDPItem_html_a3bb07147466d6ccb397616e1c09fc60b"><div class="ttname"><a href="classSVF_1_1CxtStmtDPItem.html#a3bb07147466d6ccb397616e1c09fc60b">SVF::CxtStmtDPItem::pushContext</a></div><div class="ttdeci">bool pushContext(NodeID cxt)</div><div class="ttdoc">Push context. </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00399">DPItem.h:399</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1ContextDDA_html_a337eb89cc5f31741ad8d840d9f284ca5"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">SVF::ContextDDA::computeDDAPts</a></div><div class="ttdeci">virtual void computeDDAPts(NodeID id) override</div><div class="ttdoc">Compute points-to set for an unconditional pointer. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00083">ContextDDA.cpp:83</a></div></div>
@@ -98,7 +98,7 @@ $(function() {
98
98
  <div class="ttc" id="classSVF_1_1DDAClient_html_aec3de00152e828beb5037269430f387d"><div class="ttname"><a href="classSVF_1_1DDAClient.html#aec3de00152e828beb5037269430f387d">SVF::DDAClient::handleStatement</a></div><div class="ttdeci">virtual void handleStatement(const SVFGNode *, NodeID)</div><div class="ttdoc">Call back used by DDAVFSolver. </div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00054">DDAClient.h:54</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1GepVFGNode_html"><div class="ttname"><a href="classSVF_1_1GepVFGNode.html">SVF::GepVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00594">VFGNode.h:594</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1ContextDDA_html_a2a23f0235fc49a177b2694f668b02551"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a2a23f0235fc49a177b2694f668b02551">SVF::ContextDDA::flowDDA</a></div><div class="ttdeci">FlowDDA * flowDDA</div><div class="ttdoc">downgrade to flowDDA if out-of-budget </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00196">ContextDDA.h:196</a></div></div>
101
- <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
101
+ <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
102
102
  <div class="ttc" id="classSVF_1_1ContextDDA_html_a2754d0fd4b168786c990bbf36538b151"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a2754d0fd4b168786c990bbf36538b151">SVF::ContextDDA::popRecursiveCallSites</a></div><div class="ttdeci">virtual void popRecursiveCallSites(CxtLocDPItem &amp;dpm)</div><div class="ttdoc">Pop recursive callsites. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00095">ContextDDA.h:95</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1ContextCond_html_a20f15a1661f928ab80bacaf8f5c497b1"><div class="ttname"><a href="classSVF_1_1ContextCond.html#a20f15a1661f928ab80bacaf8f5c497b1">SVF::ContextCond::cxtSize</a></div><div class="ttdeci">u32_t cxtSize() const</div><div class="ttdoc">Get context size. </div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00235">DPItem.h:235</a></div></div>
104
104
  <div class="ttc" id="classSVF_1_1StmtVFGNode_html_a4dd7615f42971da9b6ec1dc04f0ec4e6"><div class="ttname"><a href="classSVF_1_1StmtVFGNode.html#a4dd7615f42971da9b6ec1dc04f0ec4e6">SVF::StmtVFGNode::getPAGEdge</a></div><div class="ttdeci">const PAGEdge * getPAGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00136">VFGNode.h:136</a></div></div>
@@ -142,7 +142,7 @@ $(function() {
142
142
  <div class="ttc" id="namespaceSVF_html_a03d88a0302bcd253387690f13f693f64"><div class="ttname"><a href="namespaceSVF.html#a03d88a0302bcd253387690f13f693f64">SVF::CallSiteID</a></div><div class="ttdeci">unsigned CallSiteID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
143
143
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a239a55960dfbbe73df63063070a18b56"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56">SVF::DDAVFSolver&lt; CxtVar, CxtPtSet, CxtLocDPItem &gt;::updateCachedPointsTo</a></div><div class="ttdeci">virtual void updateCachedPointsTo(const CxtLocDPItem &amp;dpm, const CxtPtSet &amp;pts)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00539">DDAVFSolver.h:539</a></div></div>
144
144
  <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>
145
- <div class="ttc" id="classSVF_1_1GepObjVar_html"><div class="ttname"><a href="classSVF_1_1GepObjVar.html">SVF::GepObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00443">SVFVariables.h:443</a></div></div>
145
+ <div class="ttc" id="classSVF_1_1GepObjVar_html"><div class="ttname"><a href="classSVF_1_1GepObjVar.html">SVF::GepObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00436">SVFVariables.h:436</a></div></div>
146
146
  <div class="ttc" id="PointsTo_8h_html"><div class="ttname"><a href="PointsTo_8h.html">PointsTo.h</a></div></div>
147
147
  <div class="ttc" id="classSVF_1_1DDAClient_html"><div class="ttname"><a href="classSVF_1_1DDAClient.html">SVF::DDAClient</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAClient_8h_source.html#l00025">DDAClient.h:25</a></div></div>
148
148
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00155">PointerAnalysis.h:155</a></div></div>
@@ -159,7 +159,7 @@ $(function() {
159
159
  <div class="ttc" id="classSVF_1_1ContextDDA_html_a7687f36ad3f27bb16069975f00a1a202"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a7687f36ad3f27bb16069975f00a1a202">SVF::ContextDDA::getCSIDAtRet</a></div><div class="ttdeci">CallSiteID getCSIDAtRet(CxtLocDPItem &amp;dpm, const SVFGEdge *edge)</div><div class="ttdoc">get callsite id from return, return 0 if it is a spurious return edge </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00211">ContextDDA.cpp:211</a></div></div>
160
160
  <div class="ttc" id="classSVF_1_1ContextDDA_html_a1b9bfe46777c8a57781452a05635fb02"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a1b9bfe46777c8a57781452a05635fb02">SVF::ContextDDA::handleOutOfBudgetDpm</a></div><div class="ttdeci">void handleOutOfBudgetDpm(const CxtLocDPItem &amp;dpm)</div><div class="ttdoc">Handle out-of-budget dpm. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00093">ContextDDA.cpp:93</a></div></div>
161
161
  <div class="ttc" id="classSVF_1_1GepStmt_html_a0ddf180a0f7ba64fc8655687910e3788"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">SVF::GepStmt::isVariantFieldGep</a></div><div class="ttdeci">bool isVariantFieldGep() const</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00465">SVFStatements.h:465</a></div></div>
162
- <div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00724">SymbolTableInfo.cpp:724</a></div></div>
162
+ <div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00725">SymbolTableInfo.cpp:725</a></div></div>
163
163
  <div class="ttc" id="classSVF_1_1ContextCond_html"><div class="ttname"><a href="classSVF_1_1ContextCond.html">SVF::ContextCond</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00193">DPItem.h:193</a></div></div>
164
164
  <div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00159">SVFBasicTypes.h:159</a></div></div>
165
165
  <div class="ttc" id="classSVF_1_1DPItem_html_a03a90eca842c0e83d874902103f6fdb2"><div class="ttname"><a href="classSVF_1_1DPItem.html#a03a90eca842c0e83d874902103f6fdb2">SVF::DPItem::getCurNodeID</a></div><div class="ttdeci">NodeID getCurNodeID() const</div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00064">DPItem.h:64</a></div></div>
@@ -170,7 +170,7 @@ $(function() {
170
170
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a4352297ef44c4eff1efe2f348cce6fe9"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a4352297ef44c4eff1efe2f348cce6fe9">SVF::VFGEdge::isCallVFGEdge</a></div><div class="ttdeci">bool isCallVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00084">VFGEdge.h:84</a></div></div>
171
171
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
172
172
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
173
- <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00149">BasicTypes.h:149</a></div></div>
173
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00148">BasicTypes.h:148</a></div></div>
174
174
  <div class="ttc" id="classSVF_1_1DDAStat_html_a2b788792447d4bccceff2426b45a21b2"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">SVF::DDAStat::_AnaTimePerQuery</a></div><div class="ttdeci">double _AnaTimePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00039">DDAStat.h:39</a></div></div>
175
175
  <div class="ttc" id="classSVF_1_1PTAStat_html_adef061d4454a1b1fb46efa4013d9a956"><div class="ttname"><a href="classSVF_1_1PTAStat.html#adef061d4454a1b1fb46efa4013d9a956">SVF::PTAStat::performStatPerQuery</a></div><div class="ttdeci">virtual void performStatPerQuery(NodeID)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00159">PTAStat.h:159</a></div></div>
176
176
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
@@ -184,7 +184,7 @@ $(function() {
184
184
  <div class="ttc" id="classSVF_1_1FlowDDA_html_a113faa56ee75eff39da19fd4b47a47e0"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a113faa56ee75eff39da19fd4b47a47e0">SVF::FlowDDA::computeDDAPts</a></div><div class="ttdeci">void computeDDAPts(NodeID id) override</div><div class="ttdoc">Compute points-to set for all top variable. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8cpp_source.html#l00021">FlowDDA.cpp:21</a></div></div>
185
185
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae1e77060ac22d465b5cc9430962e280c"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae1e77060ac22d465b5cc9430962e280c">SVF::DDAVFSolver&lt; CxtVar, CxtPtSet, CxtLocDPItem &gt;::addOutOfBudgetDpm</a></div><div class="ttdeci">void addOutOfBudgetDpm(const CxtLocDPItem &amp;dpm)</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00715">DDAVFSolver.h:715</a></div></div>
186
186
  <div class="ttc" id="classSVF_1_1PTAStat_html_a7ce0630cfe41448bec002f03a176175d"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a7ce0630cfe41448bec002f03a176175d">SVF::PTAStat::printStatPerQuery</a></div><div class="ttdeci">virtual void printStatPerQuery(NodeID, const PointsTo &amp;)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00161">PTAStat.h:161</a></div></div>
187
- <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00416">SymbolTableInfo.h:416</a></div></div>
187
+ <div class="ttc" id="classSVF_1_1MemObj_html_a4da54ef60231d2e6c26669226b99d2f3"><div class="ttname"><a href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">SVF::MemObj::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00396">SymbolTableInfo.h:396</a></div></div>
188
188
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
189
189
  <div class="ttc" id="classSVF_1_1ContextDDA_html_a525949d1743136466d33bf4dc26ba423"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a525949d1743136466d33bf4dc26ba423">SVF::ContextDDA::isEdgeInRecursion</a></div><div class="ttdeci">virtual bool isEdgeInRecursion(CallSiteID csId)</div><div class="ttdoc">Whether call/return inside recursion. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00106">ContextDDA.h:106</a></div></div>
190
190
  <div class="ttc" id="classSVF_1_1CondStdSet_html_ae11deddad534be115d29daad08c90599"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#ae11deddad534be115d29daad08c90599">SVF::CondStdSet::set</a></div><div class="ttdeci">void set(const Element &amp;var)</div><div class="ttdoc">Add the element into set. </div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00157">ConditionalPT.h:157</a></div></div>
@@ -80,7 +80,7 @@ $(function() {
80
80
  <div class="ttc" id="classSVF_1_1DDAVFSolver_html_a6489319b33a807f7caba2d34017a3e1b"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a6489319b33a807f7caba2d34017a3e1b">SVF::DDAVFSolver&lt; CxtVar, CxtPtSet, CxtLocDPItem &gt;::SVFGEdgeSet</a></div><div class="ttdeci">SVFGEdge::SVFGEdgeSetTy SVFGEdgeSet</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00039">DDAVFSolver.h:39</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1VFGEdge_html_a3937eef974c3953f1d1e7d64c5a24ff3"><div class="ttname"><a href="classSVF_1_1VFGEdge.html#a3937eef974c3953f1d1e7d64c5a24ff3">SVF::VFGEdge::isRetVFGEdge</a></div><div class="ttdeci">bool isRetVFGEdge() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00088">VFGEdge.h:88</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00180">PointsTo.h:180</a></div></div>
83
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00133">BasicTypes.h:133</a></div></div>
83
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1ContextDDA_html_a337eb89cc5f31741ad8d840d9f284ca5"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a337eb89cc5f31741ad8d840d9f284ca5">SVF::ContextDDA::computeDDAPts</a></div><div class="ttdeci">virtual void computeDDAPts(NodeID id) override</div><div class="ttdoc">Compute points-to set for an unconditional pointer. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8cpp_source.html#l00083">ContextDDA.cpp:83</a></div></div>
85
85
  <div class="ttc" id="classSVF_1_1FlowDDA_html"><div class="ttname"><a href="classSVF_1_1FlowDDA.html">SVF::FlowDDA</a></div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8h_source.html#l00025">FlowDDA.h:25</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1GepVFGNode_html"><div class="ttname"><a href="classSVF_1_1GepVFGNode.html">SVF::GepVFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00594">VFGNode.h:594</a></div></div>
@@ -76,10 +76,10 @@ $(function() {
76
76
  <div class="ttc" id="classSVF_1_1CxtThreadStmt_html_adeef75dbfd24665521931780c70aa5f9"><div class="ttname"><a href="classSVF_1_1CxtThreadStmt.html#adeef75dbfd24665521931780c70aa5f9">SVF::CxtThreadStmt::CxtThreadStmt</a></div><div class="ttdeci">CxtThreadStmt(NodeID t, const CallStrCxt &amp;c, const Instruction *f)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00127">CxtStmt.h:127</a></div></div>
77
77
  <div class="ttc" id="structstd_1_1hash_3_01SVF_1_1CxtThread_01_4_html_acba6d528a8f587af9bc95f4b5aa4e201"><div class="ttname"><a href="structstd_1_1hash_3_01SVF_1_1CxtThread_01_4.html#acba6d528a8f587af9bc95f4b5aa4e201">std::hash&lt; SVF::CxtThread &gt;::operator()</a></div><div class="ttdeci">size_t operator()(const SVF::CxtThread &amp;cs) const</div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00460">CxtStmt.h:460</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1CxtThread_html"><div class="ttname"><a href="classSVF_1_1CxtThread.html">SVF::CxtThread</a></div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00188">CxtStmt.h:188</a></div></div>
79
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00133">BasicTypes.h:133</a></div></div>
79
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1CxtThread_html_a066ba29a83edc1042139641ca088b038"><div class="ttname"><a href="classSVF_1_1CxtThread.html#a066ba29a83edc1042139641ca088b038">SVF::CxtThread::getThread</a></div><div class="ttdeci">const CallInst * getThread() const</div><div class="ttdoc">Return forksite. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00210">CxtStmt.h:210</a></div></div>
81
81
  <div class="ttc" id="structstd_1_1hash_3_01SVF_1_1CxtProc_01_4_html_a318fb6797f07e8d780c949ad673cfae8"><div class="ttname"><a href="structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html#a318fb6797f07e8d780c949ad673cfae8">std::hash&lt; SVF::CxtProc &gt;::operator()</a></div><div class="ttdeci">size_t operator()(const SVF::CxtProc &amp;cs) const</div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00493">CxtStmt.h:493</a></div></div>
82
- <div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
82
+ <div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00105">BasicTypes.h:105</a></div></div>
83
83
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1CxtThreadStmt_html_a3b8f641f2fb7ade7052cae1ee6463884"><div class="ttname"><a href="classSVF_1_1CxtThreadStmt.html#a3b8f641f2fb7ade7052cae1ee6463884">SVF::CxtThreadStmt::getTid</a></div><div class="ttdeci">NodeID getTid() const</div><div class="ttdoc">Return current context. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00139">CxtStmt.h:139</a></div></div>
85
85
  <div class="ttc" id="classSVF_1_1CxtThreadProc_html_aed801cfecdbfcd690db2d78de5f8e0b5"><div class="ttname"><a href="classSVF_1_1CxtThreadProc.html#aed801cfecdbfcd690db2d78de5f8e0b5">SVF::CxtThreadProc::dump</a></div><div class="ttdeci">void dump() const</div><div class="ttdoc">Dump CxtThreadProc. </div><div class="ttdef"><b>Definition:</b> <a href="CxtStmt_8h_source.html#l00447">CxtStmt.h:447</a></div></div>