svf-tools 1.0.628 → 1.0.630

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 (572) hide show
  1. package/SVF-doxygen/html/html/AddressValue_8h_source.html +2 -2
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +3 -3
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +21 -21
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
  9. package/SVF-doxygen/html/html/Annotator_8h.html +2 -1
  10. package/SVF-doxygen/html/html/Annotator_8h_source.html +19 -18
  11. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLAlias_8cpp.html +1 -0
  14. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +11 -10
  15. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +3 -3
  17. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +3 -3
  19. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +2 -2
  23. package/SVF-doxygen/html/html/CFLVF_8cpp.html +1 -0
  24. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +6 -5
  25. package/SVF-doxygen/html/html/CFLVF_8h_source.html +3 -3
  26. package/SVF-doxygen/html/html/CHGBuilder_8cpp.html +1 -1
  27. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +23 -23
  28. package/SVF-doxygen/html/html/CHG_8cpp.html +7 -6
  29. package/SVF-doxygen/html/html/CHG_8cpp_source.html +22 -21
  30. package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +2 -2
  34. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +4 -4
  35. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  36. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +11 -11
  38. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  39. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +8 -8
  40. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +6 -6
  41. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  43. package/SVF-doxygen/html/html/CppUtil_8cpp.html +247 -0
  44. package/SVF-doxygen/html/html/CppUtil_8cpp_source.html +98 -0
  45. package/SVF-doxygen/html/html/CppUtil_8h.html +122 -0
  46. package/SVF-doxygen/html/html/CppUtil_8h_source.html +94 -0
  47. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +3 -3
  48. package/SVF-doxygen/html/html/DCHG_8cpp.html +1 -1
  49. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +40 -40
  50. package/SVF-doxygen/html/html/DCHG_8h.html +2 -1
  51. package/SVF-doxygen/html/html/DCHG_8h_source.html +75 -74
  52. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +10 -10
  53. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  54. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +6 -6
  55. package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
  56. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
  57. package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
  58. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
  59. package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
  60. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
  61. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/ExeState_8h_source.html +2 -2
  63. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +9 -8
  64. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +10 -9
  65. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  66. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
  67. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  69. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
  70. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
  71. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +4 -4
  72. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +14 -14
  73. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  74. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +6 -6
  75. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  76. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
  77. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  78. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +3 -3
  79. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
  80. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  81. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  82. package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
  83. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +8 -8
  84. package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
  85. package/SVF-doxygen/html/html/IntervalExeState_8cpp_source.html +2 -2
  86. package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +5 -5
  88. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +4 -4
  89. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h.html +1 -0
  90. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8h_source.html +3 -2
  91. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +41 -41
  92. package/SVF-doxygen/html/html/LLVMModule_8h.html +1 -1
  93. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
  94. package/SVF-doxygen/html/html/LLVMUtil_8cpp.html +78 -1
  95. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +71 -38
  96. package/SVF-doxygen/html/html/LLVMUtil_8h.html +41 -7
  97. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +75 -50
  98. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
  99. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -7
  100. package/SVF-doxygen/html/html/LocationSet_8h_source.html +4 -4
  101. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +11 -11
  102. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +5 -5
  103. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -6
  104. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  105. package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
  106. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  107. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
  108. package/SVF-doxygen/html/html/MTAAnnotator_8h.html +3 -1
  109. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +29 -27
  110. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +7 -7
  111. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +6 -6
  112. package/SVF-doxygen/html/html/MTAStat_8h.html +1 -0
  113. package/SVF-doxygen/html/html/MTAStat_8h_source.html +9 -8
  114. package/SVF-doxygen/html/html/MTA_8cpp_source.html +13 -13
  115. package/SVF-doxygen/html/html/MTA_8h.html +1 -0
  116. package/SVF-doxygen/html/html/MTA_8h_source.html +12 -11
  117. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  118. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +12 -12
  119. package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
  120. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +10 -10
  121. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
  122. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +4 -4
  123. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp.html +1 -0
  124. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +23 -23
  125. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +17 -17
  126. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +4 -4
  127. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  128. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +2 -2
  129. package/SVF-doxygen/html/html/PCG_8cpp_source.html +5 -5
  130. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +5 -5
  131. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +4 -4
  132. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  133. package/SVF-doxygen/html/html/PersistentPointsToCache_8h.html +1 -0
  134. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +43 -43
  135. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +12 -12
  136. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -0
  137. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +24 -23
  138. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +22 -22
  139. package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +2 -1
  140. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +34 -33
  141. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +25 -25
  142. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +2 -2
  143. package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
  144. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  145. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
  146. package/SVF-doxygen/html/html/RelExeState_8cpp_source.html +2 -2
  147. package/SVF-doxygen/html/html/RelExeState_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/RelationSolver_8cpp_source.html +1 -1
  149. package/SVF-doxygen/html/html/RelationSolver_8h_source.html +1 -1
  150. package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
  151. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  152. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  153. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +2 -2
  154. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  155. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  156. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
  157. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +4 -4
  158. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +3 -3
  159. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +13 -13
  160. package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
  161. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +12 -12
  162. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +1 -1
  163. package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +1 -1
  164. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +1 -1
  165. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +35 -35
  166. package/SVF-doxygen/html/html/SVFIRBuilder_8h.html +1 -0
  167. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +54 -53
  168. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -5
  169. package/SVF-doxygen/html/html/SVFIR_8h_source.html +7 -7
  170. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +1 -1
  171. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  172. package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
  173. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +4 -4
  174. package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
  175. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
  176. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
  177. package/SVF-doxygen/html/html/SVFType_8h.html +65 -35
  178. package/SVF-doxygen/html/html/SVFType_8h_source.html +114 -114
  179. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
  180. package/SVF-doxygen/html/html/SVFUtil_8h.html +2 -3
  181. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +36 -36
  182. package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +4 -4
  183. package/SVF-doxygen/html/html/SVFValue_8h_source.html +11 -11
  184. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  185. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +4 -4
  186. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
  187. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp.html +2 -0
  188. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +37 -36
  189. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +27 -27
  190. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +5 -5
  191. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  192. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +6 -6
  193. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp.html +1 -1
  194. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +36 -36
  195. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -3
  196. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +17 -17
  197. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +8 -8
  198. package/SVF-doxygen/html/html/TCT_8cpp_source.html +7 -7
  199. package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
  200. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
  201. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +4 -4
  202. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  203. package/SVF-doxygen/html/html/TypeAnalysis_8cpp.html +1 -0
  204. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +11 -10
  205. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
  206. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  207. package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
  208. package/SVF-doxygen/html/html/VFG_8cpp_source.html +5 -5
  209. package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
  210. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
  211. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  212. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +3 -3
  213. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +6 -6
  215. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  216. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  217. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  218. package/SVF-doxygen/html/html/WTO_8h_source.html +2 -2
  219. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  220. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  221. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  222. package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
  223. package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +3 -3
  228. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +22 -22
  230. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +11 -11
  231. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +10 -10
  232. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -4
  233. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +5 -5
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
  235. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +39 -39
  236. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +49 -49
  237. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  240. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +15 -15
  243. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +8 -8
  244. package/SVF-doxygen/html/html/classSVF_1_1CFLData.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +8 -8
  247. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +63 -63
  248. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +22 -22
  249. package/SVF-doxygen/html/html/classSVF_1_1CHNode.html +2 -2
  250. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
  251. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  257. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +9 -9
  260. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +6 -6
  261. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +23 -23
  263. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1CxtDPItem.html +2 -2
  266. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
  268. package/SVF-doxygen/html/html/classSVF_1_1CxtStmtDPItem.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
  270. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
  272. package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +14 -14
  273. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +124 -124
  274. package/SVF-doxygen/html/html/classSVF_1_1DCHNode.html +66 -66
  275. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +5 -5
  276. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +6 -6
  277. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
  278. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +35 -35
  279. package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +8 -8
  281. package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +3 -3
  283. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +9 -9
  284. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +17 -17
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +32 -32
  289. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +6 -6
  290. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +15 -15
  291. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  294. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  295. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +6 -6
  298. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +10 -10
  300. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  301. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +4 -4
  304. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +5 -5
  307. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +1 -1
  308. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  309. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  310. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +5 -5
  312. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +70 -70
  314. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +11 -11
  315. package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +1 -1
  316. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +8 -8
  318. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +47 -47
  319. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +6 -6
  320. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +35 -35
  321. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +23 -23
  322. package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
  324. package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +38 -38
  327. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +77 -77
  328. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +13 -13
  329. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +11 -11
  330. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +19 -19
  331. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +29 -29
  333. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  334. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +2 -2
  335. package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +15 -15
  338. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +43 -43
  339. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +6 -6
  340. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +5 -5
  341. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  343. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +7 -7
  344. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  345. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +1 -1
  346. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +4 -4
  347. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  348. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +2 -2
  350. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +9 -9
  351. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +10 -10
  352. package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +2 -2
  353. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +19 -19
  354. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +141 -141
  355. package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +1 -1
  356. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +78 -78
  358. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +5 -5
  359. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +2 -2
  360. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
  361. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +6 -6
  362. package/SVF-doxygen/html/html/classSVF_1_1RelExeState.html +7 -7
  363. package/SVF-doxygen/html/html/classSVF_1_1RelationSolver.html +2 -2
  364. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  365. package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +1 -1
  366. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  367. package/SVF-doxygen/html/html/classSVF_1_1SVFArrayType.html +6 -7
  368. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
  369. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +1 -1
  370. package/SVF-doxygen/html/html/classSVF_1_1SVFFunctionType.html +9 -10
  371. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
  372. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  373. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +6 -6
  374. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +6 -6
  375. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +5 -5
  376. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +30 -30
  377. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +352 -352
  378. package/SVF-doxygen/html/html/classSVF_1_1SVFIntergerType.html +5 -6
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFOtherType.html +4 -5
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFPointerType.html +9 -10
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +5 -5
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -3
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFStructType.html +5 -6
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +40 -42
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +2 -2
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +2 -2
  388. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +4 -4
  389. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +95 -95
  390. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
  391. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +2 -2
  393. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +14 -14
  394. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +44 -44
  395. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +1 -1
  396. package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  398. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
  399. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +23 -23
  400. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
  401. package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
  402. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  403. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  404. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +6 -6
  405. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
  406. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +18 -18
  407. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  408. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  409. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +5 -5
  410. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +20 -20
  412. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +7 -7
  413. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  414. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  415. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
  416. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  417. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  418. package/SVF-doxygen/html/html/classSVF_1_1Wto.html +1 -1
  419. package/SVF-doxygen/html/html/classSVF_1_1WtoCycle.html +1 -1
  420. package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +1 -1
  422. package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +1 -1
  423. package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +1 -1
  424. package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +1 -1
  425. package/SVF-doxygen/html/html/dda_8cpp.html +1 -1
  426. package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
  427. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +2 -0
  428. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
  429. package/SVF-doxygen/html/html/dir_967d846b666a902c6ca9bc5c37976e49.html +0 -2
  430. package/SVF-doxygen/html/html/dir_a07347b69f031d2f872c9d4a9c274c8c.html +0 -2
  431. package/SVF-doxygen/html/html/files.html +41 -41
  432. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  433. package/SVF-doxygen/html/html/functions_g.html +1 -1
  434. package/SVF-doxygen/html/html/functions_i.html +3 -3
  435. package/SVF-doxygen/html/html/functions_n.html +4 -4
  436. package/SVF-doxygen/html/html/functions_o.html +15 -13
  437. package/SVF-doxygen/html/html/functions_s.html +7 -7
  438. package/SVF-doxygen/html/html/functions_t.html +9 -9
  439. package/SVF-doxygen/html/html/functions_v.html +3 -3
  440. package/SVF-doxygen/html/html/globals_c.html +1 -1
  441. package/SVF-doxygen/html/html/globals_d.html +3 -0
  442. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  443. package/SVF-doxygen/html/html/globals_func.html +3 -3
  444. package/SVF-doxygen/html/html/globals_g.html +1 -1
  445. package/SVF-doxygen/html/html/globals_h.html +1 -1
  446. package/SVF-doxygen/html/html/globals_i.html +1 -1
  447. package/SVF-doxygen/html/html/globals_n.html +1 -1
  448. package/SVF-doxygen/html/html/globals_s.html +1 -1
  449. package/SVF-doxygen/html/html/globals_v.html +4 -4
  450. package/SVF-doxygen/html/html/globals_vars.html +7 -7
  451. package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +4 -4
  452. package/SVF-doxygen/html/html/iterator_8h_source.html +1 -1
  453. package/SVF-doxygen/html/html/iterator__range_8h_source.html +1 -1
  454. package/SVF-doxygen/html/html/mta_8cpp.html +4 -4
  455. package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
  456. package/SVF-doxygen/html/html/namespaceSVF.html +53 -53
  457. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +620 -150
  458. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +95 -125
  459. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +27 -440
  460. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil_1_1ctir.html +4 -4
  461. package/SVF-doxygen/html/html/namespacemembers_d.html +1 -1
  462. package/SVF-doxygen/html/html/namespacemembers_func_d.html +1 -1
  463. package/SVF-doxygen/html/html/namespacemembers_func_g.html +10 -10
  464. package/SVF-doxygen/html/html/namespacemembers_func_i.html +9 -8
  465. package/SVF-doxygen/html/html/namespacemembers_func_v.html +1 -1
  466. package/SVF-doxygen/html/html/namespacemembers_g.html +10 -10
  467. package/SVF-doxygen/html/html/namespacemembers_i.html +9 -8
  468. package/SVF-doxygen/html/html/namespacemembers_n.html +1 -1
  469. package/SVF-doxygen/html/html/namespacemembers_type_n.html +1 -1
  470. package/SVF-doxygen/html/html/namespacemembers_v.html +1 -1
  471. package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
  472. package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
  473. package/SVF-doxygen/html/html/search/all_10.js +1 -1
  474. package/SVF-doxygen/html/html/search/all_12.js +6 -6
  475. package/SVF-doxygen/html/html/search/all_13.js +5 -5
  476. package/SVF-doxygen/html/html/search/all_15.js +7 -7
  477. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  478. package/SVF-doxygen/html/html/search/all_3.js +3 -3
  479. package/SVF-doxygen/html/html/search/all_4.js +2 -1
  480. package/SVF-doxygen/html/html/search/all_7.js +12 -12
  481. package/SVF-doxygen/html/html/search/all_8.js +1 -1
  482. package/SVF-doxygen/html/html/search/all_9.js +10 -10
  483. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  484. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  485. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  486. package/SVF-doxygen/html/html/search/defines_3.js +1 -0
  487. package/SVF-doxygen/html/html/search/files_2.js +2 -2
  488. package/SVF-doxygen/html/html/search/functions_14.js +1 -1
  489. package/SVF-doxygen/html/html/search/functions_3.js +1 -1
  490. package/SVF-doxygen/html/html/search/functions_6.js +12 -12
  491. package/SVF-doxygen/html/html/search/functions_7.js +1 -1
  492. package/SVF-doxygen/html/html/search/functions_8.js +10 -10
  493. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  494. package/SVF-doxygen/html/html/search/variables_12.js +1 -1
  495. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  496. package/SVF-doxygen/html/html/search/variables_15.js +4 -4
  497. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  498. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  499. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +12 -12
  500. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +1 -1
  501. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +26 -16
  502. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +1 -1
  503. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +25 -15
  504. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
  505. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +1 -1
  506. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +29 -19
  507. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +1 -1
  508. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +2 -2
  509. package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +1 -1
  510. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +2 -2
  511. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  512. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  513. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  514. package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +1 -1
  515. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +3 -3
  516. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalPointsTo.html +3 -3
  517. package/SVF-doxygen/html/html/structSVF_1_1cppUtil_1_1DemangledName.html +6 -6
  518. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  519. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  520. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  521. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  522. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  523. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +4 -4
  524. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  525. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  526. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  527. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  528. package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +4 -4
  529. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  530. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  531. package/include/MTA/MTA.h +1 -0
  532. package/include/MTA/MTAStat.h +1 -0
  533. package/include/MemoryModel/PersistentPointsToCache.h +1 -0
  534. package/include/SVF-LLVM/DCHG.h +2 -1
  535. package/include/SVF-LLVM/LLVMLoopAnalysis.h +1 -0
  536. package/include/SVF-LLVM/LLVMModule.h +2 -2
  537. package/include/SVF-LLVM/LLVMUtil.h +135 -79
  538. package/include/SVF-LLVM/SVFIRBuilder.h +1 -0
  539. package/include/SVFIR/PAGBuilderFromFile.h +3 -3
  540. package/include/SVFIR/SVFIR.h +3 -3
  541. package/include/SVFIR/SVFModule.h +3 -3
  542. package/include/SVFIR/SVFStatements.h +3 -3
  543. package/include/SVFIR/SVFType.h +120 -103
  544. package/include/SVFIR/SVFValue.h +3 -3
  545. package/include/SVFIR/SVFVariables.h +3 -3
  546. package/include/SVFIR/SymbolTableInfo.h +3 -3
  547. package/include/Util/Annotator.h +8 -17
  548. package/include/{SVF-LLVM/CPPUtil.h → Util/CppUtil.h} +5 -54
  549. package/include/Util/SVFUtil.h +3 -9
  550. package/index.html +9 -5
  551. package/lib/CFL/CFLAlias.cpp +1 -1
  552. package/lib/CFL/CFLVF.cpp +1 -0
  553. package/lib/Graphs/CHG.cpp +1 -0
  554. package/lib/Graphs/ConsG.cpp +0 -5
  555. package/lib/Graphs/IRGraph.cpp +0 -5
  556. package/lib/Graphs/SVFG.cpp +0 -5
  557. package/lib/MemoryModel/PointerAnalysis.cpp +1 -0
  558. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -0
  559. package/lib/SABER/SaberCondAllocator.cpp +2 -0
  560. package/lib/SVF-LLVM/CHGBuilder.cpp +10 -10
  561. package/lib/SVF-LLVM/DCHG.cpp +1 -1
  562. package/lib/SVF-LLVM/LLVMModule.cpp +4 -4
  563. package/lib/SVF-LLVM/LLVMUtil.cpp +362 -4
  564. package/lib/SVF-LLVM/SVFIRBuilder.cpp +2 -2
  565. package/lib/SVF-LLVM/SymbolTableBuilder.cpp +1 -1
  566. package/lib/Util/CppUtil.cpp +214 -0
  567. package/lib/Util/ExtAPI.cpp +1 -1
  568. package/lib/Util/NodeIDAllocator.cpp +3 -2
  569. package/lib/WPA/TypeAnalysis.cpp +1 -0
  570. package/package.json +1 -1
  571. package/tools/MTA/MTAAnnotator.h +2 -0
  572. package/lib/SVF-LLVM/CPPUtil.cpp +0 -572
@@ -645,12 +645,12 @@ Additional Inherited Members</h2></td></tr>
645
645
  <p class="definition">Definition at line <a class="el" href="ThreadCallGraph_8cpp_source.html#l00040">40</a> of file <a class="el" href="ThreadCallGraph_8cpp_source.html">ThreadCallGraph.cpp</a>.</p>
646
646
  <div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; :</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html#a612b05f1c37dc50a888b773b9bbe093f">PTACallGraph</a>(<a class="code" href="classSVF_1_1PTACallGraph.html#a5b1fe2b2314db947cd5e709b7285fe1ca4fe819bb1488afc48b04c1b7bef04bc2">ThdCallGraph</a>), <a class="code" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">tdAPI</a>(<a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>())</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">&quot;Building ThreadCallGraph\n&quot;</span>));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div><div class="ttc" id="classSVF_1_1PTACallGraph_html_a5b1fe2b2314db947cd5e709b7285fe1ca4fe819bb1488afc48b04c1b7bef04bc2"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5b1fe2b2314db947cd5e709b7285fe1ca4fe819bb1488afc48b04c1b7bef04bc2">SVF::PTACallGraph::ThdCallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00235">PTACallGraph.h:235</a></div></div>
647
647
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
648
- <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
648
+ <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00441">SVFType.h:441</a></div></div>
649
649
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00411">ThreadCallGraph.h:411</a></div></div>
650
650
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a612b05f1c37dc50a888b773b9bbe093f"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a612b05f1c37dc50a888b773b9bbe093f">SVF::PTACallGraph::PTACallGraph</a></div><div class="ttdeci">PTACallGraph(CGEK k=NormCallGraph)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00108">PTACallGraph.cpp:108</a></div></div>
651
651
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a6852ff1eedc1117e95e45e4a90c80d53"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">SVF::ThreadAPI::getThreadAPI</a></div><div class="ttdeci">static ThreadAPI * getThreadAPI()</div><div class="ttdoc">Return a static reference. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00102">ThreadAPI.h:102</a></div></div>
652
- <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>
653
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
652
+ <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#l00050">SVFUtil.h:50</a></div></div>
653
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00435">SVFType.h:435</a></div></div>
654
654
  </div><!-- fragment -->
655
655
  </div>
656
656
  </div>
@@ -713,7 +713,7 @@ Additional Inherited Members</h2></td></tr>
713
713
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_ab20211a66583387f0da4769bee65e300"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">SVF::ThreadCallGraph::addThreadForkEdgeSetMap</a></div><div class="ttdeci">void addThreadForkEdgeSetMap(const CallICFGNode *cs, ThreadForkEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00367">ThreadCallGraph.h:367</a></div></div>
714
714
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
715
715
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
716
- <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="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>
716
+ <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="SVFType_8h_source.html#l00057">SVFType.h:57</a></div></div>
717
717
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
718
718
  <div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">SVF::PTACallGraphEdge::TDForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00058">PTACallGraph.h:58</a></div></div>
719
719
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00399">ICFGNode.h:399</a></div></div>
@@ -759,7 +759,7 @@ Additional Inherited Members</h2></td></tr>
759
759
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
760
760
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af1146c3d8e8b8885a1c48701e5b5a27f"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdoc">Thread API. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00411">ThreadCallGraph.h:411</a></div></div>
761
761
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
762
- <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="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>
762
+ <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="SVFType_8h_source.html#l00057">SVFType.h:57</a></div></div>
763
763
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
764
764
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a5f7c92af1a4ce33e4746f5b65c9c8421"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a5f7c92af1a4ce33e4746f5b65c9c8421">SVF::ThreadCallGraph::hasThreadJoinEdge</a></div><div class="ttdeci">bool hasThreadJoinEdge(const CallICFGNode *cs) const</div><div class="ttdoc">Get call graph edge via call instruction. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00224">ThreadCallGraph.h:224</a></div></div>
765
765
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00399">ICFGNode.h:399</a></div></div>
@@ -798,7 +798,7 @@ Additional Inherited Members</h2></td></tr>
798
798
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
799
799
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_aae1caa7231ab9436db98403d6a175149"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">SVF::ThreadCallGraph::addHareParForEdgeSetMap</a></div><div class="ttdeci">void addHareParForEdgeSetMap(const CallICFGNode *cs, HareParForEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00387">ThreadCallGraph.h:387</a></div></div>
800
800
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
801
- <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="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>
801
+ <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="SVFType_8h_source.html#l00057">SVFType.h:57</a></div></div>
802
802
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
803
803
  <div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">SVF::PTACallGraphEdge::TDForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00058">PTACallGraph.h:58</a></div></div>
804
804
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00399">ICFGNode.h:399</a></div></div>
@@ -915,7 +915,7 @@ Additional Inherited Members</h2></td></tr>
915
915
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_ab20211a66583387f0da4769bee65e300"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#ab20211a66583387f0da4769bee65e300">SVF::ThreadCallGraph::addThreadForkEdgeSetMap</a></div><div class="ttdeci">void addThreadForkEdgeSetMap(const CallICFGNode *cs, ThreadForkEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00367">ThreadCallGraph.h:367</a></div></div>
916
916
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
917
917
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
918
- <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="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>
918
+ <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="SVFType_8h_source.html#l00057">SVFType.h:57</a></div></div>
919
919
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
920
920
  <div class="ttc" id="classSVF_1_1PTACallGraphEdge_html_a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7"><div class="ttname"><a href="classSVF_1_1PTACallGraphEdge.html#a9738544725458bb022b8d5f2dbd281f7af32caf15ca19d512b5183bcf0d859cd7">SVF::PTACallGraphEdge::TDForkEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00058">PTACallGraph.h:58</a></div></div>
921
921
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00399">ICFGNode.h:399</a></div></div>
@@ -958,7 +958,7 @@ Additional Inherited Members</h2></td></tr>
958
958
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a3154bbc421fc85649e786ed67ca03750"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a3154bbc421fc85649e786ed67ca03750">SVF::PTACallGraph::addEdge</a></div><div class="ttdeci">void addEdge(PTACallGraphEdge *edge)</div><div class="ttdoc">Add call graph edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00417">PTACallGraph.h:417</a></div></div>
959
959
  <div class="ttc" id="classSVF_1_1ThreadCallGraph_html_aae1caa7231ab9436db98403d6a175149"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#aae1caa7231ab9436db98403d6a175149">SVF::ThreadCallGraph::addHareParForEdgeSetMap</a></div><div class="ttdeci">void addHareParForEdgeSetMap(const CallICFGNode *cs, HareParForEdge *edge)</div><div class="ttdoc">map call instruction to its CallGraphEdge map </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00387">ThreadCallGraph.h:387</a></div></div>
960
960
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a979359fc784e647c574de90c7af2cf40"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a979359fc784e647c574de90c7af2cf40">SVF::PTACallGraph::addCallSite</a></div><div class="ttdeci">CallSiteID addCallSite(const CallICFGNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Add/Get CallSiteID. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00330">PTACallGraph.h:330</a></div></div>
961
- <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="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>
961
+ <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="SVFType_8h_source.html#l00057">SVFType.h:57</a></div></div>
962
962
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html_a959445c97605953fbdebbbd999437a09"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html#a959445c97605953fbdebbbd999437a09">SVF::PTACallGraphNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Get function of this call node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00193">PTACallGraph.h:193</a></div></div>
963
963
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a18f4077d42b23c3fed35efc793b6102e"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a18f4077d42b23c3fed35efc793b6102e">SVF::CallICFGNode::getCaller</a></div><div class="ttdeci">const SVFFunction * getCaller() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00399">ICFGNode.h:399</a></div></div>
964
964
  <div class="ttc" id="classSVF_1_1PTACallGraphNode_html"><div class="ttname"><a href="classSVF_1_1PTACallGraphNode.html">SVF::PTACallGraphNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00174">PTACallGraph.h:174</a></div></div>
@@ -751,12 +751,12 @@ Additional Inherited Members</h2></td></tr>
751
751
 
752
752
  <p>Reimplemented from <a class="el" href="classSVF_1_1AndersenBase.html#a944966086ecb716184c8cdcc43db5751">SVF::AndersenBase</a>.</p>
753
753
 
754
- <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00068">68</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
755
- <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#a34177236a41f7a2b432243062f829985">initialize</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#aec579b7854aa6a994632d3f7c5d621db">callGraphSolveBasedOnCHA</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a>(), newEdges);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#a8efef079c8b33e2215f92ac3629789e6">finalize</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a9d3e7753643166465b0d647a75bc145a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">SVF::PointerAnalysis::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Return all indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00267">PointerAnalysis.h:267</a></div></div>
754
+ <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00069">69</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
755
+ <div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#a34177236a41f7a2b432243062f829985">initialize</a>();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">CallEdgeMap</a> newEdges;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#aec579b7854aa6a994632d3f7c5d621db">callGraphSolveBasedOnCHA</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a>(), newEdges);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#a8efef079c8b33e2215f92ac3629789e6">finalize</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a9d3e7753643166465b0d647a75bc145a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">SVF::PointerAnalysis::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Return all indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00267">PointerAnalysis.h:267</a></div></div>
756
756
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a35bd5f0fb2c146199e9f1aa6a19b4062"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a35bd5f0fb2c146199e9f1aa6a19b4062">SVF::PointerAnalysis::CallEdgeMap</a></div><div class="ttdeci">OrderedMap&lt; const CallICFGNode *, FunctionSet &gt; CallEdgeMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00106">PointerAnalysis.h:106</a></div></div>
757
- <div class="ttc" id="classSVF_1_1TypeAnalysis_html_aec579b7854aa6a994632d3f7c5d621db"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#aec579b7854aa6a994632d3f7c5d621db">SVF::TypeAnalysis::callGraphSolveBasedOnCHA</a></div><div class="ttdeci">void callGraphSolveBasedOnCHA(const CallSiteToFunPtrMap &amp;callsites, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">Resolve callgraph based on CHA. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00076">TypeAnalysis.cpp:76</a></div></div>
758
- <div class="ttc" id="classSVF_1_1TypeAnalysis_html_a8efef079c8b33e2215f92ac3629789e6"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#a8efef079c8b33e2215f92ac3629789e6">SVF::TypeAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00061">TypeAnalysis.cpp:61</a></div></div>
759
- <div class="ttc" id="classSVF_1_1TypeAnalysis_html_a34177236a41f7a2b432243062f829985"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#a34177236a41f7a2b432243062f829985">SVF::TypeAnalysis::initialize</a></div><div class="ttdeci">void initialize()</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00044">TypeAnalysis.cpp:44</a></div></div>
757
+ <div class="ttc" id="classSVF_1_1TypeAnalysis_html_aec579b7854aa6a994632d3f7c5d621db"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#aec579b7854aa6a994632d3f7c5d621db">SVF::TypeAnalysis::callGraphSolveBasedOnCHA</a></div><div class="ttdeci">void callGraphSolveBasedOnCHA(const CallSiteToFunPtrMap &amp;callsites, CallEdgeMap &amp;newEdges)</div><div class="ttdoc">Resolve callgraph based on CHA. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00077">TypeAnalysis.cpp:77</a></div></div>
758
+ <div class="ttc" id="classSVF_1_1TypeAnalysis_html_a8efef079c8b33e2215f92ac3629789e6"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#a8efef079c8b33e2215f92ac3629789e6">SVF::TypeAnalysis::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00062">TypeAnalysis.cpp:62</a></div></div>
759
+ <div class="ttc" id="classSVF_1_1TypeAnalysis_html_a34177236a41f7a2b432243062f829985"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#a34177236a41f7a2b432243062f829985">SVF::TypeAnalysis::initialize</a></div><div class="ttdeci">void initialize()</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00045">TypeAnalysis.cpp:45</a></div></div>
760
760
  </div><!-- fragment -->
761
761
  </div>
762
762
  </div>
@@ -788,9 +788,9 @@ Additional Inherited Members</h2></td></tr>
788
788
 
789
789
  <p>Resolve callgraph based on CHA. </p>
790
790
 
791
- <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00076">76</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
792
- <div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">for</span>(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = iter-&gt;first;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cbn-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">isVirtualCall</a>())</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* vtbl = cs.<a class="code" href="classSVF_1_1CallSite.html#a9b04a0f24be915a6e124106060225a3d">getVtablePtr</a>();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; (void)vtbl; <span class="comment">// Suppress warning of unused variable under release build</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(vtbl));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> vfns;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">getVFnsFromCHA</a>(cbn, vfns);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">connectVCallToVFns</a>(cbn, vfns, newEdges);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00194">SVFUtil.h:194</a></div></div>
793
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ade41f3562704d56c7490dcfc941b3437"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">SVF::PointerAnalysis::getVFnsFromCHA</a></div><div class="ttdeci">void getVFnsFromCHA(const CallICFGNode *cs, VFunSet &amp;vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00445">PointerAnalysis.cpp:445</a></div></div>
791
+ <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00077">77</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
792
+ <div class="fragment"><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; <span class="keywordflow">for</span>(CallSiteToFunPtrMap::const_iterator iter = callsites.begin(), eiter = callsites.end(); iter!=eiter; ++iter)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cbn = iter-&gt;first;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVFUtil::getSVFCallSite</a>(cbn-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (cs.<a class="code" href="classSVF_1_1CallSite.html#a427a38e580db4bf04c9d716762243c89">isVirtualCall</a>())</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* vtbl = cs.<a class="code" href="classSVF_1_1CallSite.html#a9b04a0f24be915a6e124106060225a3d">getVtablePtr</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; (void)vtbl; <span class="comment">// Suppress warning of unused variable under release build</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; assert(<a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">hasValueNode</a>(vtbl));</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespaceSVF.html#ad2b487757f1e1a1d81073120fc1d49c7">VFunSet</a> vfns;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">getVFnsFromCHA</a>(cbn, vfns);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">connectVCallToVFns</a>(cbn, vfns, newEdges);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9815a5b31ac7dc21239d08e5b9f61106"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9815a5b31ac7dc21239d08e5b9f61106">SVF::SVFUtil::getSVFCallSite</a></div><div class="ttdeci">CallSite getSVFCallSite(const SVFInstruction *inst)</div><div class="ttdoc">Return LLVM callsite given an instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00195">SVFUtil.h:195</a></div></div>
793
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ade41f3562704d56c7490dcfc941b3437"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ade41f3562704d56c7490dcfc941b3437">SVF::PointerAnalysis::getVFnsFromCHA</a></div><div class="ttdeci">void getVFnsFromCHA(const CallICFGNode *cs, VFunSet &amp;vfns)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00446">PointerAnalysis.cpp:446</a></div></div>
794
794
  <div class="ttc" id="classSVF_1_1IRGraph_html_a401ec65771a3d2dcc8eb60574aadd354"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a401ec65771a3d2dcc8eb60574aadd354">SVF::IRGraph::hasValueNode</a></div><div class="ttdeci">bool hasValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00132">IRGraph.h:132</a></div></div>
795
795
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a90fd0b8e44fba1a7eb76d15bce085d66"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
796
796
  <div class="ttc" id="classSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00147">SVFValue.h:147</a></div></div>
@@ -800,7 +800,7 @@ Additional Inherited Members</h2></td></tr>
800
800
  <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>
801
801
  <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01014">SVFValue.h:1014</a></div></div>
802
802
  <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#l00142">PointerAnalysis.h:142</a></div></div>
803
- <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a6a5dec067fa2a1babc83f36daa8afcc3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">SVF::PointerAnalysis::connectVCallToVFns</a></div><div class="ttdeci">void connectVCallToVFns(const CallICFGNode *cs, const VFunSet &amp;vfns, CallEdgeMap &amp;newEdges)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00480">PointerAnalysis.cpp:480</a></div></div>
803
+ <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a6a5dec067fa2a1babc83f36daa8afcc3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a6a5dec067fa2a1babc83f36daa8afcc3">SVF::PointerAnalysis::connectVCallToVFns</a></div><div class="ttdeci">void connectVCallToVFns(const CallICFGNode *cs, const VFunSet &amp;vfns, CallEdgeMap &amp;newEdges)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00481">PointerAnalysis.cpp:481</a></div></div>
804
804
  </div><!-- fragment -->
805
805
  </div>
806
806
  </div>
@@ -880,21 +880,21 @@ Additional Inherited Members</h2></td></tr>
880
880
 
881
881
  <p>Statistics of CHA and callgraph. </p>
882
882
 
883
- <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00095">95</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
884
- <div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</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_1CHGraph.html">CHGraph</a> *<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1CHGraph.html">CHGraph</a>&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#ae2cc7cd0803dbd90639140e71b06b1b5">getCHGraph</a>());</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span> (chgraph == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;dumpCHAStats only implemented for standard CHGraph.\n&quot;</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pure_abstract_class_num = 0,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; multi_inheritance_class_num = 0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">CHGraph::const_iterator</a> it = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; it != eit; ++it)</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; <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *node = it-&gt;second;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;class &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">getName</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a268ccdfb486cc2efa8581ee7a3b5af39">isPureAbstract</a>())</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; pure_abstract_class_num++;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a224a394537fae62e64cf62a0d4fdd430">isMultiInheritance</a>())</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; multi_inheritance_class_num++;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;class_num:\t&quot;</span> &lt;&lt; chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>() &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;pure_abstract_class_num:\t&quot;</span> &lt;&lt; pure_abstract_class_num &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;multi_inheritance_class_num:\t&quot;</span> &lt;&lt; multi_inheritance_class_num &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> * count the following info:</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> * vtblnum</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> * total vfunction</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> * vtbl max vfunction</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> * pure abstract class</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> vtblnum = 0,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; vfunc_total = 0,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; vtbl_max = 0,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; pure_abstract = 0;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; set&lt;const SVFFunction*&gt; allVirtualFunctions;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">CHGraph::const_iterator</a> it = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *node = it-&gt;second;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a268ccdfb486cc2efa8581ee7a3b5af39">isPureAbstract</a>())</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; pure_abstract++;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> vfuncs_size = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">const</span> vector&lt;CHNode::FuncVector&gt;&amp; vecs = node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a5df1cf4d51bf3406d188c96bc9aae0af">getVirtualFunctionVectors</a>();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span> (vector&lt;CHNode::FuncVector&gt;::const_iterator vit = vecs.begin(),</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; veit = vecs.end(); vit != veit; ++vit)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; vfuncs_size += (*vit).size();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">for</span> (vector&lt;const SVFFunction*&gt;::const_iterator fit = (*vit).begin(),</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; feit = (*vit).end(); fit != feit; ++fit)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func = *fit;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; allVirtualFunctions.insert(func);</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; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span> (vfuncs_size &gt; 0)</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; vtblnum++;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (vfuncs_size &gt; vtbl_max)</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; vtbl_max = vfuncs_size;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; vfunc_total = allVirtualFunctions.size();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;vtblnum:\t&quot;</span> &lt;&lt; vtblnum &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;vtbl_average:\t&quot;</span> &lt;&lt; (double)(vfunc_total)/vtblnum &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;vtbl_max:\t&quot;</span> &lt;&lt; vtbl_max &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;pure_abstract:\t&quot;</span> &lt;&lt; pure_abstract &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
883
+ <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00096">96</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
884
+ <div class="fragment"><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CHGraph.html">CHGraph</a> *<a class="code" href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">chgraph</a> = <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1CHGraph.html">CHGraph</a>&gt;(<a class="code" href="classSVF_1_1PointerAnalysis.html#ae2cc7cd0803dbd90639140e71b06b1b5">getCHGraph</a>());</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span> (chgraph == <span class="keyword">nullptr</span>)</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="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; <span class="stringliteral">&quot;dumpCHAStats only implemented for standard CHGraph.\n&quot;</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</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="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pure_abstract_class_num = 0,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; multi_inheritance_class_num = 0;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">CHGraph::const_iterator</a> it = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *node = it-&gt;second;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;class &quot;</span> &lt;&lt; node-&gt;<a class="code" href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">getName</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a268ccdfb486cc2efa8581ee7a3b5af39">isPureAbstract</a>())</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; pure_abstract_class_num++;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a224a394537fae62e64cf62a0d4fdd430">isMultiInheritance</a>())</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; multi_inheritance_class_num++;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;class_num:\t&quot;</span> &lt;&lt; chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">getTotalNodeNum</a>() &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;pure_abstract_class_num:\t&quot;</span> &lt;&lt; pure_abstract_class_num &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;multi_inheritance_class_num:\t&quot;</span> &lt;&lt; multi_inheritance_class_num &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> * count the following info:</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> * vtblnum</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> * total vfunction</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> * vtbl max vfunction</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> * pure abstract class</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> vtblnum = 0,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; vfunc_total = 0,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; vtbl_max = 0,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; pure_abstract = 0;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; set&lt;const SVFFunction*&gt; allVirtualFunctions;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">CHGraph::const_iterator</a> it = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = chgraph-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; it != eit; ++it)</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; <a class="code" href="classSVF_1_1CHNode.html">CHNode</a> *node = it-&gt;second;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a268ccdfb486cc2efa8581ee7a3b5af39">isPureAbstract</a>())</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; pure_abstract++;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> vfuncs_size = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">const</span> vector&lt;CHNode::FuncVector&gt;&amp; vecs = node-&gt;<a class="code" href="classSVF_1_1CHNode.html#a5df1cf4d51bf3406d188c96bc9aae0af">getVirtualFunctionVectors</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span> (vector&lt;CHNode::FuncVector&gt;::const_iterator vit = vecs.begin(),</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; veit = vecs.end(); vit != veit; ++vit)</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; vfuncs_size += (*vit).size();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">for</span> (vector&lt;const SVFFunction*&gt;::const_iterator fit = (*vit).begin(),</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; feit = (*vit).end(); fit != feit; ++fit)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func = *fit;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; allVirtualFunctions.insert(func);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span> (vfuncs_size &gt; 0)</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; vtblnum++;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (vfuncs_size &gt; vtbl_max)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; vtbl_max = vfuncs_size;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; vfunc_total = allVirtualFunctions.size();</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; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;vtblnum:\t&quot;</span> &lt;&lt; vtblnum &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;vtbl_average:\t&quot;</span> &lt;&lt; (double)(vfunc_total)/vtblnum &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;vtbl_max:\t&quot;</span> &lt;&lt; vtbl_max &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;pure_abstract:\t&quot;</span> &lt;&lt; pure_abstract &lt;&lt; <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0d9744b1b0e7a09a6f7af29188e243b7"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdoc">Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00369">GenericGraph.h:369</a></div></div>
885
885
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a8c8d16036008f87c7811586047599858"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">SVF::GenericGraph::getTotalNodeNum</a></div><div class="ttdeci">u32_t getTotalNodeNum() const</div><div class="ttdoc">Get total number of node/edge. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00422">GenericGraph.h:422</a></div></div>
886
886
  <div class="ttc" id="classSVF_1_1CHNode_html"><div class="ttname"><a href="classSVF_1_1CHNode.html">SVF::CHNode</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00104">CHG.h:104</a></div></div>
887
887
  <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="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
888
888
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af6e96694d983643a66c238cce01bff0e"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af6e96694d983643a66c238cce01bff0e">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if_t&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt; dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00405">Casting.h:405</a></div></div>
889
889
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00347">GenericGraph.h:347</a></div></div>
890
- <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
890
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00049">SVFType.h:49</a></div></div>
891
891
  <div class="ttc" id="classSVF_1_1CHGraph_html"><div class="ttname"><a href="classSVF_1_1CHGraph.html">SVF::CHGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00208">CHG.h:208</a></div></div>
892
892
  <div class="ttc" id="classSVF_1_1CHNode_html_a224a394537fae62e64cf62a0d4fdd430"><div class="ttname"><a href="classSVF_1_1CHNode.html#a224a394537fae62e64cf62a0d4fdd430">SVF::CHNode::isMultiInheritance</a></div><div class="ttdeci">bool isMultiInheritance() const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00157">CHG.h:157</a></div></div>
893
893
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a4bef15157423cef48dc7333a803cd27d"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">SVF::GenericGraph::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00373">GenericGraph.h:373</a></div></div>
894
894
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a0c0fce2539bb9ec6c824f6584a0f6b33"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a0c0fce2539bb9ec6c824f6584a0f6b33">SVF::PointerAnalysis::chgraph</a></div><div class="ttdeci">CommonCHGraph * chgraph</div><div class="ttdoc">CHGraph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00158">PointerAnalysis.h:158</a></div></div>
895
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
895
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
896
896
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ae2cc7cd0803dbd90639140e71b06b1b5"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae2cc7cd0803dbd90639140e71b06b1b5">SVF::PointerAnalysis::getCHGraph</a></div><div class="ttdeci">CommonCHGraph * getCHGraph() const</div><div class="ttdoc">get CHGraph </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00431">PointerAnalysis.h:431</a></div></div>
897
- <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>
897
+ <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#l00050">SVFUtil.h:50</a></div></div>
898
898
  <div class="ttc" id="classSVF_1_1CHNode_html_a268ccdfb486cc2efa8581ee7a3b5af39"><div class="ttname"><a href="classSVF_1_1CHNode.html#a268ccdfb486cc2efa8581ee7a3b5af39">SVF::CHNode::isPureAbstract</a></div><div class="ttdeci">bool isPureAbstract() const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00153">CHG.h:153</a></div></div>
899
899
  <div class="ttc" id="classSVF_1_1CHNode_html_af6e71c1a932464b1b615fc177f5af089"><div class="ttname"><a href="classSVF_1_1CHNode.html#af6e71c1a932464b1b615fc177f5af089">SVF::CHNode::getName</a></div><div class="ttdeci">std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00123">CHG.h:123</a></div></div>
900
900
  <div class="ttc" id="classSVF_1_1CHNode_html_a5df1cf4d51bf3406d188c96bc9aae0af"><div class="ttname"><a href="classSVF_1_1CHNode.html#a5df1cf4d51bf3406d188c96bc9aae0af">SVF::CHNode::getVirtualFunctionVectors</a></div><div class="ttdeci">const std::vector&lt; FuncVector &gt; &amp; getVirtualFunctionVectors() const</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00171">CHG.h:171</a></div></div>
@@ -928,8 +928,8 @@ Additional Inherited Members</h2></td></tr>
928
928
 
929
929
  <p>Reimplemented from <a class="el" href="classSVF_1_1AndersenBase.html#a28a1c3571cdee5e05004b29ace364e67">SVF::AndersenBase</a>.</p>
930
930
 
931
- <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00061">61</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
932
- <div class="fragment"><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a28a1c3571cdee5e05004b29ace364e67">AndersenBase::finalize</a>();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a3550ea3f087ec557a6fe076bc443b05d">print_stat</a>)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#a124fc67578745cde9e74bb36aced25a2">dumpCHAStats</a>();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div><div class="ttc" id="classSVF_1_1TypeAnalysis_html_a124fc67578745cde9e74bb36aced25a2"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#a124fc67578745cde9e74bb36aced25a2">SVF::TypeAnalysis::dumpCHAStats</a></div><div class="ttdeci">void dumpCHAStats()</div><div class="ttdoc">Statistics of CHA and callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00095">TypeAnalysis.cpp:95</a></div></div>
931
+ <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00062">62</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
932
+ <div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a28a1c3571cdee5e05004b29ace364e67">AndersenBase::finalize</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a3550ea3f087ec557a6fe076bc443b05d">print_stat</a>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classSVF_1_1TypeAnalysis.html#a124fc67578745cde9e74bb36aced25a2">dumpCHAStats</a>();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="ttc" id="classSVF_1_1TypeAnalysis_html_a124fc67578745cde9e74bb36aced25a2"><div class="ttname"><a href="classSVF_1_1TypeAnalysis.html#a124fc67578745cde9e74bb36aced25a2">SVF::TypeAnalysis::dumpCHAStats</a></div><div class="ttdeci">void dumpCHAStats()</div><div class="ttdoc">Statistics of CHA and callgraph. </div><div class="ttdef"><b>Definition:</b> <a href="TypeAnalysis_8cpp_source.html#l00096">TypeAnalysis.cpp:96</a></div></div>
933
933
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a28a1c3571cdee5e05004b29ace364e67"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a28a1c3571cdee5e05004b29ace364e67">SVF::AndersenBase::finalize</a></div><div class="ttdeci">virtual void finalize() override</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00089">Andersen.cpp:89</a></div></div>
934
934
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a3550ea3f087ec557a6fe076bc443b05d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a3550ea3f087ec557a6fe076bc443b05d">SVF::PointerAnalysis::print_stat</a></div><div class="ttdeci">bool print_stat</div><div class="ttdoc">User input flags. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00134">PointerAnalysis.h:134</a></div></div>
935
935
  </div><!-- fragment -->
@@ -962,8 +962,8 @@ Additional Inherited Members</h2></td></tr>
962
962
 
963
963
  <p>Reimplemented from <a class="el" href="classSVF_1_1AndersenBase.html#a891816407a4c6346f56bc01a67b78aac">SVF::AndersenBase</a>.</p>
964
964
 
965
- <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00044">44</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
966
- <div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a891816407a4c6346f56bc01a67b78aac">AndersenBase::initialize</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ae7ccfb3d1308e205e5014849dcc43d9a">Options::DumpICFG</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; <a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a> = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_initial&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;vfg_initial&quot;</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a3550ea3f087ec557a6fe076bc443b05d">print_stat</a>)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classSVF_1_1ICFGStat.html">ICFGStat</a> <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>.<a class="code" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">performStat</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a962cc91e4d68b25ce201072c384d8fc2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">SVF::PointerAnalysis::icfg</a></div><div class="ttdeci">ICFG * icfg</div><div class="ttdoc">Interprocedural control-flow graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00156">PointerAnalysis.h:156</a></div></div>
965
+ <p class="definition">Definition at line <a class="el" href="TypeAnalysis_8cpp_source.html#l00045">45</a> of file <a class="el" href="TypeAnalysis_8cpp_source.html">TypeAnalysis.cpp</a>.</p>
966
+ <div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classSVF_1_1AndersenBase.html#a891816407a4c6346f56bc01a67b78aac">AndersenBase::initialize</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#ae7ccfb3d1308e205e5014849dcc43d9a">Options::DumpICFG</a>())</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a> = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_initial&quot;</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;vfg_initial&quot;</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a3550ea3f087ec557a6fe076bc443b05d">print_stat</a>)</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; <a class="code" href="classSVF_1_1ICFGStat.html">ICFGStat</a> <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">icfg</a>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>.<a class="code" href="classSVF_1_1PTAStat.html#ad6de9d3f25c20705768000c987af0eb6">performStat</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a962cc91e4d68b25ce201072c384d8fc2"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a962cc91e4d68b25ce201072c384d8fc2">SVF::PointerAnalysis::icfg</a></div><div class="ttdeci">ICFG * icfg</div><div class="ttdoc">Interprocedural control-flow graph. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00156">PointerAnalysis.h:156</a></div></div>
967
967
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a891816407a4c6346f56bc01a67b78aac"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a891816407a4c6346f56bc01a67b78aac">SVF::AndersenBase::initialize</a></div><div class="ttdeci">virtual void initialize() override</div><div class="ttdoc">Initialize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00073">Andersen.cpp:73</a></div></div>
968
968
  <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#l00107">SVFIR.h:107</a></div></div>
969
969
  <div class="ttc" id="classSVF_1_1ICFGStat_html"><div class="ttname"><a href="classSVF_1_1ICFGStat.html">SVF::ICFGStat</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGStat_8h_source.html#l00039">ICFGStat.h:39</a></div></div>
@@ -749,7 +749,7 @@ Additional Inherited Members</h2></td></tr>
749
749
  <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00156">156</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
750
750
  <div class="fragment"><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="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; std::stringstream rawstr(str);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;UnaryOPStmt: [Var&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1UnaryOPStmt.html#ae2ffeaec2d2e4de69826495006c35856">getResID</a>() &lt;&lt; <span class="stringliteral">&quot; &lt;-- &quot;</span> &lt;&lt; <span class="stringliteral">&quot; opcode&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">getOpcode</a>() &lt;&lt; <span class="stringliteral">&quot; Var&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1UnaryOPStmt.html#a8029b46bccda153ca2e677686c2655e2">getOpVarID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a424a44f39a43b22434dbdce26007a353">Options::ShowSVFIRValue</a>())</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1SVFStmt.html#abb784290c90d26f35897fa15bae277d2">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>();</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"> 166</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div><div class="ttc" id="classSVF_1_1UnaryOPStmt_html_af29723d5e777b10d53d48263a786f5b6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">SVF::UnaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00967">SVFStatements.h:967</a></div></div>
751
751
  <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_ae2ffeaec2d2e4de69826495006c35856"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#ae2ffeaec2d2e4de69826495006c35856">SVF::UnaryOPStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00296">SVFStatements.cpp:296</a></div></div>
752
- <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
752
+ <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01033">LLVMUtil.cpp:1033</a></div></div>
753
753
  <div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a8029b46bccda153ca2e677686c2655e2"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a8029b46bccda153ca2e677686c2655e2">SVF::UnaryOPStmt::getOpVarID</a></div><div class="ttdeci">NodeID getOpVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00292">SVFStatements.cpp:292</a></div></div>
754
754
  <div class="ttc" id="classSVF_1_1SVFStmt_html_abb784290c90d26f35897fa15bae277d2"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#abb784290c90d26f35897fa15bae277d2">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00120">SVFStatements.h:120</a></div></div>
755
755
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
@@ -805,7 +805,7 @@ Private Member Functions</h2></td></tr>
805
805
 
806
806
  <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00166">166</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
807
807
  <div class="fragment"><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; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; std::stringstream rawstr(str);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;UnaryOPVFGNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;PAGEdge: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1UnaryOPVFGNode.html#a4403fd618b01a26c7c1e8c5da2319db6">res</a>-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; = Unary(&quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span>(UnaryOPVFGNode::OPVers::const_iterator it = <a class="code" href="classSVF_1_1UnaryOPVFGNode.html#ab63ddaa05181f2c60ca7a001001a908d">opVerBegin</a>(), eit = <a class="code" href="classSVF_1_1UnaryOPVFGNode.html#af31a06d33f41bdcff625ac23e269708c">opVerEnd</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; it != eit; it++)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; rawstr &lt;&lt; it-&gt;second-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;, &quot;</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;)]\t&quot;</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1UnaryOPVFGNode.html#a4403fd618b01a26c7c1e8c5da2319db6">res</a>-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1UnaryOPVFGNode.html#a4403fd618b01a26c7c1e8c5da2319db6">res</a>-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>();</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> rawstr.str();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * 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#l00091">SVFVariables.h:91</a></div></div>
808
- <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
808
+ <div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01033">LLVMUtil.cpp:1033</a></div></div>
809
809
  <div class="ttc" id="classSVF_1_1UnaryOPVFGNode_html_a4403fd618b01a26c7c1e8c5da2319db6"><div class="ttname"><a href="classSVF_1_1UnaryOPVFGNode.html#a4403fd618b01a26c7c1e8c5da2319db6">SVF::UnaryOPVFGNode::res</a></div><div class="ttdeci">const PAGNode * res</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00470">VFGNode.h:470</a></div></div>
810
810
  <div class="ttc" id="classSVF_1_1UnaryOPVFGNode_html_ab63ddaa05181f2c60ca7a001001a908d"><div class="ttname"><a href="classSVF_1_1UnaryOPVFGNode.html#ab63ddaa05181f2c60ca7a001001a908d">SVF::UnaryOPVFGNode::opVerBegin</a></div><div class="ttdeci">OPVers::const_iterator opVerBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00521">VFGNode.h:521</a></div></div>
811
811
  <div class="ttc" id="classSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00107">SVFVariables.h:107</a></div></div>
@@ -932,15 +932,15 @@ Additional Inherited Members</h2></td></tr>
932
932
  <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00441">441</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
933
933
  <div class="fragment"><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; : <a class="code" href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">totalVFGNode</a>(0), <a class="code" href="classSVF_1_1VFG.html#a0c8cf98b652b5eb97d22e2636576f92f">callgraph</a>(cg), <a class="code" href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">pag</a>(<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()), <a class="code" href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">kind</a>(k)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCreate VFG Top Level Node\n&quot;</span>));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="classSVF_1_1VFG.html#a3544cc0380964f238c964a0e7b417862">addVFGNodes</a>();</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCreate SVFG Direct Edge\n&quot;</span>));</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1VFG.html#adedaba0713164e10ce6273b2947535e0">connectDirectVFGEdges</a>();</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;}</div><div class="ttc" id="classSVF_1_1VFG_html_a0c8cf98b652b5eb97d22e2636576f92f"><div class="ttname"><a href="classSVF_1_1VFG.html#a0c8cf98b652b5eb97d22e2636576f92f">SVF::VFG::callgraph</a></div><div class="ttdeci">PTACallGraph * callgraph</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00103">VFG.h:103</a></div></div>
934
934
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00098">SVFUtil.cpp:98</a></div></div>
935
- <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_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="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
935
+ <div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00441">SVFType.h:441</a></div></div>
936
936
  <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#l00107">SVFIR.h:107</a></div></div>
937
937
  <div class="ttc" id="classSVF_1_1VFG_html_adedaba0713164e10ce6273b2947535e0"><div class="ttname"><a href="classSVF_1_1VFG.html#adedaba0713164e10ce6273b2947535e0">SVF::VFG::connectDirectVFGEdges</a></div><div class="ttdeci">void connectDirectVFGEdges()</div><div class="ttdoc">Create edges between VFG nodes within a function. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00742">VFG.cpp:742</a></div></div>
938
- <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>
938
+ <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#l00050">SVFUtil.h:50</a></div></div>
939
939
  <div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
940
940
  <div class="ttc" id="classSVF_1_1VFG_html_a3867c591a231bad0aa2e6ab7c095a42f"><div class="ttname"><a href="classSVF_1_1VFG.html#a3867c591a231bad0aa2e6ab7c095a42f">SVF::VFG::kind</a></div><div class="ttdeci">VFGK kind</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00105">VFG.h:105</a></div></div>
941
941
  <div class="ttc" id="classSVF_1_1VFG_html_acb181d4f9faa40578c80e2018e2742b8"><div class="ttname"><a href="classSVF_1_1VFG.html#acb181d4f9faa40578c80e2018e2742b8">SVF::VFG::totalVFGNode</a></div><div class="ttdeci">NodeID totalVFGNode</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00088">VFG.h:88</a></div></div>
942
942
  <div class="ttc" id="classSVF_1_1VFG_html_a3544cc0380964f238c964a0e7b417862"><div class="ttname"><a href="classSVF_1_1VFG.html#a3544cc0380964f238c964a0e7b417862">SVF::VFG::addVFGNodes</a></div><div class="ttdeci">void addVFGNodes()</div><div class="ttdoc">Create VFG nodes. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8cpp_source.html#l00463">VFG.cpp:463</a></div></div>
943
- <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00417">SVFType.h:417</a></div></div>
943
+ <div class="ttc" id="SVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00435">SVFType.h:435</a></div></div>
944
944
  </div><!-- fragment -->
945
945
  </div>
946
946
  </div>
@@ -2288,7 +2288,7 @@ Additional Inherited Members</h2></td></tr>
2288
2288
  <div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00458">ICFGNode.h:458</a></div></div>
2289
2289
  <div class="ttc" id="classSVF_1_1SVFIR_html_a2a1e8ce39bf8deace3c344d5f05fe6ac"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">SVF::SVFIR::getCallSiteArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getCallSiteArgsList(const CallICFGNode *cs) const</div><div class="ttdoc">Get callsite argument list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00261">SVFIR.h:261</a></div></div>
2290
2290
  <div class="ttc" id="classSVF_1_1VFG_html_ab4e8ab307ad6beb46812a60ebd31ae3b"><div class="ttname"><a href="classSVF_1_1VFG.html#ab4e8ab307ad6beb46812a60ebd31ae3b">SVF::VFG::connectFRetAndARet</a></div><div class="ttdeci">virtual void connectFRetAndARet(const PAGNode *funReturn, const PAGNode *csReturn, CallSiteID csId, VFGEdgeSetTy &amp;edges)</div><div class="ttdoc">Connect formal-ret and actual ret. </div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00395">VFG.h:395</a></div></div>
2291
- <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="SVFType_8h_source.html#l00058">SVFType.h:58</a></div></div>
2291
+ <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="SVFType_8h_source.html#l00057">SVFType.h:57</a></div></div>
2292
2292
  <div class="ttc" id="classSVF_1_1VFG_html_a25c2bbbc2e966e2aaa59a5b83363557a"><div class="ttname"><a href="classSVF_1_1VFG.html#a25c2bbbc2e966e2aaa59a5b83363557a">SVF::VFG::pag</a></div><div class="ttdeci">SVFIR * pag</div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00104">VFG.h:104</a></div></div>
2293
2293
  <div class="ttc" id="classSVF_1_1SVFIR_html_ac359813747b4f75920c5f395ba74f410"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">SVF::SVFIR::hasFunArgsList</a></div><div class="ttdeci">bool hasFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Function has arguments list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00234">SVFIR.h:234</a></div></div>
2294
2294
  <div class="ttc" id="classSVF_1_1SVFIR_html_aa148e3e14ebad8460e32079f2f44413a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">SVF::SVFIR::getFunArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Get function arguments list. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00244">SVFIR.h:244</a></div></div>
@@ -2507,7 +2507,7 @@ Additional Inherited Members</h2></td></tr>
2507
2507
  <p>Dump <a class="el" href="classSVF_1_1VFG.html">VFG</a> </p>
2508
2508
 
2509
2509
  <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00928">928</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
2510
- <div class="fragment"><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;{</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <a class="code" href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>(), file, <span class="keyword">this</span>, simple);</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;}</div><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>
2510
+ <div class="fragment"><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;{</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <a class="code" href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">GraphPrinter::WriteGraphToFile</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>(), file, <span class="keyword">this</span>, simple);</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;}</div><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#l00050">SVFUtil.h:50</a></div></div>
2511
2511
  <div class="ttc" id="classSVF_1_1GraphPrinter_html_a014217fb0d05c8f2a2f1a6c5b19d3e10"><div class="ttname"><a href="classSVF_1_1GraphPrinter.html#a014217fb0d05c8f2a2f1a6c5b19d3e10">SVF::GraphPrinter::WriteGraphToFile</a></div><div class="ttdeci">static void WriteGraphToFile(SVF::OutStream &amp;O, const std::string &amp;GraphName, const GraphType &amp;GT, bool simple=false)</div><div class="ttdef"><b>Definition:</b> <a href="GraphPrinter_8h_source.html#l00056">GraphPrinter.h:56</a></div></div>
2512
2512
  </div><!-- fragment -->
2513
2513
  </div>