svf-tools 1.0.338 → 1.0.342

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 (201) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +4 -4
  3. package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  5. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  6. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  9. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +38 -36
  11. package/SVF-doxygen/html/html/ICFG_8h_source.html +18 -18
  12. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  13. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +4 -4
  17. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
  22. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
  23. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/SVFG_8h_source.html +4 -4
  28. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
  29. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +7 -7
  30. package/SVF-doxygen/html/html/SVFIR_8h_source.html +12 -12
  31. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
  32. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
  33. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
  34. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  35. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +91 -87
  36. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +20 -19
  38. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
  40. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +48 -46
  41. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
  44. package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
  45. package/SVF-doxygen/html/html/VFG_8h_source.html +4 -4
  46. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
  48. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +3 -3
  49. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +4 -4
  50. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  51. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
  52. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
  53. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
  55. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
  56. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
  57. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -1
  58. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +4 -4
  59. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +13 -11
  61. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +12 -12
  62. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +12 -12
  63. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
  64. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  65. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +1 -1
  66. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  67. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
  68. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +2 -2
  69. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +46 -14
  70. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +2 -2
  71. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +45 -14
  72. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +17 -17
  73. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
  74. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
  75. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
  76. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
  77. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +1 -3
  78. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
  79. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +35 -35
  80. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
  81. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +30 -30
  82. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +46 -46
  84. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  85. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
  86. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  88. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
  89. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
  90. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
  93. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  94. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
  96. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
  97. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
  98. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
  99. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  101. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
  102. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
  103. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
  104. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +21 -21
  105. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
  106. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
  107. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +1 -1
  108. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +6 -6
  110. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
  111. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +5 -5
  112. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
  113. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
  114. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +4 -4
  115. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +75 -73
  116. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +60 -16
  117. package/SVF-doxygen/html/html/classSVF_1_1RetPN.png +0 -0
  118. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
  119. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +8 -8
  120. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +2 -2
  121. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +12 -12
  122. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +12 -12
  123. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
  125. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  126. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  127. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
  128. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +4 -4
  129. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +22 -21
  130. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +34 -34
  131. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +4 -4
  133. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +4 -4
  134. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +15 -15
  138. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
  139. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +6 -6
  141. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +20 -14
  142. package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
  143. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +74 -72
  144. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +60 -16
  145. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.png +0 -0
  146. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
  147. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  148. package/SVF-doxygen/html/html/functions_c.html +18 -13
  149. package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
  150. package/SVF-doxygen/html/html/functions_func_c.html +19 -19
  151. package/SVF-doxygen/html/html/functions_func_i.html +19 -17
  152. package/SVF-doxygen/html/html/functions_i.html +19 -17
  153. package/SVF-doxygen/html/html/functions_m.html +1 -1
  154. package/SVF-doxygen/html/html/functions_n.html +3 -3
  155. package/SVF-doxygen/html/html/functions_o.html +10 -10
  156. package/SVF-doxygen/html/html/functions_p.html +19 -28
  157. package/SVF-doxygen/html/html/functions_s.html +13 -12
  158. package/SVF-doxygen/html/html/functions_t.html +4 -4
  159. package/SVF-doxygen/html/html/functions_v.html +3 -3
  160. package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
  161. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  162. package/SVF-doxygen/html/html/functions_w.html +5 -9
  163. package/SVF-doxygen/html/html/hierarchy.html +5 -5
  164. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
  165. package/SVF-doxygen/html/html/search/all_10.js +11 -12
  166. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  167. package/SVF-doxygen/html/html/search/all_13.js +6 -5
  168. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  169. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  170. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  171. package/SVF-doxygen/html/html/search/all_3.js +3 -2
  172. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  173. package/SVF-doxygen/html/html/search/all_c.js +1 -1
  174. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  175. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  176. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  177. package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
  178. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  179. package/SVF-doxygen/html/html/search/functions_8.js +4 -4
  180. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  181. package/SVF-doxygen/html/html/search/variables_10.js +0 -1
  182. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  183. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  184. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  185. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +17 -17
  186. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  187. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  188. package/include/MemoryModel/SVFIR.h +1 -1
  189. package/include/MemoryModel/SVFVariables.h +25 -4
  190. package/include/MemoryModel/SymbolTableInfo.h +17 -11
  191. package/include/Util/Options.h +1 -1
  192. package/lib/Graphs/ICFG.cpp +39 -27
  193. package/lib/MSSA/MemSSA.cpp +1 -1
  194. package/lib/MemoryModel/SVFStatements.cpp +53 -49
  195. package/lib/MemoryModel/SVFVariables.cpp +10 -10
  196. package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
  197. package/lib/SVF-FE/SymbolTableBuilder.cpp +10 -10
  198. package/lib/Util/Options.cpp +3 -3
  199. package/lib/Util/PTAStat.cpp +3 -3
  200. package/lib/Util/SVFUtil.cpp +2 -0
  201. package/package.json +1 -1
@@ -647,7 +647,7 @@ Private Attributes</h2></td></tr>
647
647
  <p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitiveStat.html#af202623692135ad746aed1be995c55fb">SVF::VersionedFlowSensitiveStat</a>, <a class="el" href="classSVF_1_1SVFGStat.html#ab11b1fbef2bd7cfc9bf8e1b993dbfa11">SVF::SVFGStat</a>, <a class="el" href="classSVF_1_1FlowSensitiveStat.html#a059047d05e9873a624e333162a460571">SVF::FlowSensitiveStat</a>, <a class="el" href="classSVF_1_1MemSSAStat.html#abf3825b642cf115259ea21e5f7e28878">SVF::MemSSAStat</a>, <a class="el" href="classSVF_1_1ICFGStat.html#aabe0779dc44ddc4e06300ea912cca39f">SVF::ICFGStat</a>, <a class="el" href="classSVF_1_1AndersenStat.html#a66fee1c0ee5781152a2d489f8857ad43">SVF::AndersenStat</a>, and <a class="el" href="classSVF_1_1DDAStat.html#a99f31f412577a7998521250fb5004713">SVF::DDAStat</a>.</p>
648
648
 
649
649
  <p class="definition">Definition at line <a class="el" href="PTAStat_8cpp_source.html#l00132">132</a> of file <a class="el" href="PTAStat_8cpp_source.html">PTAStat.cpp</a>.</p>
650
- <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</a>();</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_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfFunction = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGlobal = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfStack = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHeap = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarArray = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarStruct = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstArray = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstStruct = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfScalar = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfConstant = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;SymID&gt;</a> memObjSet;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</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; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = it-&gt;second;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* obj = SVFUtil::dyn_cast&lt;ObjVar&gt;(node))</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = obj-&gt;getMemObj();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (memObjSet.insert(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()).second == <span class="keyword">false</span>)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">isBlackHoleObj</a>())</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; numOfFunction++;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">isGlobalObj</a>())</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; numOfGlobal++;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">isStack</a>())</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; numOfStack++;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; numOfHeap++;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a616e9f4d6f82a253f94391c47668b9a6">isVarArray</a>())</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; numOfHasVarArray++;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ad1966c52f95775ac7d65c0ba6632c3cf">isVarStruct</a>())</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; numOfHasVarStruct++;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae30d2d8f6f621795a70ba046ca25af2d">isConstArray</a>())</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; numOfHasConstArray++;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a0f5283e512d6c749b33ba9cfc2d70d17">isConstStruct</a>())</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; numOfHasConstStruct++;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">hasPtrObj</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; numOfScalar++;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3f429b085f749ed0c8269517eb9094ae">isConstant</a>())</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; numOfConstant++;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; fiObjNumber++;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; fsObjNumber++;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()))</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">getValueNodeNum</a>() + pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a4b4592e3187bb6583aba63b2f374754e">getFieldValNodeNum</a>();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">getObjectNodeNum</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">TotalNumOfFieldObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af7a98a5eb789178594063140c85cd21f">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#af6a6e3ea4c7f8e1c984bea8d5fb9a7c0">MaxStructSize</a>] = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">TotalNumOfEdges</a>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">getPAGEdgeNum</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalPTAPAGEdges&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">getPTAPAGEdgeNum</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">NumberOfFieldInsensitiveObj</a>] = fiObjNumber;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">NumberOfFieldSensitiveObj</a>] = fsObjNumber;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">NumOfAddrs</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">PAGEdge::Addr</a>).size();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aa7356142f51d942063be5a2910940f">NumOfLoads</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">PAGEdge::Load</a>).size();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">NumOfStores</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">PAGEdge::Store</a>).size();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">NumOfCopys</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">PAGEdge::Copy</a>).size();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">NumOfGeps</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">PAGEdge::NormalGep</a>).size() + pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">PAGEdge::VariantGep</a>).size();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">NumOfCalls</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">PAGEdge::Call</a>).size();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a0a552611fcd20e1310290bdae404a514">NumOfReturns</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">PAGEdge::Ret</a>).size();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae9952b7456b5102113d1fee4d9d7801a">NumOfFunctionObjs</a>] = numOfFunction;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a57574c85a5a875a05ef83d3c916cf3e5">NumOfGlobalObjs</a>] = numOfGlobal;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aff48eaa2045ee619a8ea793a9234b8">NumOfHeapObjs</a>] = numOfHeap;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae05503909688a17dc1f282d1d029d24e">NumOfStackObjs</a>] = numOfStack;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a95edd35cec92fa4cacc8b59b5eecc827">NumOfObjsHasVarStruct</a>] = numOfHasVarStruct;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">NumOfObjsHasVarArray</a>] = numOfHasVarArray;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a918051b1d0eb4f49c349352408cc9751">NumOfObjsHasConstStruct</a>] = numOfHasConstStruct;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">NumOfObjsHasConstArray</a>] = numOfHasConstArray;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a9014371b8ed95ab8135eed2a7fa945f1">NumOfNonPtrObjs</a>] = numOfScalar;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">NumOfIndirectCallSites</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalCallSite&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().size();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;LocalVarInRecur&quot;</span>] = <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.count();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">bitcastInstStat</a>();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">branchStat</a>();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">printStat</a>(<span class="stringliteral">&quot;General Stats&quot;</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}</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#l00361">GenericGraph.h:361</a></div></div>
650
+ <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</a>();</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_1SVFIR.html">SVFIR</a>* pag = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfFunction = 0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfGlobal = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfStack = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHeap = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarArray = 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasVarStruct = 0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstArray = 0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfHasConstStruct = 0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfScalar = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> numOfConstant = 0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fiObjNumber = 0;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fsObjNumber = 0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;SymID&gt;</a> memObjSet;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> it = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(), eit = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); it!=eit; ++it)</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; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = it-&gt;second;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* obj = SVFUtil::dyn_cast&lt;ObjVar&gt;(node))</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; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = obj-&gt;getMemObj();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (memObjSet.insert(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()).second == <span class="keyword">false</span>)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">isBlackHoleObj</a>())</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ae1d14e2bf0be36cdadebf119822f607b">isFunction</a>())</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; numOfFunction++;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">isGlobalObj</a>())</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; numOfGlobal++;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">isStack</a>())</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; numOfStack++;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">isHeap</a>())</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; numOfHeap++;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a616e9f4d6f82a253f94391c47668b9a6">isVarArray</a>())</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; numOfHasVarArray++;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#ad1966c52f95775ac7d65c0ba6632c3cf">isVarStruct</a>())</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; numOfHasVarStruct++;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>())</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; numOfHasConstArray++;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; numOfHasConstStruct++;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">hasPtrObj</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; numOfScalar++;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>())</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; numOfConstant++;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">isFieldInsensitive</a>())</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; fiObjNumber++;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; fsObjNumber++;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">isLocalVarInRecursiveFun</a>(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()))</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.set(node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a1a4d418fd9e5413e7ffbbfe57f5e0560">TotalNumOfPointers</a>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">getValueNodeNum</a>() + pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a4b4592e3187bb6583aba63b2f374754e">getFieldValNodeNum</a>();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acd9848f15aa359550e86c7b857df84ed">TotalNumOfObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">getObjectNodeNum</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">TotalNumOfFieldObjects</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#af7a98a5eb789178594063140c85cd21f">getFieldObjNodeNum</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#af6a6e3ea4c7f8e1c984bea8d5fb9a7c0">MaxStructSize</a>] = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">TotalNumOfEdges</a>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a2fda1df53e53c0098d99f36d8f6f0998">getPAGEdgeNum</a>();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalPTAPAGEdges&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">getPTAPAGEdgeNum</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ad1a7e7aec8f272017be7d0b6acda86a4">NumberOfFieldInsensitiveObj</a>] = fiObjNumber;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ab62eb21c7dc03f68b0509c31451b2e98">NumberOfFieldSensitiveObj</a>] = fsObjNumber;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">NumOfAddrs</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">PAGEdge::Addr</a>).size();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aa7356142f51d942063be5a2910940f">NumOfLoads</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">PAGEdge::Load</a>).size();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">NumOfStores</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">PAGEdge::Store</a>).size();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a97a8b662356fc89cdd2cb9463fa5578b">NumOfCopys</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">PAGEdge::Copy</a>).size();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">NumOfGeps</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ac2089ffeab3f27354b2094758c805746">PAGEdge::NormalGep</a>).size() + pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">PAGEdge::VariantGep</a>).size();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">NumOfCalls</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">PAGEdge::Call</a>).size();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a0a552611fcd20e1310290bdae404a514">NumOfReturns</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">PAGEdge::Ret</a>).size();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae9952b7456b5102113d1fee4d9d7801a">NumOfFunctionObjs</a>] = numOfFunction;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a57574c85a5a875a05ef83d3c916cf3e5">NumOfGlobalObjs</a>] = numOfGlobal;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a4aff48eaa2045ee619a8ea793a9234b8">NumOfHeapObjs</a>] = numOfHeap;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#ae05503909688a17dc1f282d1d029d24e">NumOfStackObjs</a>] = numOfStack;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a95edd35cec92fa4cacc8b59b5eecc827">NumOfObjsHasVarStruct</a>] = numOfHasVarStruct;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">NumOfObjsHasVarArray</a>] = numOfHasVarArray;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a918051b1d0eb4f49c349352408cc9751">NumOfObjsHasConstStruct</a>] = numOfHasConstStruct;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">NumOfObjsHasConstArray</a>] = numOfHasConstArray;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a9014371b8ed95ab8135eed2a7fa945f1">NumOfNonPtrObjs</a>] = numOfScalar;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<a class="code" href="classSVF_1_1PTAStat.html#a618707c52da086e04f5e7bff31794cf3">NumOfIndirectCallSites</a>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>().size();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;TotalCallSite&quot;</span>] = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>().size();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>[<span class="stringliteral">&quot;LocalVarInRecur&quot;</span>] = <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.count();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">bitcastInstStat</a>();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">branchStat</a>();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">printStat</a>(<span class="stringliteral">&quot;General Stats&quot;</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}</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#l00361">GenericGraph.h:361</a></div></div>
651
651
  <div class="ttc" id="classSVF_1_1MemObj_html_a7b890ca9e93b1c61cc6437b7e6a82a8c"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7b890ca9e93b1c61cc6437b7e6a82a8c">SVF::MemObj::isBlackHoleObj</a></div><div class="ttdeci">bool isBlackHoleObj() const</div><div class="ttdoc">Whether it is a black hole object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00612">SymbolTableInfo.cpp:612</a></div></div>
652
652
  <div class="ttc" id="classSVF_1_1PTAStat_html_acc5e4740e11cb6f9794723e5f61ab63b"><div class="ttname"><a href="classSVF_1_1PTAStat.html#acc5e4740e11cb6f9794723e5f61ab63b">SVF::PTAStat::NumOfGeps</a></div><div class="ttdeci">static const char * NumOfGeps</div><div class="ttdoc">SVFIR gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00070">PTAStat.h:70</a></div></div>
653
653
  <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00418">SymbolTableInfo.h:418</a></div></div>
@@ -660,15 +660,16 @@ Private Attributes</h2></td></tr>
660
660
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
661
661
  <div class="ttc" id="classSVF_1_1MemObj_html_a40462512a99eb258d8cd442c38d812b4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a40462512a99eb258d8cd442c38d812b4">SVF::MemObj::isGlobalObj</a></div><div class="ttdeci">bool isGlobalObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00665">SymbolTableInfo.cpp:665</a></div></div>
662
662
  <div class="ttc" id="classSVF_1_1MemObj_html_af7316c697eafc71d5fc93108da4e2cee"><div class="ttname"><a href="classSVF_1_1MemObj.html#af7316c697eafc71d5fc93108da4e2cee">SVF::MemObj::isStack</a></div><div class="ttdeci">bool isStack() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00675">SymbolTableInfo.cpp:675</a></div></div>
663
- <div class="ttc" id="classSVF_1_1MemObj_html_a6dae1b3429c6049f0153ec006d329082"><div class="ttname"><a href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">SVF::MemObj::hasPtrObj</a></div><div class="ttdeci">bool hasPtrObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00720">SymbolTableInfo.cpp:720</a></div></div>
663
+ <div class="ttc" id="classSVF_1_1MemObj_html_a6dae1b3429c6049f0153ec006d329082"><div class="ttname"><a href="classSVF_1_1MemObj.html#a6dae1b3429c6049f0153ec006d329082">SVF::MemObj::hasPtrObj</a></div><div class="ttdeci">bool hasPtrObj() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00725">SymbolTableInfo.cpp:725</a></div></div>
664
664
  <div class="ttc" id="classSVF_1_1PTAStat_html_a78693e8bf93d712eb76c9d6dc0c45ae6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a78693e8bf93d712eb76c9d6dc0c45ae6">SVF::PTAStat::NumOfObjsHasVarArray</a></div><div class="ttdeci">static const char * NumOfObjsHasVarArray</div><div class="ttdoc">SVFIR object node has var array (maybe nested with struct) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00089">PTAStat.h:89</a></div></div>
665
- <div class="ttc" id="classSVF_1_1MemObj_html_ae30d2d8f6f621795a70ba046ca25af2d"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae30d2d8f6f621795a70ba046ca25af2d">SVF::MemObj::isConstArray</a></div><div class="ttdeci">bool isConstArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00710">SymbolTableInfo.cpp:710</a></div></div>
666
665
  <div class="ttc" id="classSVF_1_1PTAStat_html_ac0e0a1c49d33e02f5cc0f21565ce627d"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac0e0a1c49d33e02f5cc0f21565ce627d">SVF::PTAStat::TotalNumOfFieldObjects</a></div><div class="ttdeci">static const char * TotalNumOfFieldObjects</div><div class="ttdoc">Total SVFIR field object node. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00062">PTAStat.h:62</a></div></div>
666
+ <div class="ttc" id="classSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00710">SymbolTableInfo.cpp:710</a></div></div>
667
667
  <div class="ttc" id="classSVF_1_1PTAStat_html_a6cbeca77d0681f7da28979cbd0f661b2"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a6cbeca77d0681f7da28979cbd0f661b2">SVF::PTAStat::NumOfCalls</a></div><div class="ttdeci">static const char * NumOfCalls</div><div class="ttdoc">SVFIR call edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00071">PTAStat.h:71</a></div></div>
668
668
  <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
669
- <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00318">SVFVariables.h:318</a></div></div>
669
+ <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00322">SVFVariables.h:322</a></div></div>
670
670
  <div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
671
671
  <div class="ttc" id="classSVF_1_1IRGraph_html_a4c8ef6e30a33ecbdc4024e201237ae22"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a4c8ef6e30a33ecbdc4024e201237ae22">SVF::IRGraph::getValueNodeNum</a></div><div class="ttdeci">Size_t getValueNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00169">IRGraph.h:169</a></div></div>
672
+ <div class="ttc" id="classSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00705">SymbolTableInfo.cpp:705</a></div></div>
672
673
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_abc7e567209010286a68634c700d76cca"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">SVF::SymbolTableInfo::getMaxStructSize</a></div><div class="ttdeci">u32_t getMaxStructSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00309">SymbolTableInfo.h:309</a></div></div>
673
674
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3a8902fc2aa68428e271012861a2a2">SVF::SVFStmt::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
674
675
  <div class="ttc" id="classSVF_1_1PTAStat_html_a2d5eedfe3418a3a83c9d254ba28399eb"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a2d5eedfe3418a3a83c9d254ba28399eb">SVF::PTAStat::bitcastInstStat</a></div><div class="ttdeci">void bitcastInstStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00326">PTAStat.cpp:326</a></div></div>
@@ -691,7 +692,6 @@ Private Attributes</h2></td></tr>
691
692
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
692
693
  <div class="ttc" id="classSVF_1_1PTAStat_html_a918051b1d0eb4f49c349352408cc9751"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a918051b1d0eb4f49c349352408cc9751">SVF::PTAStat::NumOfObjsHasConstStruct</a></div><div class="ttdeci">static const char * NumOfObjsHasConstStruct</div><div class="ttdoc">SVFIR object node has const struct (maybe nested with array) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00090">PTAStat.h:90</a></div></div>
693
694
  <div class="ttc" id="classSVF_1_1PTAStat_html_a656ad9980ff05af396ed6754c50916e7"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a656ad9980ff05af396ed6754c50916e7">SVF::PTAStat::NumOfStores</a></div><div class="ttdeci">static const char * NumOfStores</div><div class="ttdoc">SVFIR store edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00068">PTAStat.h:68</a></div></div>
694
- <div class="ttc" id="classSVF_1_1MemObj_html_a0f5283e512d6c749b33ba9cfc2d70d17"><div class="ttname"><a href="classSVF_1_1MemObj.html#a0f5283e512d6c749b33ba9cfc2d70d17">SVF::MemObj::isConstStruct</a></div><div class="ttdeci">bool isConstStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00705">SymbolTableInfo.cpp:705</a></div></div>
695
695
  <div class="ttc" id="classSVF_1_1MemObj_html_a616e9f4d6f82a253f94391c47668b9a6"><div class="ttname"><a href="classSVF_1_1MemObj.html#a616e9f4d6f82a253f94391c47668b9a6">SVF::MemObj::isVarArray</a></div><div class="ttdeci">bool isVarArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00700">SymbolTableInfo.cpp:700</a></div></div>
696
696
  <div class="ttc" id="classSVF_1_1PTAStat_html_adb31b163f0cbb9d9ce207ef5d8c075fa"><div class="ttname"><a href="classSVF_1_1PTAStat.html#adb31b163f0cbb9d9ce207ef5d8c075fa">SVF::PTAStat::NumOfObjsHasConstArray</a></div><div class="ttdeci">static const char * NumOfObjsHasConstArray</div><div class="ttdoc">SVFIR object node has const array (maybe nested with struct) </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00091">PTAStat.h:91</a></div></div>
697
697
  <div class="ttc" id="classSVF_1_1PTAStat_html_a3afc0a36232a0388d8aa42c68219cb26"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3afc0a36232a0388d8aa42c68219cb26">SVF::PTAStat::TotalNumOfEdges</a></div><div class="ttdeci">static const char * TotalNumOfEdges</div><div class="ttdoc">Total SVFIR edge number. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00064">PTAStat.h:64</a></div></div>
@@ -702,7 +702,6 @@ Private Attributes</h2></td></tr>
702
702
  <div class="ttc" id="classSVF_1_1MemObj_html_ad1966c52f95775ac7d65c0ba6632c3cf"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad1966c52f95775ac7d65c0ba6632c3cf">SVF::MemObj::isVarStruct</a></div><div class="ttdeci">bool isVarStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00695">SymbolTableInfo.cpp:695</a></div></div>
703
703
  <div class="ttc" id="classSVF_1_1PTAStat_html_ada838d9e03f2be4fb3ceffab3983b564"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ada838d9e03f2be4fb3ceffab3983b564">SVF::PTAStat::branchStat</a></div><div class="ttdeci">void branchStat()</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00354">PTAStat.cpp:354</a></div></div>
704
704
  <div class="ttc" id="classSVF_1_1MemObj_html_a898c5bb3956402578266a6fb142e02b1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a898c5bb3956402578266a6fb142e02b1">SVF::MemObj::isHeap</a></div><div class="ttdeci">bool isHeap() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00680">SymbolTableInfo.cpp:680</a></div></div>
705
- <div class="ttc" id="classSVF_1_1MemObj_html_a3f429b085f749ed0c8269517eb9094ae"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3f429b085f749ed0c8269517eb9094ae">SVF::MemObj::isConstant</a></div><div class="ttdeci">bool isConstant() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00715">SymbolTableInfo.cpp:715</a></div></div>
706
705
  <div class="ttc" id="classSVF_1_1MemObj_html_a41d85883d44ad77832b020455951c6fc"><div class="ttname"><a href="classSVF_1_1MemObj.html#a41d85883d44ad77832b020455951c6fc">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00649">SymbolTableInfo.cpp:649</a></div></div>
707
706
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a108380f6f0b67654bb7c7676686096c8"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a108380f6f0b67654bb7c7676686096c8">SVF::PointerAnalysis::isLocalVarInRecursiveFun</a></div><div class="ttdeci">bool isLocalVarInRecursiveFun(NodeID id) const</div><div class="ttdoc">Whether a local variable is in function recursions. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00156">PointerAnalysis.cpp:156</a></div></div>
708
707
  <div class="ttc" id="classSVF_1_1IRGraph_html_a8e9b2e37b36433c01e90d54a4edbf7f3"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a8e9b2e37b36433c01e90d54a4edbf7f3">SVF::IRGraph::getObjectNodeNum</a></div><div class="ttdeci">Size_t getObjectNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00173">IRGraph.h:173</a></div></div>
@@ -718,6 +717,7 @@ Private Attributes</h2></td></tr>
718
717
  <div class="ttc" id="classSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
719
718
  <div class="ttc" id="classSVF_1_1SVFIR_html_ae2006820c0d00482b85e7ae3adcb5744"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">SVF::SVFIR::getSVFStmtSet</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy &amp; getSVFStmtSet(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get/set methods to get SVFStmts based on their kinds and ICFGNodes. </div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00162">SVFIR.h:162</a></div></div>
720
719
  <div class="ttc" id="classSVF_1_1PTAStat_html_a5b4095f427c9c7b9ec0db497ba33baea"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">SVF::PTAStat::localVarInRecursion</a></div><div class="ttdeci">NodeBS localVarInRecursion</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00150">PTAStat.h:150</a></div></div>
720
+ <div class="ttc" id="classSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00715">SymbolTableInfo.cpp:715</a></div></div>
721
721
  <div class="ttc" id="classSVF_1_1PTAStat_html_aa5f455bfa79743b8e263431593d29bbf"><div class="ttname"><a href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">SVF::PTAStat::printStat</a></div><div class="ttdeci">virtual void printStat(string str=&quot;&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8cpp_source.html#l00290">PTAStat.cpp:290</a></div></div>
722
722
  <div class="ttc" id="classSVF_1_1PTAStat_html_ac5bf59a0a7a760c9fec5f22dedec5eb6"><div class="ttname"><a href="classSVF_1_1PTAStat.html#ac5bf59a0a7a760c9fec5f22dedec5eb6">SVF::PTAStat::NumOfAddrs</a></div><div class="ttdeci">static const char * NumOfAddrs</div><div class="ttdoc">SVFIR addr edge. </div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00066">PTAStat.h:66</a></div></div>
723
723
  <div class="ttc" id="classSVF_1_1IRGraph_html_ad4860fe89aa3a11c73aac3ed60f712cb"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ad4860fe89aa3a11c73aac3ed60f712cb">SVF::IRGraph::getPTAPAGEdgeNum</a></div><div class="ttdeci">Size_t getPTAPAGEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00194">IRGraph.h:194</a></div></div>
@@ -540,8 +540,8 @@ Additional Inherited Members</h2></td></tr>
540
540
  </div><div class="memdoc">
541
541
  <p>Return true if this is a phi at the function exit to receive one or multiple return values of this function </p>
542
542
 
543
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00271">271</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
544
- <div class="fragment"><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;RetPN&gt;(<a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>());</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div><div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a00a14ad8f49912b876fd9d729fea4601"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">SVF::MultiOpndStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdoc">Result SVFVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00691">SVFStatements.h:691</a></div></div>
543
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00275">275</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
544
+ <div class="fragment"><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;RetPN&gt;(<a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>());</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;}</div><div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a00a14ad8f49912b876fd9d729fea4601"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">SVF::MultiOpndStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdoc">Result SVFVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00691">SVFStatements.h:691</a></div></div>
545
545
  </div><!-- fragment -->
546
546
  </div>
547
547
  </div>
@@ -599,13 +599,13 @@ Additional Inherited Members</h2></td></tr>
599
599
  <p>Reimplemented from <a class="el" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">SVF::SVFStmt</a>.</p>
600
600
 
601
601
  <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00090">90</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
602
- <div class="fragment"><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; std::string str;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;PhiStmt: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--(&quot;</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op : <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>())</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; rawstr &lt;&lt; op-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;)]\t&quot;</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">Options::PAGDotGraphShorter</a>) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars &amp; getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00703">SVFStatements.h:703</a></div></div>
602
+ <div class="fragment"><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; std::string str;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;PhiStmt: [Var&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>() &lt;&lt; <span class="stringliteral">&quot; &lt;-- (Var&quot;</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op : <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>())</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; rawstr &lt;&lt; op-&gt;getId() &lt;&lt; <span class="stringliteral">&quot;,&quot;</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;)]\t&quot;</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">Options::ShowSVFIRValue</a>) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars &amp; getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00703">SVFStatements.h:703</a></div></div>
603
603
  <div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
604
604
  <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
605
- <div class="ttc" id="classSVF_1_1Options_html_a8eba08052f7af57b762155a58844480c"><div class="ttname"><a href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options::PAGDotGraphShorter</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGDotGraphShorter</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
606
605
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
607
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00388">SVFUtil.cpp:388</a></div></div>
608
- <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00257">SVFStatements.cpp:257</a></div></div>
606
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
607
+ <div class="ttc" id="classSVF_1_1Options_html_a63c2ff1420867ea4ef0a94d28b3f0558"><div class="ttname"><a href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options::ShowSVFIRValue</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ShowSVFIRValue</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
608
+ <div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00261">SVFStatements.cpp:261</a></div></div>
609
609
  </div><!-- fragment -->
610
610
  </div>
611
611
  </div>
@@ -1071,7 +1071,7 @@ Private Member Functions</h2></td></tr>
1071
1071
 
1072
1072
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00509">509</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
1073
1073
  <div class="fragment"><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">for</span> (VFunSet::const_iterator fit = vfns.begin(),</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; feit = vfns.end(); fit != feit; ++fit)</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *fit;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">getLLVMFun</a>());</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].count(callee) &gt; 0)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()).arg_size() == callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a3757cd3ae587eaca488fa4cd8ad3967d">arg_size</a>() ||</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVFUtil::getLLVMCallSite</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()).getFunctionType()-&gt;isVarArg() &amp;&amp; callee-&gt;<a class="code" href="classSVF_1_1SVFFunction.html#a3c1fa59deae39c75c72c97e47326d982">isVarArg</a>()))</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; {</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; newEdges[cs].insert(callee);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#a1ca30dfa42702071b65d363c76d25cbe">getIndCallMap</a>()[cs].insert(callee);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1SVFIR.html#aa1943d53e75aef9b014953143c6894da">getICFG</a>()-&gt;<a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>());</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <a class="code" href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">ptaCallGraph</a>-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#a09d0b8461ec0e678e1e69368b0f66b02">addIndirectCallGraphEdge</a>(callBlockNode, cs-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">getCaller</a>(),callee);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; }</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00256">SVFUtil.h:256</a></div></div>
1074
- <div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
1074
+ <div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
1075
1075
  <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="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
1076
1076
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad47b39252e02c68dfb466d4f42dc7ebe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">SVF::PointerAnalysis::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdoc">Call graph used for pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00157">PointerAnalysis.h:157</a></div></div>
1077
1077
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::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#l00400">ICFGNode.h:400</a></div></div>
@@ -1458,8 +1458,8 @@ Private Member Functions</h2></td></tr>
1458
1458
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a861554c2fdeaa406131c2c920b4c7908"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a861554c2fdeaa406131c2c920b4c7908">SVF::PointerAnalysis::dumpAllPts</a></div><div class="ttdeci">virtual void dumpAllPts()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00271">PointerAnalysis.h:271</a></div></div>
1459
1459
  <div class="ttc" id="classSVF_1_1Options_html_a61c9d525088cc044f8937a39bb96aa93"><div class="ttname"><a href="classSVF_1_1Options.html#a61c9d525088cc044f8937a39bb96aa93">SVF::Options::CallGraphDotGraph</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; CallGraphDotGraph</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00136">Options.h:136</a></div></div>
1460
1460
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_aac1a133d478bd14c74309d9c4eaf0c8e"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#aac1a133d478bd14c74309d9c4eaf0c8e">SVF::PointerAnalysis::alias_validation</a></div><div class="ttdeci">bool alias_validation</div><div class="ttdoc">Flag for validating points-to/alias results. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00141">PointerAnalysis.h:141</a></div></div>
1461
- <div class="ttc" id="classSVF_1_1ICFG_html_a5a00682b75726cacc1b4d88bbf40c824"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">SVF::ICFG::updateCallGraph</a></div><div class="ttdeci">void updateCallGraph(PTACallGraph *callgraph)</div><div class="ttdoc">update ICFG for indirect calls </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00414">ICFG.cpp:414</a></div></div>
1462
- <div class="ttc" id="classSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00398">ICFG.cpp:398</a></div></div>
1461
+ <div class="ttc" id="classSVF_1_1ICFG_html_a5a00682b75726cacc1b4d88bbf40c824"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">SVF::ICFG::updateCallGraph</a></div><div class="ttdeci">void updateCallGraph(PTACallGraph *callgraph)</div><div class="ttdoc">update ICFG for indirect calls </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00426">ICFG.cpp:426</a></div></div>
1462
+ <div class="ttc" id="classSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00410">ICFG.cpp:410</a></div></div>
1463
1463
  <div class="ttc" id="classSVF_1_1Options_html_a14ceeb5d7de81a0946389159986e4955"><div class="ttname"><a href="classSVF_1_1Options.html#a14ceeb5d7de81a0946389159986e4955">SVF::Options::FuncPointerPrint</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; FuncPointerPrint</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00128">Options.h:128</a></div></div>
1464
1464
  <div class="ttc" id="classSVF_1_1Options_html_aea29a835c54fab800117e57de00e0b1e"><div class="ttname"><a href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">SVF::Options::DumpICFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpICFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00135">Options.h:135</a></div></div>
1465
1465
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
@@ -2848,7 +2848,7 @@ Private Member Functions</h2></td></tr>
2848
2848
 
2849
2849
  <p class="definition">Definition at line <a class="el" href="PointerAnalysis_8cpp_source.html#l00174">174</a> of file <a class="el" href="PointerAnalysis_8cpp_source.html">PointerAnalysis.cpp</a>.</p>
2850
2850
  <div class="fragment"><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVFIR::iterator</a> nIter = <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">begin</a>(); nIter != <a class="code" href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">pag</a>-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a4bef15157423cef48dc7333a803cd27d">end</a>(); ++nIter)</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; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* node = SVFUtil::dyn_cast&lt;ObjVar&gt;(nIter-&gt;second))</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; const_cast&lt;MemObj*&gt;(node-&gt;getMemObj())-&gt;setFieldSensitive();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</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#l00361">GenericGraph.h:361</a></div></div>
2851
- <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00318">SVFVariables.h:318</a></div></div>
2851
+ <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00322">SVFVariables.h:322</a></div></div>
2852
2852
  <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#l00365">GenericGraph.h:365</a></div></div>
2853
2853
  <div class="ttc" id="classSVF_1_1GenericGraph_html_ac213302cf5c7cdf3b66f7b18649d0fbc"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#ac213302cf5c7cdf3b66f7b18649d0fbc">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::iterator</a></div><div class="ttdeci">IDToNodeMapTy::iterator iterator</div><div class="ttdoc">Node Iterators. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00338">GenericGraph.h:338</a></div></div>
2854
2854
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_adc7f5c71efb9cd1bec4f5ca9127654c3"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#adc7f5c71efb9cd1bec4f5ca9127654c3">SVF::PointerAnalysis::pag</a></div><div class="ttdeci">static SVFIR * pag</div><div class="ttdoc">SVFIR. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00147">PointerAnalysis.h:147</a></div></div>
@@ -2971,7 +2971,7 @@ Private Member Functions</h2></td></tr>
2971
2971
  <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="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
2972
2972
  <div class="ttc" id="classSVF_1_1Options_html_ad6c29b05188c9e06aa89623c61865ed8"><div class="ttname"><a href="classSVF_1_1Options.html#ad6c29b05188c9e06aa89623c61865ed8">SVF::Options::IndirectCallLimit</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; IndirectCallLimit</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00138">Options.h:138</a></div></div>
2973
2973
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad47b39252e02c68dfb466d4f42dc7ebe"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad47b39252e02c68dfb466d4f42dc7ebe">SVF::PointerAnalysis::ptaCallGraph</a></div><div class="ttdeci">PTACallGraph * ptaCallGraph</div><div class="ttdoc">Call graph used for pointer analysis. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00157">PointerAnalysis.h:157</a></div></div>
2974
- <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00318">SVFVariables.h:318</a></div></div>
2974
+ <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00322">SVFVariables.h:322</a></div></div>
2975
2975
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a521f99705f67e3fea7167728a4e37129"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a521f99705f67e3fea7167728a4e37129">SVF::PointerAnalysis::matchArgs</a></div><div class="ttdeci">bool matchArgs(const CallBlockNode *cs, const SVFFunction *callee)</div><div class="ttdoc">Match arguments for callsite at caller and callee. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00463">PointerAnalysis.cpp:463</a></div></div>
2976
2976
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_a5bab98a0b8cf0a804d53abd994e922c0"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a5bab98a0b8cf0a804d53abd994e922c0">SVF::CallBlockNode::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#l00400">ICFGNode.h:400</a></div></div>
2977
2977
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a09d0b8461ec0e678e1e69368b0f66b02"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a09d0b8461ec0e678e1e69368b0f66b02">SVF::PTACallGraph::addIndirectCallGraphEdge</a></div><div class="ttdeci">void addIndirectCallGraphEdge(const CallBlockNode *cs, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00185">PTACallGraph.cpp:185</a></div></div>
@@ -596,13 +596,15 @@ Additional Inherited Members</h2></td></tr>
596
596
 
597
597
  <p>Reimplemented from <a class="el" href="classSVF_1_1ICFGNode.html#af1b6fd9ea200ab0ff51d48a4872c921a">SVF::ICFGNode</a>.</p>
598
598
 
599
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00122">122</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
600
- <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; std::string str;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;RetBlockNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1RetBlockNode.html#a436cd30be9fba449fee6bc6dcc18bb18">getCallSite</a>()) &lt;&lt; <span class="stringliteral">&quot; {fun: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div><div class="ttc" id="classSVF_1_1RetBlockNode_html_a436cd30be9fba449fee6bc6dcc18bb18"><div class="ttname"><a href="classSVF_1_1RetBlockNode.html#a436cd30be9fba449fee6bc6dcc18bb18">SVF::RetBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00475">ICFGNode.h:475</a></div></div>
599
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00132">132</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
600
+ <div class="fragment"><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; std::string str;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;RetBlockNode&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; {fun: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">getFun</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">getName</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(<a class="code" href="classSVF_1_1RetBlockNode.html#a436cd30be9fba449fee6bc6dcc18bb18">getCallSite</a>()) &lt;&lt; <span class="stringliteral">&quot;}&quot;</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt : <a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span> &lt;&lt; stmt-&gt;toString();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div><div class="ttc" id="classSVF_1_1RetBlockNode_html_a436cd30be9fba449fee6bc6dcc18bb18"><div class="ttname"><a href="classSVF_1_1RetBlockNode.html#a436cd30be9fba449fee6bc6dcc18bb18">SVF::RetBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00475">ICFGNode.h:475</a></div></div>
601
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
601
602
  <div class="ttc" id="classSVF_1_1ICFGNode_html_ae526280cca2d6cbb2868c80461bc16da"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ae526280cca2d6cbb2868c80461bc16da">SVF::ICFGNode::getFun</a></div><div class="ttdeci">virtual const SVFFunction * getFun() const</div><div class="ttdoc">Return the function of this ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00080">ICFGNode.h:80</a></div></div>
602
603
  <div class="ttc" id="classSVF_1_1SVFValue_html_adc15c1f7a77158142156fba7524e89c9"><div class="ttname"><a href="classSVF_1_1SVFValue.html#adc15c1f7a77158142156fba7524e89c9">SVF::SVFValue::getName</a></div><div class="ttdeci">const llvm::StringRef getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00231">SVFBasicTypes.h:231</a></div></div>
603
604
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
604
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00388">SVFUtil.cpp:388</a></div></div>
605
605
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
606
+ <div class="ttc" id="classSVF_1_1ICFGNode_html_a6c68f52dd90728073fb79141df9b0661"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">SVF::ICFGNode::getSVFStmts</a></div><div class="ttdeci">const SVFStmtList &amp; getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00121">ICFGNode.h:121</a></div></div>
607
+ <div class="ttc" id="classSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00047">SVFStatements.h:47</a></div></div>
606
608
  </div><!-- fragment -->
607
609
  </div>
608
610
  </div>
@@ -380,8 +380,8 @@ Additional Inherited Members</h2></td></tr>
380
380
 
381
381
  <p>Reimplemented from <a class="el" href="classSVF_1_1ICFGEdge.html#a7233609f62f278b738036e8de9bbbfc8">SVF::ICFGEdge</a>.</p>
382
382
 
383
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00156">156</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
384
- <div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::string str;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;RetCFGEdge &quot;</span> &lt;&lt; <span class="stringliteral">&quot; [&quot;</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t CallSite: &quot;</span> &lt;&lt; *<a class="code" href="classSVF_1_1RetCFGEdge.html#a9fd322ebb9aec43f9f49feb2b593c9b6">cs</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">return</span> rawstr.str();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
383
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00168">168</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
384
+ <div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; std::string str;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;RetCFGEdge &quot;</span> &lt;&lt; <span class="stringliteral">&quot; [ICFGNode&quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; rawstr &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() &lt;&lt; <span class="stringliteral">&quot; &lt;-- ICFGNode&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t CallSite: &quot;</span> &lt;&lt; *<a class="code" href="classSVF_1_1RetCFGEdge.html#a9fd322ebb9aec43f9f49feb2b593c9b6">cs</a> &lt;&lt; <span class="stringliteral">&quot;\t&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
385
385
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
386
386
  <div class="ttc" id="classSVF_1_1RetCFGEdge_html_a9fd322ebb9aec43f9f49feb2b593c9b6"><div class="ttname"><a href="classSVF_1_1RetCFGEdge.html#a9fd322ebb9aec43f9f49feb2b593c9b6">SVF::RetCFGEdge::cs</a></div><div class="ttdeci">const Instruction * cs</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00203">ICFGEdge.h:203</a></div></div>
387
387
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
@@ -586,13 +586,13 @@ Additional Inherited Members</h2></td></tr>
586
586
 
587
587
  <p>Reimplemented in <a class="el" href="classSVF_1_1TDJoinPE.html#accac29adba7ca4883ae161c223a1703d">SVF::TDJoinPE</a>.</p>
588
588
 
589
- <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00218">218</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
590
- <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; std::string str;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;RetPE: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;&lt;--&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">Options::PAGDotGraphShorter</a>) {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
589
+ <p class="definition">Definition at line <a class="el" href="SVFStatements_8cpp_source.html#l00222">222</a> of file <a class="el" href="SVFStatements_8cpp_source.html">SVFStatements.cpp</a>.</p>
590
+ <div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; std::string str;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;RetPE: [Var&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot; &lt;-- Var&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>() &lt;&lt; <span class="stringliteral">&quot;]\t&quot;</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">Options::ShowSVFIRValue</a>) {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; rawstr &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div><div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00116">SVFStatements.h:116</a></div></div>
591
591
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
592
- <div class="ttc" id="classSVF_1_1Options_html_a8eba08052f7af57b762155a58844480c"><div class="ttname"><a href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options::PAGDotGraphShorter</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGDotGraphShorter</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
593
592
  <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
594
593
  <div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00259">SVFStatements.h:259</a></div></div>
595
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00388">SVFUtil.cpp:388</a></div></div>
594
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
595
+ <div class="ttc" id="classSVF_1_1Options_html_a63c2ff1420867ea4ef0a94d28b3f0558"><div class="ttname"><a href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options::ShowSVFIRValue</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ShowSVFIRValue</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
596
596
  </div><!-- fragment -->
597
597
  </div>
598
598
  </div>