svf-tools 1.0.772 → 1.0.774

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 (421) hide show
  1. package/SVF-doxygen/html/html/AddressValue_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -9
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/BoundedZ3Expr_8cpp_source.html +10 -9
  6. package/SVF-doxygen/html/html/BoundedZ3Expr_8h_source.html +380 -380
  7. package/SVF-doxygen/html/html/CFBasicBlockG_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
  10. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +3 -3
  11. package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/html/ConsExeState_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/ConsG_8h_source.html +8 -8
  15. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
  16. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
  17. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/DDAClient_8h_source.html +2 -2
  19. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
  20. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
  21. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +9 -9
  22. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +4 -4
  25. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
  27. package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +2 -2
  28. package/SVF-doxygen/html/html/IntervalValue_8h_source.html +35 -35
  29. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -5
  31. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  32. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
  33. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
  34. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
  35. package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
  36. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +15 -15
  37. package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
  38. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  39. package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
  40. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +670 -671
  41. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +114 -107
  42. package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +19 -18
  43. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
  44. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +395 -350
  45. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +443 -433
  46. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
  47. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +12 -12
  48. package/SVF-doxygen/html/html/RelationSolver_8cpp_source.html +3 -3
  49. package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +6 -6
  50. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  51. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +10 -10
  52. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +324 -328
  55. package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +8 -8
  56. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
  57. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +288 -286
  58. package/SVF-doxygen/html/html/SVFIR_8h_source.html +667 -665
  59. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +7 -7
  60. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
  62. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +2 -2
  63. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  64. package/SVF-doxygen/html/html/SingleAbsValue_8h_source.html +3 -3
  65. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  66. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  69. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +2 -2
  70. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  71. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  72. package/SVF-doxygen/html/html/VFG_8cpp_source.html +15 -15
  73. package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
  74. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  75. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +284 -124
  76. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +108 -95
  77. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1AddressValue.html +1 -1
  80. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  81. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +59 -54
  82. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +30 -20
  83. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +52 -47
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +18 -9
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +64 -59
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +65 -60
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +60 -55
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +10 -0
  92. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +31 -26
  93. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +573 -379
  94. package/SVF-doxygen/html/html/classSVF_1_1BoundedZ3Expr-members.html +3 -3
  95. package/SVF-doxygen/html/html/classSVF_1_1BoundedZ3Expr.html +306 -305
  96. package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode.html +2 -2
  97. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +37 -32
  98. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +24 -14
  99. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +39 -34
  100. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +10 -0
  101. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +40 -35
  102. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +10 -0
  103. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +305 -305
  104. package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +2 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +7 -7
  106. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +8 -8
  107. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
  108. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +4 -4
  110. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +8 -8
  111. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +66 -61
  112. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +10 -0
  113. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +54 -49
  114. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +11 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +65 -60
  116. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +28 -14
  117. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
  118. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue-members.html +3 -3
  120. package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +28 -27
  121. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
  122. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  123. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +3 -3
  124. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +14 -14
  125. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  126. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -3
  127. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
  128. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
  129. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator-members.html +14 -13
  130. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +131 -99
  131. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +554 -554
  132. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral-members.html +2 -2
  133. package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +25 -25
  134. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +4 -4
  135. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias-members.html +41 -36
  136. package/SVF-doxygen/html/html/classSVF_1_1POCRAlias.html +10 -0
  137. package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid-members.html +41 -36
  138. package/SVF-doxygen/html/html/classSVF_1_1POCRHybrid.html +10 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
  140. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +15 -15
  141. package/SVF-doxygen/html/html/classSVF_1_1RelationSolver.html +3 -3
  142. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +10 -10
  143. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
  144. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +175 -174
  145. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +754 -720
  146. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +1 -1
  147. package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +308 -312
  148. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +29 -29
  149. package/SVF-doxygen/html/html/classSVF_1_1SVFIRReader.html +3 -3
  150. package/SVF-doxygen/html/html/classSVF_1_1SVFIRWriter.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +7 -7
  152. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +2 -2
  154. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +6 -6
  155. package/SVF-doxygen/html/html/classSVF_1_1SingleAbsValue-members.html +3 -3
  156. package/SVF-doxygen/html/html/classSVF_1_1SingleAbsValue.html +10 -10
  157. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +55 -50
  159. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +24 -14
  160. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
  161. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +55 -50
  164. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -2
  165. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +18 -18
  166. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +21 -14
  167. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +339 -49
  168. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +10 -10
  169. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +86 -86
  170. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  171. package/SVF-doxygen/html/html/functions_a.html +1 -1
  172. package/SVF-doxygen/html/html/functions_b.html +2 -1
  173. package/SVF-doxygen/html/html/functions_f.html +6 -6
  174. package/SVF-doxygen/html/html/functions_func.html +1 -1
  175. package/SVF-doxygen/html/html/functions_func_b.html +1 -1
  176. package/SVF-doxygen/html/html/functions_func_g.html +3 -3
  177. package/SVF-doxygen/html/html/functions_func_i.html +14 -11
  178. package/SVF-doxygen/html/html/functions_func_p.html +1 -1
  179. package/SVF-doxygen/html/html/functions_func_r.html +16 -3
  180. package/SVF-doxygen/html/html/functions_func_s.html +21 -20
  181. package/SVF-doxygen/html/html/functions_func_w.html +11 -2
  182. package/SVF-doxygen/html/html/functions_g.html +3 -3
  183. package/SVF-doxygen/html/html/functions_i.html +22 -19
  184. package/SVF-doxygen/html/html/functions_l.html +3 -3
  185. package/SVF-doxygen/html/html/functions_o.html +12 -12
  186. package/SVF-doxygen/html/html/functions_p.html +13 -13
  187. package/SVF-doxygen/html/html/functions_r.html +20 -11
  188. package/SVF-doxygen/html/html/functions_rela_b.html +3 -0
  189. package/SVF-doxygen/html/html/functions_s.html +23 -24
  190. package/SVF-doxygen/html/html/functions_t.html +5 -5
  191. package/SVF-doxygen/html/html/functions_v.html +6 -6
  192. package/SVF-doxygen/html/html/functions_w.html +17 -8
  193. package/SVF-doxygen/html/html/namespaceSVF.html +10 -10
  194. package/SVF-doxygen/html/html/search/all_1.js +1 -1
  195. package/SVF-doxygen/html/html/search/all_10.js +324 -324
  196. package/SVF-doxygen/html/html/search/all_11.js +217 -213
  197. package/SVF-doxygen/html/html/search/all_12.js +541 -541
  198. package/SVF-doxygen/html/html/search/all_13.js +190 -190
  199. package/SVF-doxygen/html/html/search/all_14.js +66 -66
  200. package/SVF-doxygen/html/html/search/all_15.js +170 -170
  201. package/SVF-doxygen/html/html/search/all_16.js +63 -60
  202. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  203. package/SVF-doxygen/html/html/search/all_18.js +1 -1
  204. package/SVF-doxygen/html/html/search/all_19.js +11 -11
  205. package/SVF-doxygen/html/html/search/all_1a.js +169 -169
  206. package/SVF-doxygen/html/html/search/all_2.js +3 -3
  207. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  208. package/SVF-doxygen/html/html/search/all_7.js +1 -1
  209. package/SVF-doxygen/html/html/search/all_9.js +535 -534
  210. package/SVF-doxygen/html/html/search/all_a.js +46 -46
  211. package/SVF-doxygen/html/html/search/all_b.js +26 -26
  212. package/SVF-doxygen/html/html/search/all_c.js +116 -116
  213. package/SVF-doxygen/html/html/search/all_d.js +196 -196
  214. package/SVF-doxygen/html/html/search/all_e.js +206 -206
  215. package/SVF-doxygen/html/html/search/all_f.js +116 -116
  216. package/SVF-doxygen/html/html/search/classes_0.js +26 -26
  217. package/SVF-doxygen/html/html/search/classes_1.js +9 -9
  218. package/SVF-doxygen/html/html/search/classes_10.js +73 -73
  219. package/SVF-doxygen/html/html/search/classes_11.js +15 -15
  220. package/SVF-doxygen/html/html/search/classes_12.js +2 -2
  221. package/SVF-doxygen/html/html/search/classes_13.js +10 -10
  222. package/SVF-doxygen/html/html/search/classes_14.js +14 -14
  223. package/SVF-doxygen/html/html/search/classes_15.js +1 -1
  224. package/SVF-doxygen/html/html/search/classes_2.js +76 -76
  225. package/SVF-doxygen/html/html/search/classes_3.js +35 -35
  226. package/SVF-doxygen/html/html/search/classes_4.js +8 -8
  227. package/SVF-doxygen/html/html/search/classes_5.js +28 -28
  228. package/SVF-doxygen/html/html/search/classes_6.js +98 -98
  229. package/SVF-doxygen/html/html/search/classes_7.js +33 -33
  230. package/SVF-doxygen/html/html/search/classes_8.js +56 -56
  231. package/SVF-doxygen/html/html/search/classes_9.js +1 -1
  232. package/SVF-doxygen/html/html/search/classes_a.js +12 -12
  233. package/SVF-doxygen/html/html/search/classes_b.js +29 -29
  234. package/SVF-doxygen/html/html/search/classes_c.js +6 -6
  235. package/SVF-doxygen/html/html/search/classes_d.js +18 -18
  236. package/SVF-doxygen/html/html/search/classes_e.js +36 -36
  237. package/SVF-doxygen/html/html/search/classes_f.js +25 -25
  238. package/SVF-doxygen/html/html/search/defines_0.js +3 -3
  239. package/SVF-doxygen/html/html/search/defines_1.js +2 -2
  240. package/SVF-doxygen/html/html/search/defines_2.js +30 -30
  241. package/SVF-doxygen/html/html/search/defines_3.js +20 -20
  242. package/SVF-doxygen/html/html/search/defines_4.js +3 -3
  243. package/SVF-doxygen/html/html/search/defines_5.js +4 -4
  244. package/SVF-doxygen/html/html/search/defines_6.js +2 -2
  245. package/SVF-doxygen/html/html/search/defines_7.js +5 -5
  246. package/SVF-doxygen/html/html/search/defines_8.js +11 -11
  247. package/SVF-doxygen/html/html/search/defines_9.js +9 -9
  248. package/SVF-doxygen/html/html/search/defines_a.js +2 -2
  249. package/SVF-doxygen/html/html/search/defines_b.js +1 -1
  250. package/SVF-doxygen/html/html/search/defines_c.js +3 -3
  251. package/SVF-doxygen/html/html/search/defines_d.js +2 -2
  252. package/SVF-doxygen/html/html/search/defines_e.js +7 -7
  253. package/SVF-doxygen/html/html/search/defines_f.js +3 -3
  254. package/SVF-doxygen/html/html/search/enums_0.js +3 -3
  255. package/SVF-doxygen/html/html/search/enums_1.js +2 -2
  256. package/SVF-doxygen/html/html/search/enums_10.js +1 -1
  257. package/SVF-doxygen/html/html/search/enums_11.js +1 -1
  258. package/SVF-doxygen/html/html/search/enums_2.js +8 -8
  259. package/SVF-doxygen/html/html/search/enums_3.js +1 -1
  260. package/SVF-doxygen/html/html/search/enums_4.js +3 -3
  261. package/SVF-doxygen/html/html/search/enums_5.js +1 -1
  262. package/SVF-doxygen/html/html/search/enums_6.js +2 -2
  263. package/SVF-doxygen/html/html/search/enums_7.js +2 -2
  264. package/SVF-doxygen/html/html/search/enums_8.js +4 -4
  265. package/SVF-doxygen/html/html/search/enums_9.js +1 -1
  266. package/SVF-doxygen/html/html/search/enums_a.js +1 -1
  267. package/SVF-doxygen/html/html/search/enums_b.js +7 -7
  268. package/SVF-doxygen/html/html/search/enums_c.js +1 -1
  269. package/SVF-doxygen/html/html/search/enums_d.js +4 -4
  270. package/SVF-doxygen/html/html/search/enums_e.js +2 -2
  271. package/SVF-doxygen/html/html/search/enums_f.js +4 -4
  272. package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
  273. package/SVF-doxygen/html/html/search/enumvalues_1.js +14 -14
  274. package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
  275. package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
  276. package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
  277. package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
  278. package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
  279. package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
  280. package/SVF-doxygen/html/html/search/enumvalues_2.js +36 -36
  281. package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
  282. package/SVF-doxygen/html/html/search/enumvalues_4.js +2 -2
  283. package/SVF-doxygen/html/html/search/enumvalues_5.js +47 -47
  284. package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
  285. package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
  286. package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
  287. package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
  288. package/SVF-doxygen/html/html/search/enumvalues_a.js +15 -15
  289. package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
  290. package/SVF-doxygen/html/html/search/enumvalues_c.js +5 -5
  291. package/SVF-doxygen/html/html/search/enumvalues_d.js +18 -18
  292. package/SVF-doxygen/html/html/search/enumvalues_e.js +9 -9
  293. package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
  294. package/SVF-doxygen/html/html/search/files_0.js +13 -13
  295. package/SVF-doxygen/html/html/search/files_1.js +7 -7
  296. package/SVF-doxygen/html/html/search/files_10.js +8 -8
  297. package/SVF-doxygen/html/html/search/files_11.js +8 -8
  298. package/SVF-doxygen/html/html/search/files_12.js +2 -2
  299. package/SVF-doxygen/html/html/search/files_2.js +49 -49
  300. package/SVF-doxygen/html/html/search/files_3.js +14 -14
  301. package/SVF-doxygen/html/html/search/files_4.js +5 -5
  302. package/SVF-doxygen/html/html/search/files_5.js +13 -13
  303. package/SVF-doxygen/html/html/search/files_6.js +9 -9
  304. package/SVF-doxygen/html/html/search/files_7.js +14 -14
  305. package/SVF-doxygen/html/html/search/files_8.js +13 -13
  306. package/SVF-doxygen/html/html/search/files_9.js +18 -18
  307. package/SVF-doxygen/html/html/search/files_a.js +3 -3
  308. package/SVF-doxygen/html/html/search/files_b.js +2 -2
  309. package/SVF-doxygen/html/html/search/files_c.js +20 -20
  310. package/SVF-doxygen/html/html/search/files_d.js +4 -4
  311. package/SVF-doxygen/html/html/search/files_e.js +62 -62
  312. package/SVF-doxygen/html/html/search/files_f.js +8 -8
  313. package/SVF-doxygen/html/html/search/functions_0.js +12 -12
  314. package/SVF-doxygen/html/html/search/functions_1.js +350 -350
  315. package/SVF-doxygen/html/html/search/functions_10.js +140 -140
  316. package/SVF-doxygen/html/html/search/functions_11.js +131 -127
  317. package/SVF-doxygen/html/html/search/functions_12.js +275 -275
  318. package/SVF-doxygen/html/html/search/functions_13.js +58 -58
  319. package/SVF-doxygen/html/html/search/functions_14.js +38 -38
  320. package/SVF-doxygen/html/html/search/functions_15.js +71 -71
  321. package/SVF-doxygen/html/html/search/functions_16.js +32 -29
  322. package/SVF-doxygen/html/html/search/functions_17.js +3 -3
  323. package/SVF-doxygen/html/html/search/functions_18.js +169 -169
  324. package/SVF-doxygen/html/html/search/functions_2.js +84 -84
  325. package/SVF-doxygen/html/html/search/functions_3.js +253 -253
  326. package/SVF-doxygen/html/html/search/functions_4.js +74 -74
  327. package/SVF-doxygen/html/html/search/functions_5.js +51 -51
  328. package/SVF-doxygen/html/html/search/functions_6.js +58 -58
  329. package/SVF-doxygen/html/html/search/functions_7.js +842 -842
  330. package/SVF-doxygen/html/html/search/functions_8.js +143 -143
  331. package/SVF-doxygen/html/html/search/functions_9.js +423 -422
  332. package/SVF-doxygen/html/html/search/functions_a.js +30 -30
  333. package/SVF-doxygen/html/html/search/functions_b.js +2 -2
  334. package/SVF-doxygen/html/html/search/functions_c.js +26 -26
  335. package/SVF-doxygen/html/html/search/functions_d.js +77 -77
  336. package/SVF-doxygen/html/html/search/functions_e.js +35 -35
  337. package/SVF-doxygen/html/html/search/functions_f.js +56 -56
  338. package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
  339. package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
  340. package/SVF-doxygen/html/html/search/related_0.js +2 -2
  341. package/SVF-doxygen/html/html/search/related_1.js +2 -1
  342. package/SVF-doxygen/html/html/search/related_2.js +2 -2
  343. package/SVF-doxygen/html/html/search/related_3.js +2 -2
  344. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  345. package/SVF-doxygen/html/html/search/related_5.js +1 -1
  346. package/SVF-doxygen/html/html/search/related_6.js +2 -2
  347. package/SVF-doxygen/html/html/search/related_7.js +4 -4
  348. package/SVF-doxygen/html/html/search/related_8.js +2 -2
  349. package/SVF-doxygen/html/html/search/related_9.js +4 -4
  350. package/SVF-doxygen/html/html/search/related_a.js +19 -19
  351. package/SVF-doxygen/html/html/search/related_b.js +4 -4
  352. package/SVF-doxygen/html/html/search/related_c.js +1 -1
  353. package/SVF-doxygen/html/html/search/related_d.js +11 -11
  354. package/SVF-doxygen/html/html/search/related_e.js +2 -2
  355. package/SVF-doxygen/html/html/search/related_f.js +2 -2
  356. package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
  357. package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
  358. package/SVF-doxygen/html/html/search/typedefs_10.js +62 -62
  359. package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
  360. package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
  361. package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
  362. package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
  363. package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
  364. package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
  365. package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
  366. package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
  367. package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
  368. package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
  369. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  370. package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
  371. package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
  372. package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
  373. package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
  374. package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
  375. package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
  376. package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
  377. package/SVF-doxygen/html/html/search/variables_0.js +147 -147
  378. package/SVF-doxygen/html/html/search/variables_1.js +75 -75
  379. package/SVF-doxygen/html/html/search/variables_10.js +97 -97
  380. package/SVF-doxygen/html/html/search/variables_11.js +46 -46
  381. package/SVF-doxygen/html/html/search/variables_12.js +92 -92
  382. package/SVF-doxygen/html/html/search/variables_13.js +75 -75
  383. package/SVF-doxygen/html/html/search/variables_14.js +14 -14
  384. package/SVF-doxygen/html/html/search/variables_15.js +48 -48
  385. package/SVF-doxygen/html/html/search/variables_16.js +9 -9
  386. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  387. package/SVF-doxygen/html/html/search/variables_18.js +2 -2
  388. package/SVF-doxygen/html/html/search/variables_2.js +34 -34
  389. package/SVF-doxygen/html/html/search/variables_3.js +141 -141
  390. package/SVF-doxygen/html/html/search/variables_4.js +55 -55
  391. package/SVF-doxygen/html/html/search/variables_5.js +38 -38
  392. package/SVF-doxygen/html/html/search/variables_6.js +66 -66
  393. package/SVF-doxygen/html/html/search/variables_7.js +33 -33
  394. package/SVF-doxygen/html/html/search/variables_8.js +7 -7
  395. package/SVF-doxygen/html/html/search/variables_9.js +77 -77
  396. package/SVF-doxygen/html/html/search/variables_a.js +4 -4
  397. package/SVF-doxygen/html/html/search/variables_b.js +10 -10
  398. package/SVF-doxygen/html/html/search/variables_c.js +45 -45
  399. package/SVF-doxygen/html/html/search/variables_d.js +56 -56
  400. package/SVF-doxygen/html/html/search/variables_e.js +123 -123
  401. package/SVF-doxygen/html/html/search/variables_f.js +30 -30
  402. package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  403. package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
  404. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +5 -5
  405. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  406. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  407. package/package.json +1 -1
  408. package/svf/include/AbstractExecution/BoundedZ3Expr.h +4 -5
  409. package/svf/include/AbstractExecution/IntervalValue.h +19 -19
  410. package/svf/include/AbstractExecution/NumericLiteral.h +2 -2
  411. package/svf/include/MemoryModel/PointerAnalysisImpl.h +5 -0
  412. package/svf/include/SVFIR/SVFIR.h +2 -1
  413. package/svf/include/Util/NodeIDAllocator.h +6 -0
  414. package/svf/include/WPA/VersionedFlowSensitive.h +8 -0
  415. package/svf/lib/AbstractExecution/BoundedZ3Expr.cpp +5 -5
  416. package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +0 -4
  417. package/svf/lib/MemoryModel/PointerAnalysisImpl.cpp +101 -66
  418. package/svf/lib/SVFIR/SVFIR.cpp +5 -3
  419. package/svf/lib/Util/NodeIDAllocator.cpp +2 -4
  420. package/svf/lib/WPA/Andersen.cpp +1 -1
  421. package/svf/lib/WPA/VersionedFlowSensitive.cpp +148 -0
@@ -114,785 +114,787 @@ $(function() {
114
114
  <div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac7f1349df526a5a50741e9303f3bd446"> 48</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFIR.html#ac7f1349df526a5a50741e9303f3bd446">TypeBasedHeapCloning</a>;</div>
115
115
  <div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac6d7207b2c449f2aa8129697485d8fd6"> 49</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFIRWriter.html">SVFIRWriter</a>;</div>
116
116
  <div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a96821c016c81ee0600ef62fd28298292"> 50</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFIRReader.html">SVFIRReader</a>;</div>
117
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
118
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">public</span>:</div>
119
- <div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e"> 53</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const CallICFGNode*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a>;</div>
120
- <div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d"> 54</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const CallICFGNode*,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">CallSiteToFunPtrMap</a>;</div>
121
- <div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9"> 55</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID,CallSiteSet&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9">FunPtrToCallSitesMap</a>;</div>
122
- <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940"> 56</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID,NodeBS&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">MemObjToFieldsMap</a>;</div>
123
- <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9"> 57</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const SVFStmt*&gt; <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFStmtList</a>;</div>
124
- <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b"> 58</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const SVFVar*&gt; <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFVarList</a>;</div>
125
- <div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b"> 59</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFVar*,PhiStmt*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b">PHINodeMap</a>;</div>
126
- <div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63"> 60</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*,SVFVarList&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">FunToArgsListMap</a>;</div>
127
- <div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca"> 61</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*,SVFVarList&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">CSToArgsListMap</a>;</div>
128
- <div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681"> 62</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const RetICFGNode*,const SVFVar*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">CSToRetMap</a>;</div>
129
- <div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3"> 63</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*,const SVFVar*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">FunToRetMap</a>;</div>
130
- <div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac918466df08a2ab30472f3e57935f005"> 64</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*,SVFStmtSet&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ac918466df08a2ab30472f3e57935f005">FunToPAGEdgeSetMap</a>;</div>
131
- <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0"> 65</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const ICFGNode*,SVFStmtList&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">ICFGNode2SVFStmtsMap</a>;</div>
132
- <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a654236d64abc2ca95982da7b4408b52d"> 66</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a654236d64abc2ca95982da7b4408b52d">NodeToNodeMap</a>;</div>
133
- <div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde"> 67</a></span>&#160; <span class="keyword">typedef</span> std::pair&lt;NodeID, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde">NodeOffset</a>;</div>
134
- <div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a742bfce4295566ec054f8d5e5f7440d8"> 68</a></span>&#160; <span class="keyword">typedef</span> std::pair&lt;NodeID, AccessPath&gt; <a class="code" href="classSVF_1_1SVFIR.html#a742bfce4295566ec054f8d5e5f7440d8">NodeAccessPath</a>;</div>
135
- <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d"> 69</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeOffset,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">NodeOffsetMap</a>;</div>
136
- <div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a77b75d80a1af46aed3b6130d206ad236"> 70</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeAccessPath,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a77b75d80a1af46aed3b6130d206ad236">NodeAccessPathMap</a>;</div>
137
- <div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5"> 71</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFValue*, NodeAccessPathMap&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5">GepValueVarMap</a>;</div>
138
- <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674"> 72</a></span>&#160; <span class="keyword">typedef</span> std::pair&lt;const SVFType*, std::vector&lt;AccessPath&gt;&gt; <a class="code" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVFTypeLocSetsPair</a>;</div>
139
- <div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150"> 73</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, SVFTypeLocSetsPair&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150">TypeLocSetsMap</a>;</div>
140
- <div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ab715a8e83a4ec45fb86298fef3eda95a"> 74</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodePair,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ab715a8e83a4ec45fb86298fef3eda95a">NodePairSetMap</a>;</div>
141
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
142
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">private</span>:</div>
143
- <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7"> 79</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">ICFGNode2SVFStmtsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>; </div>
144
- <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2"> 80</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">ICFGNode2SVFStmtsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>; </div>
145
- <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67"> 81</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5">GepValueVarMap</a> <a class="code" href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67">GepValObjMap</a>; </div>
146
- <div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288"> 82</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150">TypeLocSetsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">typeLocSetsMap</a>; </div>
147
- <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453"> 83</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">NodeOffsetMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">GepObjVarMap</a>; </div>
148
- <div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252"> 84</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">MemObjToFieldsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>; </div>
149
- <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323"> 85</a></span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVFStmtSet</a> <a class="code" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">globSVFStmtSet</a>; </div>
150
- <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9"> 86</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b">PHINodeMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">phiNodeMap</a>; </div>
151
- <div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903"> 87</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">FunToArgsListMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>; </div>
152
- <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2"> 88</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">CSToArgsListMap</a> <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>; </div>
153
- <div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1"> 89</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">CSToRetMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>; </div>
154
- <div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5"> 90</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">FunToRetMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>; </div>
155
- <div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc"> 91</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">CallSiteToFunPtrMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>; </div>
156
- <div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5"> 92</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9">FunPtrToCallSitesMap</a> <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>; </div>
157
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> <a class="code" href="classSVF_1_1SVFIR.html#abd9f622b55839d6796ca2576f2323498">candidatePointers</a>;</div>
158
- <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9"> 96</a></span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a>; </div>
159
- <div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51"> 97</a></span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>; <span class="comment">// ICFG</span></div>
160
- <div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b"> 98</a></span>&#160; <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>* <a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a>; <span class="comment">// class hierarchy graph</span></div>
161
- <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450"> 99</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a> <a class="code" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">callSiteSet</a>; </div>
162
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
163
- <div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e"> 101</a></span>&#160; <span class="keyword">static</span> std::unique_ptr&lt;SVFIR&gt; <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a>; </div>
164
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
165
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#abf511f82cdbf7a6d9b6da167aee57636">SVFIR</a>(<span class="keywordtype">bool</span> buildFromFile);</div>
166
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
167
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a6834558be6987c91a3732154482c9567">destroy</a>();</div>
168
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
169
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">public</span>:</div>
170
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
171
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
172
- <div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362"> 113</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">getPAG</a>(<span class="keywordtype">bool</span> buildFromFile = <span class="keyword">false</span>)</div>
173
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div>
174
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a> == <span class="keyword">nullptr</span>)</div>
175
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
176
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a> = std::unique_ptr&lt;SVFIR&gt;(<span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR.html#abf511f82cdbf7a6d9b6da167aee57636">SVFIR</a>(buildFromFile));</div>
177
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
178
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a>.get();</div>
179
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
180
- <div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a007c86e5d2d541d08815547a5492731e"> 121</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a007c86e5d2d541d08815547a5492731e">releaseSVFIR</a>()</div>
181
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div>
182
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a> = <span class="keyword">nullptr</span>;</div>
183
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
184
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">MemObjToFieldsMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">getMemToFieldsMap</a>()</div>
185
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
186
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>;</div>
187
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
188
- <div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e"> 132</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">NodeOffsetMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">getGepObjNodeMap</a>()</div>
189
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div>
190
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">GepObjVarMap</a>;</div>
191
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
192
- <div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484"> 137</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">getAllValidPtrs</a>()</div>
193
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
194
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#abd9f622b55839d6796ca2576f2323498">candidatePointers</a>;</div>
195
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
196
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#af6a2c401d5c7582a4a958b1fe40838e5">initialiseCandidatePointers</a>();</div>
197
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
198
- <div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3d62b2a06fe1ec531cbde12131fa31df"> 145</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFIR.html#a3d62b2a06fe1ec531cbde12131fa31df">~SVFIR</a>()</div>
199
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
200
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a6834558be6987c91a3732154482c9567">destroy</a>();</div>
201
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
202
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
203
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a2375f49c77f2285a6316e7540b051a0f">handleBlackHole</a>(<span class="keywordtype">bool</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>);</div>
204
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a52bea4a99022b036104751cafa9152b1">setModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* mod)</div>
205
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div>
206
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a> = mod;</div>
207
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
208
- <div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701"> 159</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>()</div>
209
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; {</div>
210
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; assert(<a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a> &amp;&amp; <span class="stringliteral">&quot;empty SVFModule! Build SVF IR first!&quot;</span>);</div>
211
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a>;</div>
212
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
213
- <div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a756ae2b40ec29f2f92c95919f615e5ec"> 165</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a756ae2b40ec29f2f92c95919f615e5ec">setICFG</a>(<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* i)</div>
214
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
215
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a> = i;</div>
216
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
217
- <div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11"> 169</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* <a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()<span class="keyword"> const</span></div>
218
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"> </span>{</div>
219
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; assert(<a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>&gt;0 &amp;&amp; <span class="stringliteral">&quot;empty ICFG! Build SVF IR first!&quot;</span>);</div>
220
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>;</div>
221
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
222
- <div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa14f6cde41bcac27ce2f66c6b33ee410"> 175</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#aa14f6cde41bcac27ce2f66c6b33ee410">setCHG</a>(<a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>* c)</div>
223
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div>
224
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a> = c;</div>
225
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
226
- <div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a7e8059ebd9bdeed8891fb231d148316d"> 179</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>* <a class="code" href="classSVF_1_1SVFIR.html#a7e8059ebd9bdeed8891fb231d148316d">getCHG</a>()</div>
227
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
228
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; assert(<a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a> &amp;&amp; <span class="stringliteral">&quot;empty ICFG! Build SVF IR first!&quot;</span>);</div>
229
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a>;</div>
230
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
231
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
232
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
233
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
234
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1">KindToSVFStmtSetMap</a>[kind];</div>
235
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
236
- <div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576"> 192</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576">getPTASVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
237
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div>
238
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d">KindToPTASVFStmtSetMap</a>[kind];</div>
239
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div>
240
- <div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654"> 197</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654">hasSVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)<span class="keyword"> const</span></div>
241
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword"> </span>{</div>
242
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>.find(inst) != <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>.end();</div>
243
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
244
- <div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0"> 201</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0">hasPTASVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)<span class="keyword"> const</span></div>
245
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keyword"> </span>{</div>
246
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>.find(inst) !=</div>
247
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>.end();</div>
248
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
249
- <div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b"> 207</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFStmtList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">getSVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)</div>
250
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
251
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>[inst];</div>
252
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
253
- <div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988"> 212</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFStmtList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">getPTASVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)</div>
254
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; {</div>
255
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>[inst];</div>
256
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
257
- <div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6a84868ab4e2845e884fba08d82b40f6"> 217</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a6a84868ab4e2845e884fba08d82b40f6">addToSVFStmtList</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge)</div>
258
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div>
259
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(inst);</div>
260
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>[inst].push_back(edge);</div>
261
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>())</div>
262
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>[inst].push_back(edge);</div>
263
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
264
- <div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a9d0e3d8483302543faa8d1556d2c567d"> 225</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a9d0e3d8483302543faa8d1556d2c567d">addToTypeLocSetsMap</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> argId, <a class="code" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVFTypeLocSetsPair</a>&amp; locSets)</div>
265
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div>
266
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">typeLocSetsMap</a>[argId]=locSets;</div>
267
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div>
268
- <div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15"> 230</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVFTypeLocSetsPair</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">getTypeLocSetsMap</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> argId)</div>
269
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div>
270
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">typeLocSetsMap</a>[argId];</div>
271
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
272
- <div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a5c5adab1f68520a304fbf70ca40f7687"> 235</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVFStmtSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a5c5adab1f68520a304fbf70ca40f7687">getGlobalSVFStmtSet</a>()</div>
273
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
274
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">globSVFStmtSet</a>;</div>
275
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
276
- <div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb"> 240</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>()<span class="keyword"> const</span></div>
277
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="keyword"> </span>{</div>
278
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">callSiteSet</a>;</div>
279
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
280
- <div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff"> 245</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">isPhiNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node)<span class="keyword"> const</span></div>
281
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keyword"> </span>{</div>
282
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">phiNodeMap</a>.find(node) != <a class="code" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">phiNodeMap</a>.end();</div>
283
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
284
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; </div>
285
- <div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410"> 251</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">hasFunArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
286
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="keyword"> </span>{</div>
287
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.find(func) != <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.end());</div>
288
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div>
289
- <div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a615c056c876b59d1fd174a2ac9ade27c"> 256</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">FunToArgsListMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a615c056c876b59d1fd174a2ac9ade27c">getFunArgsMap</a>()</div>
290
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div>
291
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>;</div>
292
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div>
293
- <div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a"> 261</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFVarList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">getFunArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
294
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="keyword"> </span>{</div>
295
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; FunToArgsListMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.find(func);</div>
296
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this function doesn&#39;t have arguments&quot;</span>);</div>
297
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
298
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div>
299
- <div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138"> 268</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">hasCallSiteArgsMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
300
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="keyword"> </span>{</div>
301
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.find(cs) != <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.end());</div>
302
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
303
- <div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7"> 273</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">CSToArgsListMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>()</div>
304
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div>
305
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>;</div>
306
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
307
- <div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac"> 278</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFVarList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">getCallSiteArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
308
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="keyword"> </span>{</div>
309
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; CSToArgsListMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.find(cs);</div>
310
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this call site doesn&#39;t have arguments&quot;</span>);</div>
311
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
312
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
313
- <div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22"> 285</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">CSToRetMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">getCallSiteRets</a>()</div>
314
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; {</div>
315
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>;</div>
316
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
317
- <div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6"> 290</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* cs)<span class="keyword"> const</span></div>
318
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="keyword"> </span>{</div>
319
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; CSToRetMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.find(cs);</div>
320
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this call site doesn&#39;t have return&quot;</span>);</div>
321
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
322
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div>
323
- <div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f"> 296</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">callsiteHasRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* cs)<span class="keyword"> const</span></div>
324
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="keyword"> </span>{</div>
325
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.find(cs) != <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.end();</div>
326
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div>
327
- <div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abd1bb12776dc9a17863a52ce2cd31958"> 301</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">FunToRetMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#abd1bb12776dc9a17863a52ce2cd31958">getFunRets</a>()</div>
328
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div>
329
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>;</div>
330
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
331
- <div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f"> 306</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
332
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="keyword"> </span>{</div>
333
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; FunToRetMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.find(func);</div>
334
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this function doesn&#39;t have return&quot;</span>);</div>
335
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
336
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
337
- <div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046"> 312</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046">funHasRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
338
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="keyword"> </span>{</div>
339
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.find(func) != <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.end();</div>
340
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div>
341
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div>
342
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div>
343
- <div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9"> 320</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>()<span class="keyword"> const</span></div>
344
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="keyword"> </span>{</div>
345
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67">GepValObjMap</a>.size();</div>
346
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
347
- <div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea"> 324</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>()<span class="keyword"> const</span></div>
348
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="keyword"> </span>{</div>
349
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">GepObjVarMap</a>.size();</div>
350
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
351
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
352
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ad0977d55d947bdccd98d61c66d3f0cc7">getGepValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* curInst, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base,</div>
353
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap) <span class="keyword">const</span>;</div>
354
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; </div>
355
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; </div>
356
- <div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0"> 336</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">CallSiteToFunPtrMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>()<span class="keyword"> const</span></div>
357
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="keyword"> </span>{</div>
358
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>;</div>
359
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
360
- <div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6"> 340</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
361
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keyword"> </span>{</div>
362
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; CallSiteToFunPtrMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.find(cs);</div>
363
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; assert(it!=<a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;indirect callsite not have a function pointer?&quot;</span>);</div>
364
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
365
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div>
366
- <div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8"> 346</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">getIndCallSites</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr)<span class="keyword"> const</span></div>
367
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="keyword"> </span>{</div>
368
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; FunPtrToCallSitesMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.find(funPtr);</div>
369
- <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; assert(it!=<a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;function pointer not used at any indirect callsite?&quot;</span>);</div>
370
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
371
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div>
372
- <div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23"> 352</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
373
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keyword"> </span>{</div>
374
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.find(cs) != <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.end());</div>
375
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div>
376
- <div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97"> 356</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">isFunPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
377
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="keyword"> </span>{</div>
378
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.find(<span class="keywordtype">id</span>) != <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.end());</div>
379
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div>
380
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div>
381
- <div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255"> 363</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255">getIntraPAGEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
382
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; {</div>
383
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255">getIntraPAGEdge</a>(<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src), <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), kind);</div>
384
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div>
385
- <div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac1dbd64071f9822b0404f4ed9c8bd2cd"> 367</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#ac1dbd64071f9822b0404f4ed9c8bd2cd">getIntraPAGEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
386
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; {</div>
387
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src, dst, kind, <span class="keyword">false</span>);</div>
388
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; edgeSet = <a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(kind);</div>
389
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; SVFStmt::SVFStmtSetTy::const_iterator it = edgeSet.find(&amp;edge);</div>
390
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; assert(it != edgeSet.end() &amp;&amp; <span class="stringliteral">&quot;can not find pag edge&quot;</span>);</div>
391
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> (*it);</div>
392
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div>
393
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div>
394
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; </div>
395
- <div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1"> 381</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
396
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="keyword"> </span>{</div>
397
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div>
398
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(node))</div>
399
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div>
400
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">else</span></div>
401
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
402
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div>
403
- <div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a25b86c16d11b4d50ccc28ead525687ae"> 389</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>*<a class="code" href="classSVF_1_1SVFIR.html#a25b86c16d11b4d50ccc28ead525687ae">getObject</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* node)<span class="keyword"> const</span></div>
404
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keyword"> </span>{</div>
405
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
406
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div>
407
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
408
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">getGepObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>&amp; ap);</div>
409
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">getGepObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>&amp; ap) ;</div>
410
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; </div>
411
- <div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354"> 401</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj)<span class="keyword"> const</span></div>
412
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="keyword"> </span>{</div>
413
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">return</span> obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div>
414
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div>
415
- <div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac9f860028c8cbd364720888084701628"> 405</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ac9f860028c8cbd364720888084701628">getFIObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
416
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="keyword"> </span>{</div>
417
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<span class="keywordtype">id</span>);</div>
418
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
419
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; </div>
420
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
421
- <div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6a71d2716530607d66d9e9035199d997"> 413</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a6a71d2716530607d66d9e9035199d997">isBlkPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
422
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="keyword"> </span>{</div>
423
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">SymbolTableInfo::isBlkPtr</a>(<span class="keywordtype">id</span>));</div>
424
- <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div>
425
- <div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30"> 417</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30">isNullPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
426
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="keyword"> </span>{</div>
427
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">SymbolTableInfo::isNullPtr</a>(<span class="keywordtype">id</span>));</div>
428
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
429
- <div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001"> 421</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">isBlkObjOrConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
430
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="keyword"> </span>{</div>
431
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad">isBlkObj</a>(<span class="keywordtype">id</span>) || <a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(<span class="keywordtype">id</span>));</div>
432
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div>
433
- <div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad"> 425</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad">isBlkObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
434
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="keyword"> </span>{</div>
435
- <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">SymbolTableInfo::isBlkObj</a>(<span class="keywordtype">id</span>);</div>
436
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div>
437
- <div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156"> 429</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
438
- <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keyword"> </span>{</div>
439
- <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div>
440
- <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;not an object node?&quot;</span>);</div>
441
- <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SymbolTableInfo::isConstantObj</a>(<span class="keywordtype">id</span>) ||</div>
442
- <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>();</div>
443
- <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div>
444
- <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>) <span class="keyword">const</span>;</div>
445
- <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; </div>
446
- <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; </div>
447
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">getBaseValVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId);</div>
448
- <div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08"> 444</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
449
- <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keyword"> </span>{</div>
450
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<span class="keywordtype">id</span>)-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div>
451
- <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div>
452
- <div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749"> 448</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
453
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="keyword"> </span>{</div>
454
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a>-&gt;getGNode(<span class="keywordtype">id</span>);</div>
455
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; assert(SVFUtil::isa&lt;ObjVar&gt;(node) &amp;&amp; <span class="stringliteral">&quot;need an object node&quot;</span>);</div>
456
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* obj = SVFUtil::cast&lt;ObjVar&gt;(node);</div>
457
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">return</span> obj-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
458
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div>
459
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; </div>
460
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; </div>
461
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj);</div>
462
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>);</div>
463
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">getFieldsAfterCollapse</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>);</div>
464
- <div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0"> 463</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>()</div>
465
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; {</div>
466
- <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(<a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-&gt;allocateValueId());</div>
467
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
468
- <div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7"> 467</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7">addDummyObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
469
- <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; {</div>
470
- <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7">addDummyObjNode</a>(<a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-&gt;allocateObjectId(), <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
471
- <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div>
472
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; </div>
473
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#addc84dae75be8e8b9deccdb4360736d3">isValidPointer</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId) <span class="keyword">const</span>;</div>
474
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; </div>
475
- <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node);</div>
476
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; </div>
477
- <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a236b4fefd16e9c793c5bd6d576290841">print</a>();</div>
478
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; </div>
479
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="keyword">private</span>:</div>
480
- <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; </div>
481
- <div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523"> 484</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523">addToStmt2TypeMap</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge)</div>
482
- <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div>
483
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1">KindToSVFStmtSetMap</a>[edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>()].insert(edge).second;</div>
484
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; (void)added; <span class="comment">// Suppress warning of unused variable under release build</span></div>
485
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; assert(added &amp;&amp; <span class="stringliteral">&quot;duplicated edge, not added!!!&quot;</span>);</div>
486
- <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>())</div>
487
- <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {</div>
488
- <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>++;</div>
489
- <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d">KindToPTASVFStmtSetMap</a>[edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>()].insert(edge);</div>
490
- <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div>
491
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div>
492
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div>
493
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#ac27b9eedd489f13175c010a32203abae">addFunArgs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* arg)</div>
494
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; {</div>
495
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* funEntryBlockNode = <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(fun);</div>
496
- <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; funEntryBlockNode-&gt;<a class="code" href="classSVF_1_1FunEntryICFGNode.html#aeb9dfc9dfb0aad871cefcf80da2d881d">addFormalParms</a>(arg);</div>
497
- <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>[fun].push_back(arg);</div>
498
- <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div>
499
- <div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a53774463f34bb8b528b179b72b48fd69"> 505</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a53774463f34bb8b528b179b72b48fd69">addFunRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* ret)</div>
500
- <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; {</div>
501
- <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* funExitBlockNode = <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">getFunExitICFGNode</a>(fun);</div>
502
- <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; funExitBlockNode-&gt;<a class="code" href="classSVF_1_1FunExitICFGNode.html#a51bdfbda3a351daa7ba898e2f88bb067">addFormalRet</a>(ret);</div>
503
- <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>[fun] = ret;</div>
504
- <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div>
505
- <div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a69963e4030433103e84e57fc015871d8"> 512</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a69963e4030433103e84e57fc015871d8">addCallSiteArgs</a>(<a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* arg)</div>
506
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; {</div>
507
- <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; callBlockNode-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#ab389873c50b952b67aeafe7204864d59">addActualParms</a>(arg);</div>
508
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>[callBlockNode].push_back(arg);</div>
509
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }</div>
510
- <div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a72efebdfe007ec8c515967ede76b6ce0"> 518</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a72efebdfe007ec8c515967ede76b6ce0">addCallSiteRets</a>(<a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* arg)</div>
511
- <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; {</div>
512
- <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; retBlockNode-&gt;<a class="code" href="classSVF_1_1RetICFGNode.html#ac719aea72183e187f71471e1e58c9e54">addActualRet</a>(arg);</div>
513
- <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>[retBlockNode]= arg;</div>
514
- <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }</div>
515
- <div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af4a5fd9ecddb1447207335917adccd68"> 524</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#af4a5fd9ecddb1447207335917adccd68">addIndirectCallsites</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr)</div>
516
- <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; {</div>
517
- <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.emplace(cs, funPtr).second;</div>
518
- <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; (void) added;</div>
519
- <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>[funPtr].insert(cs);</div>
520
- <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; assert(added &amp;&amp; <span class="stringliteral">&quot;adding the same indirect callsite twice?&quot;</span>);</div>
521
- <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div>
522
- <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
523
- <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; </div>
524
- <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">addValNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
525
- <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; {</div>
526
- <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(val,i);</div>
527
- <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">addValNode</a>(val, node, i);</div>
528
- <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; }</div>
529
- <div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6"> 541</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
530
- <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; {</div>
531
- <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1IRGraph.html#ad5a06a57d64c54ec6e7e92b7e0acfad8">getMemObj</a>(val);</div>
532
- <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; assert(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>() == i &amp;&amp; <span class="stringliteral">&quot;not same object id?&quot;</span>);</div>
533
- <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">addFIObjNode</a>(mem);</div>
534
- <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
535
- <div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09"> 548</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09">addRetNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
536
- <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; {</div>
537
- <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetPN.html">RetPN</a>(val,i);</div>
538
- <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09">addRetNode</a>(val, node, i);</div>
539
- <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div>
540
- <div class="line"><a name="l00554"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6ade5bf3edc7b6c3faafc3e5ff3d0538"> 554</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a6ade5bf3edc7b6c3faafc3e5ff3d0538">addVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
541
- <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; {</div>
542
- <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VarArgPN.html">VarArgPN</a>(val,i);</div>
543
- <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node,i);</div>
544
- <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div>
545
- <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; </div>
546
- <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a555e6d530c37b23e1e43925aa188385f">addGepValNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* curInst,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
547
- <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#aba63798e93490f257574c24d3c03507d">addGepObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>&amp; apOffset);</div>
548
- <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">addFIObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj);</div>
549
- <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; </div>
550
- <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; </div>
551
- <div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6b1bb039f068ff2ab486214354df4684"> 570</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a6b1bb039f068ff2ab486214354df4684">addDummyValNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
552
- <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; {</div>
553
- <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">addValNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyValVar.html">DummyValVar</a>(i), i);</div>
554
- <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div>
555
- <div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a35af1a212273ae32651a88b1ed032700"> 574</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a35af1a212273ae32651a88b1ed032700">addDummyObjNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
556
- <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div>
557
- <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60">addDummyMemObj</a>(i, <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
558
- <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(i,mem), i);</div>
559
- <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div>
560
- <div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60"> 579</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60">addDummyMemObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
561
- <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; {</div>
562
- <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#ae39b1a2330b157312727a560fddbd0dc">createDummyObj</a>(i,<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
563
- <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; }</div>
564
- <div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2b532a5db0197c579b512fbcdb4d6220"> 583</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a2b532a5db0197c579b512fbcdb4d6220">addBlackholeObjNode</a>()</div>
565
- <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div>
566
- <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(</div>
567
- <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(<a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>(), <a class="code" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">getBlackHoleObj</a>()),</div>
568
- <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>());</div>
569
- <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div>
570
- <div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aff3f3ff198e7511576484dfda7bf051b"> 589</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#aff3f3ff198e7511576484dfda7bf051b">addConstantObjNode</a>()</div>
571
- <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div>
572
- <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(<span class="keyword">nullptr</span>,</div>
573
- <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(<a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>(), <a class="code" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">getConstantObj</a>()),</div>
574
- <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>());</div>
575
- <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; }</div>
576
- <div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2b1de62f88588b068d4eed125049ed8d"> 595</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a2b1de62f88588b068d4eed125049ed8d">addBlackholePtrNode</a>()</div>
577
- <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; {</div>
578
- <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(<a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>());</div>
579
- <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div>
580
- <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; </div>
581
- <div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af298651d6ef2030ca13ae6a9db622eb4"> 602</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#af298651d6ef2030ca13ae6a9db622eb4">addValNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
582
- <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; {</div>
583
- <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; assert(<a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(i) == <span class="keyword">false</span> &amp;&amp;</div>
584
- <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="stringliteral">&quot;This NodeID clashes here. Please check NodeIDAllocator. Switch &quot;</span></div>
585
- <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="stringliteral">&quot;Strategy::DBUG to SEQ or DENSE&quot;</span>);</div>
586
- <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node, i);</div>
587
- <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; }</div>
588
- <div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af9b5c67ca0d91ed20d6ee2d44c1acbd1"> 610</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#af9b5c67ca0d91ed20d6ee2d44c1acbd1">addObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
589
- <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; {</div>
590
- <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; assert(<a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(i) == <span class="keyword">false</span> &amp;&amp;</div>
591
- <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="stringliteral">&quot;This NodeID clashes here. Please check NodeIDAllocator. Switch &quot;</span></div>
592
- <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="stringliteral">&quot;Strategy::DBUG to SEQ or DENSE&quot;</span>);</div>
593
- <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node, i);</div>
594
- <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div>
595
- <div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a1f63adcd679596996ee2eabf0179462f"> 618</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a1f63adcd679596996ee2eabf0179462f">addRetNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
596
- <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; {</div>
597
- <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node,i);</div>
598
- <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div>
599
- <div class="line"><a name="l00623"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a078c01295f47bf12f1a2b8abfab8b28d"> 623</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a078c01295f47bf12f1a2b8abfab8b28d">addVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
600
- <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; {</div>
601
- <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node,i);</div>
602
- <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div>
603
- <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; </div>
604
- <div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae3d9b4acb63a7dbe316e87bad4e3987a"> 629</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#ae3d9b4acb63a7dbe316e87bad4e3987a">addGlobalPAGEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge)</div>
605
- <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; {</div>
606
- <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">globSVFStmtSet</a>.insert(edge);</div>
607
- <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div>
608
- <div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a98341496bf470d23384f3d86a58591db"> 634</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a98341496bf470d23384f3d86a58591db">addCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* call)</div>
609
- <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; {</div>
610
- <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">callSiteSet</a>.insert(call);</div>
611
- <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div>
612
- <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; </div>
613
- <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a8436a7eede7b5ff5d9b80a0c951ea729">addAddrStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div>
614
- <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#aa54b93ebf36944b548aaa74dbf8a144f">addCopyStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div>
615
- <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#abb272e6fff36a29fe84c9d8695f7d630">addPhiStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> res, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> opnd, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* pred);</div>
616
- <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#accbff738e77fd2256d4a6629c48d63f4">addSelectStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> res, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond);</div>
617
- <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a7eb14738f0cf08cc8b5c623c953db4ba">addCmpStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> predict);</div>
618
- <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a955a2f93cf9eef857e40f19bc24edb2f">addBinaryOPStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst,</div>
619
- <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode);</div>
620
- <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a8abc436992aa3b6b636084ff5f9a8ef2">addUnaryOPStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode);</div>
621
- <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#ae61030da4a84b5c9c47903804af9d107">addBranchStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> br, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond,</div>
622
- <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">BranchStmt::SuccAndCondPairVec</a>&amp; succs);</div>
623
- <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a3837804b2622baf7e6991aa993286e9e">addLoadStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div>
624
- <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#af9804d78e4158d3c8961e1f84bbef91e">addStoreStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* val);</div>
625
- <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a574bd5c9f11681c70db29c25f25a4cba">addCallPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
626
- <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entry);</div>
627
- <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a1791652f578b6ab8aacb4d6e7c7fd05f">addRetPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
628
- <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* exit);</div>
629
- <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a1f77275b24345164f30d519238121f92">addGepStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap,</div>
630
- <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordtype">bool</span> constGep);</div>
631
- <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a3abcab8c3155c5c5d4a04f05ea207260">addNormalGepStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap);</div>
632
- <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a0814a6a71c4a8f08253bf16ad1ba5dc5">addVariantGepStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap);</div>
633
- <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a916d893cb852bbbd933e3e5349d5154b">addThreadForkPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
634
- <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entry);</div>
635
- <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a64d14e7ee334c85b02414d68877faab2">addThreadJoinPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
636
- <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* exit);</div>
637
- <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; </div>
638
- <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a33df5f5d9b7de3846cf973135b04f513">addBlackHoleAddrStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node);</div>
639
- <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;};</div>
640
- <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; </div>
641
- <div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ac47d39fb505e8ed8d2c6b6b318be5f4d"> 687</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> <a class="code" href="namespaceSVF.html#ac47d39fb505e8ed8d2c6b6b318be5f4d">PAG</a>;</div>
642
- <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; </div>
643
- <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;} <span class="comment">// End namespace SVF</span></div>
644
- <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; </div>
117
+ <div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abab304aade6559906d047cdc992acb7f"> 51</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BVDataPTAImpl.html">BVDataPTAImpl</a>;</div>
118
+ <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
119
+ <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">public</span>:</div>
120
+ <div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e"> 54</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const CallICFGNode*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a>;</div>
121
+ <div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d"> 55</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap&lt;const CallICFGNode*,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">CallSiteToFunPtrMap</a>;</div>
122
+ <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9"> 56</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID,CallSiteSet&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9">FunPtrToCallSitesMap</a>;</div>
123
+ <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940"> 57</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID,NodeBS&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">MemObjToFieldsMap</a>;</div>
124
+ <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9"> 58</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const SVFStmt*&gt; <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFStmtList</a>;</div>
125
+ <div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b"> 59</a></span>&#160; <span class="keyword">typedef</span> std::vector&lt;const SVFVar*&gt; <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFVarList</a>;</div>
126
+ <div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b"> 60</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFVar*,PhiStmt*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b">PHINodeMap</a>;</div>
127
+ <div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63"> 61</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*,SVFVarList&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">FunToArgsListMap</a>;</div>
128
+ <div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca"> 62</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CallICFGNode*,SVFVarList&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">CSToArgsListMap</a>;</div>
129
+ <div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681"> 63</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const RetICFGNode*,const SVFVar*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">CSToRetMap</a>;</div>
130
+ <div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3"> 64</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*,const SVFVar*&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">FunToRetMap</a>;</div>
131
+ <div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac918466df08a2ab30472f3e57935f005"> 65</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFFunction*,SVFStmtSet&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ac918466df08a2ab30472f3e57935f005">FunToPAGEdgeSetMap</a>;</div>
132
+ <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0"> 66</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const ICFGNode*,SVFStmtList&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">ICFGNode2SVFStmtsMap</a>;</div>
133
+ <div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a654236d64abc2ca95982da7b4408b52d"> 67</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a654236d64abc2ca95982da7b4408b52d">NodeToNodeMap</a>;</div>
134
+ <div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde"> 68</a></span>&#160; <span class="keyword">typedef</span> std::pair&lt;NodeID, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde">NodeOffset</a>;</div>
135
+ <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a742bfce4295566ec054f8d5e5f7440d8"> 69</a></span>&#160; <span class="keyword">typedef</span> std::pair&lt;NodeID, AccessPath&gt; <a class="code" href="classSVF_1_1SVFIR.html#a742bfce4295566ec054f8d5e5f7440d8">NodeAccessPath</a>;</div>
136
+ <div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d"> 70</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeOffset,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">NodeOffsetMap</a>;</div>
137
+ <div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a77b75d80a1af46aed3b6130d206ad236"> 71</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeAccessPath,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#a77b75d80a1af46aed3b6130d206ad236">NodeAccessPathMap</a>;</div>
138
+ <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5"> 72</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const SVFValue*, NodeAccessPathMap&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5">GepValueVarMap</a>;</div>
139
+ <div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674"> 73</a></span>&#160; <span class="keyword">typedef</span> std::pair&lt;const SVFType*, std::vector&lt;AccessPath&gt;&gt; <a class="code" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVFTypeLocSetsPair</a>;</div>
140
+ <div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150"> 74</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodeID, SVFTypeLocSetsPair&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150">TypeLocSetsMap</a>;</div>
141
+ <div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ab715a8e83a4ec45fb86298fef3eda95a"> 75</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;NodePair,NodeID&gt;</a> <a class="code" href="classSVF_1_1SVFIR.html#ab715a8e83a4ec45fb86298fef3eda95a">NodePairSetMap</a>;</div>
142
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
143
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">private</span>:</div>
144
+ <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7"> 80</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">ICFGNode2SVFStmtsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>; </div>
145
+ <div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2"> 81</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">ICFGNode2SVFStmtsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>; </div>
146
+ <div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67"> 82</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5">GepValueVarMap</a> <a class="code" href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67">GepValObjMap</a>; </div>
147
+ <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288"> 83</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150">TypeLocSetsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">typeLocSetsMap</a>; </div>
148
+ <div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453"> 84</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">NodeOffsetMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">GepObjVarMap</a>; </div>
149
+ <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252"> 85</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">MemObjToFieldsMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>; </div>
150
+ <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323"> 86</a></span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVFStmtSet</a> <a class="code" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">globSVFStmtSet</a>; </div>
151
+ <div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9"> 87</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b">PHINodeMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">phiNodeMap</a>; </div>
152
+ <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903"> 88</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">FunToArgsListMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>; </div>
153
+ <div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2"> 89</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">CSToArgsListMap</a> <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>; </div>
154
+ <div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1"> 90</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">CSToRetMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>; </div>
155
+ <div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5"> 91</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">FunToRetMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>; </div>
156
+ <div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc"> 92</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">CallSiteToFunPtrMap</a> <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>; </div>
157
+ <div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5"> 93</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9">FunPtrToCallSitesMap</a> <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>; </div>
158
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a> <a class="code" href="classSVF_1_1SVFIR.html#abd9f622b55839d6796ca2576f2323498">candidatePointers</a>;</div>
159
+ <div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9"> 97</a></span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a>; </div>
160
+ <div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51"> 98</a></span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>; <span class="comment">// ICFG</span></div>
161
+ <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b"> 99</a></span>&#160; <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>* <a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a>; <span class="comment">// class hierarchy graph</span></div>
162
+ <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450"> 100</a></span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a> <a class="code" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">callSiteSet</a>; </div>
163
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
164
+ <div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e"> 102</a></span>&#160; <span class="keyword">static</span> std::unique_ptr&lt;SVFIR&gt; <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a>; </div>
165
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
166
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#abf511f82cdbf7a6d9b6da167aee57636">SVFIR</a>(<span class="keywordtype">bool</span> buildFromFile);</div>
167
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
168
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a6834558be6987c91a3732154482c9567">destroy</a>();</div>
169
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
170
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword">public</span>:</div>
171
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
172
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
173
+ <div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362"> 114</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">getPAG</a>(<span class="keywordtype">bool</span> buildFromFile = <span class="keyword">false</span>)</div>
174
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
175
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a> == <span class="keyword">nullptr</span>)</div>
176
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
177
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a> = std::unique_ptr&lt;SVFIR&gt;(<span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR.html#abf511f82cdbf7a6d9b6da167aee57636">SVFIR</a>(buildFromFile));</div>
178
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
179
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a>.get();</div>
180
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
181
+ <div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a007c86e5d2d541d08815547a5492731e"> 122</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a007c86e5d2d541d08815547a5492731e">releaseSVFIR</a>()</div>
182
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
183
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a> = <span class="keyword">nullptr</span>;</div>
184
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
185
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">MemObjToFieldsMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">getMemToFieldsMap</a>()</div>
186
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div>
187
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">memToFieldsMap</a>;</div>
188
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
189
+ <div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e"> 133</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">NodeOffsetMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">getGepObjNodeMap</a>()</div>
190
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
191
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">GepObjVarMap</a>;</div>
192
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
193
+ <div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484"> 138</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">OrderedNodeSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">getAllValidPtrs</a>()</div>
194
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div>
195
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#abd9f622b55839d6796ca2576f2323498">candidatePointers</a>;</div>
196
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
197
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#af6a2c401d5c7582a4a958b1fe40838e5">initialiseCandidatePointers</a>();</div>
198
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
199
+ <div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3d62b2a06fe1ec531cbde12131fa31df"> 146</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SVFIR.html#a3d62b2a06fe1ec531cbde12131fa31df">~SVFIR</a>()</div>
200
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
201
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a6834558be6987c91a3732154482c9567">destroy</a>();</div>
202
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
203
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; </div>
204
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a2375f49c77f2285a6316e7540b051a0f">handleBlackHole</a>(<span class="keywordtype">bool</span> <a class="code" href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a>);</div>
205
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a52bea4a99022b036104751cafa9152b1">setModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* mod)</div>
206
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
207
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a> = mod;</div>
208
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
209
+ <div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701"> 160</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">getModule</a>()</div>
210
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
211
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; assert(<a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a> &amp;&amp; <span class="stringliteral">&quot;empty SVFModule! Build SVF IR first!&quot;</span>);</div>
212
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">svfModule</a>;</div>
213
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
214
+ <div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a756ae2b40ec29f2f92c95919f615e5ec"> 166</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a756ae2b40ec29f2f92c95919f615e5ec">setICFG</a>(<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* i)</div>
215
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div>
216
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a> = i;</div>
217
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
218
+ <div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11"> 170</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* <a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>()<span class="keyword"> const</span></div>
219
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keyword"> </span>{</div>
220
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; assert(<a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>&gt;0 &amp;&amp; <span class="stringliteral">&quot;empty ICFG! Build SVF IR first!&quot;</span>);</div>
221
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>;</div>
222
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
223
+ <div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa14f6cde41bcac27ce2f66c6b33ee410"> 176</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#aa14f6cde41bcac27ce2f66c6b33ee410">setCHG</a>(<a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>* c)</div>
224
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div>
225
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a> = c;</div>
226
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
227
+ <div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a7e8059ebd9bdeed8891fb231d148316d"> 180</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CommonCHGraph.html">CommonCHGraph</a>* <a class="code" href="classSVF_1_1SVFIR.html#a7e8059ebd9bdeed8891fb231d148316d">getCHG</a>()</div>
228
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div>
229
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; assert(<a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a> &amp;&amp; <span class="stringliteral">&quot;empty ICFG! Build SVF IR first!&quot;</span>);</div>
230
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">chgraph</a>;</div>
231
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div>
232
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
233
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
234
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
235
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1">KindToSVFStmtSetMap</a>[kind];</div>
236
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
237
+ <div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576"> 193</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576">getPTASVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
238
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
239
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d">KindToPTASVFStmtSetMap</a>[kind];</div>
240
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div>
241
+ <div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654"> 198</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654">hasSVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)<span class="keyword"> const</span></div>
242
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword"> </span>{</div>
243
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>.find(inst) != <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>.end();</div>
244
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
245
+ <div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0"> 202</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0">hasPTASVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)<span class="keyword"> const</span></div>
246
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword"> </span>{</div>
247
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>.find(inst) !=</div>
248
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>.end();</div>
249
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
250
+ <div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b"> 208</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFStmtList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">getSVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)</div>
251
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div>
252
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>[inst];</div>
253
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
254
+ <div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988"> 213</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVFStmtList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">getPTASVFStmtList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst)</div>
255
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
256
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>[inst];</div>
257
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
258
+ <div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6a84868ab4e2845e884fba08d82b40f6"> 218</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a6a84868ab4e2845e884fba08d82b40f6">addToSVFStmtList</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inst, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge)</div>
259
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div>
260
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; edge-&gt;<a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(inst);</div>
261
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">icfgNode2SVFStmtsMap</a>[inst].push_back(edge);</div>
262
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>())</div>
263
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">icfgNode2PTASVFStmtsMap</a>[inst].push_back(edge);</div>
264
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
265
+ <div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a9d0e3d8483302543faa8d1556d2c567d"> 226</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a9d0e3d8483302543faa8d1556d2c567d">addToTypeLocSetsMap</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> argId, <a class="code" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVFTypeLocSetsPair</a>&amp; locSets)</div>
266
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div>
267
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">typeLocSetsMap</a>[argId]=locSets;</div>
268
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
269
+ <div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15"> 231</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVFTypeLocSetsPair</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">getTypeLocSetsMap</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> argId)</div>
270
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
271
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">typeLocSetsMap</a>[argId];</div>
272
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
273
+ <div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a5c5adab1f68520a304fbf70ca40f7687"> 236</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVFStmtSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a5c5adab1f68520a304fbf70ca40f7687">getGlobalSVFStmtSet</a>()</div>
274
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div>
275
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">globSVFStmtSet</a>;</div>
276
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
277
+ <div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb"> 241</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">getCallSiteSet</a>()<span class="keyword"> const</span></div>
278
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="keyword"> </span>{</div>
279
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">callSiteSet</a>;</div>
280
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div>
281
+ <div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff"> 246</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">isPhiNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node)<span class="keyword"> const</span></div>
282
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="keyword"> </span>{</div>
283
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">phiNodeMap</a>.find(node) != <a class="code" href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">phiNodeMap</a>.end();</div>
284
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
285
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
286
+ <div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410"> 252</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">hasFunArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
287
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keyword"> </span>{</div>
288
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.find(func) != <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.end());</div>
289
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
290
+ <div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a615c056c876b59d1fd174a2ac9ade27c"> 257</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">FunToArgsListMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a615c056c876b59d1fd174a2ac9ade27c">getFunArgsMap</a>()</div>
291
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div>
292
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>;</div>
293
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
294
+ <div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a"> 262</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFVarList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">getFunArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
295
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="keyword"> </span>{</div>
296
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; FunToArgsListMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.find(func);</div>
297
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this function doesn&#39;t have arguments&quot;</span>);</div>
298
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
299
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
300
+ <div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138"> 269</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">hasCallSiteArgsMap</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
301
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword"> </span>{</div>
302
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.find(cs) != <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.end());</div>
303
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
304
+ <div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7"> 274</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">CSToArgsListMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">getCallSiteArgsMap</a>()</div>
305
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; {</div>
306
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>;</div>
307
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
308
+ <div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac"> 279</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVFVarList</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">getCallSiteArgsList</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
309
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="keyword"> </span>{</div>
310
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; CSToArgsListMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.find(cs);</div>
311
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this call site doesn&#39;t have arguments&quot;</span>);</div>
312
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
313
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div>
314
+ <div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22"> 286</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">CSToRetMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">getCallSiteRets</a>()</div>
315
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div>
316
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>;</div>
317
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
318
+ <div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6"> 291</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">getCallSiteRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* cs)<span class="keyword"> const</span></div>
319
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keyword"> </span>{</div>
320
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; CSToRetMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.find(cs);</div>
321
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this call site doesn&#39;t have return&quot;</span>);</div>
322
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
323
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div>
324
+ <div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f"> 297</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">callsiteHasRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* cs)<span class="keyword"> const</span></div>
325
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="keyword"> </span>{</div>
326
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.find(cs) != <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>.end();</div>
327
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
328
+ <div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abd1bb12776dc9a17863a52ce2cd31958"> 302</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">FunToRetMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#abd1bb12776dc9a17863a52ce2cd31958">getFunRets</a>()</div>
329
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div>
330
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>;</div>
331
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
332
+ <div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f"> 307</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">getFunRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
333
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="keyword"> </span>{</div>
334
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; FunToRetMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.find(func);</div>
335
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; assert(it != <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this function doesn&#39;t have return&quot;</span>);</div>
336
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
337
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
338
+ <div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046"> 313</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046">funHasRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* func)<span class="keyword"> const</span></div>
339
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="keyword"> </span>{</div>
340
+ <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.find(func) != <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>.end();</div>
341
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
342
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; </div>
343
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; </div>
344
+ <div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9"> 321</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">getFieldValNodeNum</a>()<span class="keyword"> const</span></div>
345
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="keyword"> </span>{</div>
346
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67">GepValObjMap</a>.size();</div>
347
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div>
348
+ <div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea"> 325</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">getFieldObjNodeNum</a>()<span class="keyword"> const</span></div>
349
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keyword"> </span>{</div>
350
+ <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">GepObjVarMap</a>.size();</div>
351
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
352
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; </div>
353
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ad0977d55d947bdccd98d61c66d3f0cc7">getGepValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* curInst, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> base,</div>
354
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap) <span class="keyword">const</span>;</div>
355
+ <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
356
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; </div>
357
+ <div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0"> 337</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">CallSiteToFunPtrMap</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">getIndirectCallsites</a>()<span class="keyword"> const</span></div>
358
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="keyword"> </span>{</div>
359
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>;</div>
360
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
361
+ <div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6"> 341</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">getFunPtr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
362
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="keyword"> </span>{</div>
363
+ <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; CallSiteToFunPtrMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.find(cs);</div>
364
+ <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; assert(it!=<a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;indirect callsite not have a function pointer?&quot;</span>);</div>
365
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
366
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
367
+ <div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8"> 347</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">CallSiteSet</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">getIndCallSites</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr)<span class="keyword"> const</span></div>
368
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="keyword"> </span>{</div>
369
+ <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; FunPtrToCallSitesMap::const_iterator it = <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.find(funPtr);</div>
370
+ <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; assert(it!=<a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;function pointer not used at any indirect callsite?&quot;</span>);</div>
371
+ <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div>
372
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div>
373
+ <div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23"> 353</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">isIndirectCallSites</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs)<span class="keyword"> const</span></div>
374
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="keyword"> </span>{</div>
375
+ <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.find(cs) != <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.end());</div>
376
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div>
377
+ <div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97"> 357</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">isFunPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
378
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="keyword"> </span>{</div>
379
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.find(<span class="keywordtype">id</span>) != <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>.end());</div>
380
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div>
381
+ <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
382
+ <div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255"> 364</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255">getIntraPAGEdge</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
383
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div>
384
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255">getIntraPAGEdge</a>(<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(src), <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(dst), kind);</div>
385
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
386
+ <div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac1dbd64071f9822b0404f4ed9c8bd2cd"> 368</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#ac1dbd64071f9822b0404f4ed9c8bd2cd">getIntraPAGEdge</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* src, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* dst, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVFStmt::PEDGEK</a> kind)</div>
387
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div>
388
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> edge(src, dst, kind, <span class="keyword">false</span>);</div>
389
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmt::SVFStmtSetTy</a>&amp; edgeSet = <a class="code" href="classSVF_1_1SVFIR.html#ae2006820c0d00482b85e7ae3adcb5744">getSVFStmtSet</a>(kind);</div>
390
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; SVFStmt::SVFStmtSetTy::const_iterator it = edgeSet.find(&amp;edge);</div>
391
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; assert(it != edgeSet.end() &amp;&amp; <span class="stringliteral">&quot;can not find pag edge&quot;</span>);</div>
392
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> (*it);</div>
393
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div>
394
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; </div>
395
+ <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; </div>
396
+ <div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1"> 382</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
397
+ <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="keyword"> </span>{</div>
398
+ <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div>
399
+ <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* objPN = SVFUtil::dyn_cast&lt;ObjVar&gt;(node))</div>
400
+ <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(objPN);</div>
401
+ <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">else</span></div>
402
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
403
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div>
404
+ <div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a25b86c16d11b4d50ccc28ead525687ae"> 390</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>*<a class="code" href="classSVF_1_1SVFIR.html#a25b86c16d11b4d50ccc28ead525687ae">getObject</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* node)<span class="keyword"> const</span></div>
405
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="keyword"> </span>{</div>
406
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> node-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
407
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div>
408
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div>
409
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">getGepObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>&amp; ap);</div>
410
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">getGepObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>&amp; ap) ;</div>
411
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; </div>
412
+ <div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354"> 402</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">getFIObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj)<span class="keyword"> const</span></div>
413
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="keyword"> </span>{</div>
414
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div>
415
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
416
+ <div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ac9f860028c8cbd364720888084701628"> 406</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ac9f860028c8cbd364720888084701628">getFIObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
417
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="keyword"> </span>{</div>
418
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<span class="keywordtype">id</span>);</div>
419
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div>
420
+ <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div>
421
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
422
+ <div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6a71d2716530607d66d9e9035199d997"> 414</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a6a71d2716530607d66d9e9035199d997">isBlkPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
423
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="keyword"> </span>{</div>
424
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">SymbolTableInfo::isBlkPtr</a>(<span class="keywordtype">id</span>));</div>
425
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div>
426
+ <div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30"> 418</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30">isNullPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
427
+ <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="keyword"> </span>{</div>
428
+ <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">SymbolTableInfo::isNullPtr</a>(<span class="keywordtype">id</span>));</div>
429
+ <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div>
430
+ <div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001"> 422</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">isBlkObjOrConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
431
+ <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="keyword"> </span>{</div>
432
+ <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad">isBlkObj</a>(<span class="keywordtype">id</span>) || <a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(<span class="keywordtype">id</span>));</div>
433
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div>
434
+ <div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad"> 426</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad">isBlkObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
435
+ <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keyword"> </span>{</div>
436
+ <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">SymbolTableInfo::isBlkObj</a>(<span class="keywordtype">id</span>);</div>
437
+ <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div>
438
+ <div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156"> 430</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">isConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
439
+ <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="keyword"> </span>{</div>
440
+ <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj = <a class="code" href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">getObject</a>(<span class="keywordtype">id</span>);</div>
441
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; assert(obj &amp;&amp; <span class="stringliteral">&quot;not an object node?&quot;</span>);</div>
442
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SymbolTableInfo::isConstantObj</a>(<span class="keywordtype">id</span>) ||</div>
443
+ <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>();</div>
444
+ <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div>
445
+ <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">isNonPointerObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>) <span class="keyword">const</span>;</div>
446
+ <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; </div>
447
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; </div>
448
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">getBaseValVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId);</div>
449
+ <div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08"> 445</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">getBaseObjVar</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
450
+ <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="keyword"> </span>{</div>
451
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<span class="keywordtype">id</span>)-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>();</div>
452
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div>
453
+ <div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749"> 449</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">getBaseObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div>
454
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="keyword"> </span>{</div>
455
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node = <a class="code" href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">pag</a>-&gt;getGNode(<span class="keywordtype">id</span>);</div>
456
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; assert(SVFUtil::isa&lt;ObjVar&gt;(node) &amp;&amp; <span class="stringliteral">&quot;need an object node&quot;</span>);</div>
457
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a>* obj = SVFUtil::cast&lt;ObjVar&gt;(node);</div>
458
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> obj-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
459
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div>
460
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; </div>
461
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
462
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj);</div>
463
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; <a class="code" href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">getAllFieldsObjVars</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>);</div>
464
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">getFieldsAfterCollapse</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>);</div>
465
+ <div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0"> 464</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>()</div>
466
+ <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div>
467
+ <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(<a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-&gt;allocateValueId());</div>
468
+ <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div>
469
+ <div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7"> 468</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7">addDummyObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
470
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div>
471
+ <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7">addDummyObjNode</a>(<a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-&gt;allocateObjectId(), <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
472
+ <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div>
473
+ <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; </div>
474
+ <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#addc84dae75be8e8b9deccdb4360736d3">isValidPointer</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId) <span class="keyword">const</span>;</div>
475
+ <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; </div>
476
+ <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">isValidTopLevelPtr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* node);</div>
477
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div>
478
+ <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a236b4fefd16e9c793c5bd6d576290841">print</a>();</div>
479
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; </div>
480
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="keyword">private</span>:</div>
481
+ <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; </div>
482
+ <div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523"> 485</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523">addToStmt2TypeMap</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge)</div>
483
+ <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div>
484
+ <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1">KindToSVFStmtSetMap</a>[edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>()].insert(edge).second;</div>
485
+ <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; (void)added; <span class="comment">// Suppress warning of unused variable under release build</span></div>
486
+ <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; assert(added &amp;&amp; <span class="stringliteral">&quot;duplicated edge, not added!!!&quot;</span>);</div>
487
+ <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span> (edge-&gt;<a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>())</div>
488
+ <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; {</div>
489
+ <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">totalPTAPAGEdge</a>++;</div>
490
+ <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d">KindToPTASVFStmtSetMap</a>[edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>()].insert(edge);</div>
491
+ <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div>
492
+ <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div>
493
+ <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; </div>
494
+ <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#ac27b9eedd489f13175c010a32203abae">addFunArgs</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* arg)</div>
495
+ <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div>
496
+ <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* funEntryBlockNode = <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a>(fun);</div>
497
+ <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; funEntryBlockNode-&gt;<a class="code" href="classSVF_1_1FunEntryICFGNode.html#aeb9dfc9dfb0aad871cefcf80da2d881d">addFormalParms</a>(arg);</div>
498
+ <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">funArgsListMap</a>[fun].push_back(arg);</div>
499
+ <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div>
500
+ <div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a53774463f34bb8b528b179b72b48fd69"> 506</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a53774463f34bb8b528b179b72b48fd69">addFunRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* ret)</div>
501
+ <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; {</div>
502
+ <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* funExitBlockNode = <a class="code" href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">icfg</a>-&gt;<a class="code" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">getFunExitICFGNode</a>(fun);</div>
503
+ <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; funExitBlockNode-&gt;<a class="code" href="classSVF_1_1FunExitICFGNode.html#a51bdfbda3a351daa7ba898e2f88bb067">addFormalRet</a>(ret);</div>
504
+ <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">funRetMap</a>[fun] = ret;</div>
505
+ <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div>
506
+ <div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a69963e4030433103e84e57fc015871d8"> 513</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a69963e4030433103e84e57fc015871d8">addCallSiteArgs</a>(<a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* arg)</div>
507
+ <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; {</div>
508
+ <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; callBlockNode-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#ab389873c50b952b67aeafe7204864d59">addActualParms</a>(arg);</div>
509
+ <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">callSiteArgsListMap</a>[callBlockNode].push_back(arg);</div>
510
+ <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; }</div>
511
+ <div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a72efebdfe007ec8c515967ede76b6ce0"> 519</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a72efebdfe007ec8c515967ede76b6ce0">addCallSiteRets</a>(<a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* arg)</div>
512
+ <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; {</div>
513
+ <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; retBlockNode-&gt;<a class="code" href="classSVF_1_1RetICFGNode.html#ac719aea72183e187f71471e1e58c9e54">addActualRet</a>(arg);</div>
514
+ <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">callSiteRetMap</a>[retBlockNode]= arg;</div>
515
+ <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; }</div>
516
+ <div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af4a5fd9ecddb1447207335917adccd68"> 525</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#af4a5fd9ecddb1447207335917adccd68">addIndirectCallsites</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> funPtr)</div>
517
+ <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div>
518
+ <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordtype">bool</span> added = <a class="code" href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">indCallSiteToFunPtrMap</a>.emplace(cs, funPtr).second;</div>
519
+ <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; (void) added;</div>
520
+ <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">funPtrToCallSitesMap</a>[funPtr].insert(cs);</div>
521
+ <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; assert(added &amp;&amp; <span class="stringliteral">&quot;adding the same indirect callsite twice?&quot;</span>);</div>
522
+ <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; }</div>
523
+ <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div>
524
+ <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; </div>
525
+ <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">addValNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
526
+ <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; {</div>
527
+ <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a>(val,i);</div>
528
+ <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">addValNode</a>(val, node, i);</div>
529
+ <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div>
530
+ <div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6"> 542</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
531
+ <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div>
532
+ <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1IRGraph.html#ad5a06a57d64c54ec6e7e92b7e0acfad8">getMemObj</a>(val);</div>
533
+ <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; assert(mem-&gt;<a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>() == i &amp;&amp; <span class="stringliteral">&quot;not same object id?&quot;</span>);</div>
534
+ <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">addFIObjNode</a>(mem);</div>
535
+ <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div>
536
+ <div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09"> 549</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09">addRetNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
537
+ <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div>
538
+ <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetPN.html">RetPN</a>(val,i);</div>
539
+ <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09">addRetNode</a>(val, node, i);</div>
540
+ <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; }</div>
541
+ <div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6ade5bf3edc7b6c3faafc3e5ff3d0538"> 555</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a6ade5bf3edc7b6c3faafc3e5ff3d0538">addVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* val, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
542
+ <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {</div>
543
+ <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VarArgPN.html">VarArgPN</a>(val,i);</div>
544
+ <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node,i);</div>
545
+ <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; }</div>
546
+ <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; </div>
547
+ <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a555e6d530c37b23e1e43925aa188385f">addGepValNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* curInst,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
548
+ <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a685991a5dec8a17fe73b3161fdb9ea7e">addGepObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>&amp; apOffset, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepId);</div>
549
+ <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">addFIObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj);</div>
550
+ <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; </div>
551
+ <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; </div>
552
+ <div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a6b1bb039f068ff2ab486214354df4684"> 571</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a6b1bb039f068ff2ab486214354df4684">addDummyValNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
553
+ <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; {</div>
554
+ <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">addValNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyValVar.html">DummyValVar</a>(i), i);</div>
555
+ <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</div>
556
+ <div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a35af1a212273ae32651a88b1ed032700"> 575</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a35af1a212273ae32651a88b1ed032700">addDummyObjNode</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
557
+ <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; {</div>
558
+ <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = <a class="code" href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60">addDummyMemObj</a>(i, <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
559
+ <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(<span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(i,mem), i);</div>
560
+ <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</div>
561
+ <div class="line"><a name="l00580"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60"> 580</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60">addDummyMemObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
562
+ <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div>
563
+ <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">getSymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#ae39b1a2330b157312727a560fddbd0dc">createDummyObj</a>(i,<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div>
564
+ <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div>
565
+ <div class="line"><a name="l00584"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2b532a5db0197c579b512fbcdb4d6220"> 584</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a2b532a5db0197c579b512fbcdb4d6220">addBlackholeObjNode</a>()</div>
566
+ <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</div>
567
+ <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(</div>
568
+ <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">nullptr</span>, <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(<a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>(), <a class="code" href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">getBlackHoleObj</a>()),</div>
569
+ <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">getBlackHoleNode</a>());</div>
570
+ <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; }</div>
571
+ <div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#aff3f3ff198e7511576484dfda7bf051b"> 590</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#aff3f3ff198e7511576484dfda7bf051b">addConstantObjNode</a>()</div>
572
+ <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; {</div>
573
+ <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">addObjNode</a>(<span class="keyword">nullptr</span>,</div>
574
+ <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keyword">new</span> <a class="code" href="classSVF_1_1DummyObjVar.html">DummyObjVar</a>(<a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>(), <a class="code" href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">getConstantObj</a>()),</div>
575
+ <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <a class="code" href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">getConstantNode</a>());</div>
576
+ <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; }</div>
577
+ <div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a2b1de62f88588b068d4eed125049ed8d"> 596</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a2b1de62f88588b068d4eed125049ed8d">addBlackholePtrNode</a>()</div>
578
+ <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; {</div>
579
+ <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">addDummyValNode</a>(<a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>());</div>
580
+ <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div>
581
+ <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; </div>
582
+ <div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af298651d6ef2030ca13ae6a9db622eb4"> 603</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#af298651d6ef2030ca13ae6a9db622eb4">addValNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
583
+ <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; {</div>
584
+ <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; assert(<a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(i) == <span class="keyword">false</span> &amp;&amp;</div>
585
+ <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="stringliteral">&quot;This NodeID clashes here. Please check NodeIDAllocator. Switch &quot;</span></div>
586
+ <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="stringliteral">&quot;Strategy::DBUG to SEQ or DENSE&quot;</span>);</div>
587
+ <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node, i);</div>
588
+ <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div>
589
+ <div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#af9b5c67ca0d91ed20d6ee2d44c1acbd1"> 611</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#af9b5c67ca0d91ed20d6ee2d44c1acbd1">addObjNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
590
+ <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; {</div>
591
+ <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; assert(<a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(i) == <span class="keyword">false</span> &amp;&amp;</div>
592
+ <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="stringliteral">&quot;This NodeID clashes here. Please check NodeIDAllocator. Switch &quot;</span></div>
593
+ <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="stringliteral">&quot;Strategy::DBUG to SEQ or DENSE&quot;</span>);</div>
594
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node, i);</div>
595
+ <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; }</div>
596
+ <div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a1f63adcd679596996ee2eabf0179462f"> 619</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a1f63adcd679596996ee2eabf0179462f">addRetNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
597
+ <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; {</div>
598
+ <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node,i);</div>
599
+ <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div>
600
+ <div class="line"><a name="l00624"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a078c01295f47bf12f1a2b8abfab8b28d"> 624</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1SVFIR.html#a078c01295f47bf12f1a2b8abfab8b28d">addVarargNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>*, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i)</div>
601
+ <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; {</div>
602
+ <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">addNode</a>(node,i);</div>
603
+ <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div>
604
+ <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; </div>
605
+ <div class="line"><a name="l00630"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#ae3d9b4acb63a7dbe316e87bad4e3987a"> 630</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#ae3d9b4acb63a7dbe316e87bad4e3987a">addGlobalPAGEdge</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* edge)</div>
606
+ <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; {</div>
607
+ <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">globSVFStmtSet</a>.insert(edge);</div>
608
+ <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div>
609
+ <div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR.html#a98341496bf470d23384f3d86a58591db"> 635</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR.html#a98341496bf470d23384f3d86a58591db">addCallSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* call)</div>
610
+ <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; {</div>
611
+ <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">callSiteSet</a>.insert(call);</div>
612
+ <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; }</div>
613
+ <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; </div>
614
+ <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a8436a7eede7b5ff5d9b80a0c951ea729">addAddrStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div>
615
+ <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#aa54b93ebf36944b548aaa74dbf8a144f">addCopyStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div>
616
+ <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#abb272e6fff36a29fe84c9d8695f7d630">addPhiStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> res, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> opnd, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* pred);</div>
617
+ <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#accbff738e77fd2256d4a6629c48d63f4">addSelectStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> res, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond);</div>
618
+ <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a7eb14738f0cf08cc8b5c623c953db4ba">addCmpStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> predict);</div>
619
+ <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a955a2f93cf9eef857e40f19bc24edb2f">addBinaryOPStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op1, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> op2, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst,</div>
620
+ <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode);</div>
621
+ <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a8abc436992aa3b6b636084ff5f9a8ef2">addUnaryOPStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> opcode);</div>
622
+ <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#ae61030da4a84b5c9c47903804af9d107">addBranchStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> br, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> cond,</div>
623
+ <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">BranchStmt::SuccAndCondPairVec</a>&amp; succs);</div>
624
+ <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a3837804b2622baf7e6991aa993286e9e">addLoadStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst);</div>
625
+ <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#af9804d78e4158d3c8961e1f84bbef91e">addStoreStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* val);</div>
626
+ <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a574bd5c9f11681c70db29c25f25a4cba">addCallPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
627
+ <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entry);</div>
628
+ <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a1791652f578b6ab8aacb4d6e7c7fd05f">addRetPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
629
+ <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* exit);</div>
630
+ <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a1f77275b24345164f30d519238121f92">addGepStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap,</div>
631
+ <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordtype">bool</span> constGep);</div>
632
+ <div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a3abcab8c3155c5c5d4a04f05ea207260">addNormalGepStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap);</div>
633
+ <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a0814a6a71c4a8f08253bf16ad1ba5dc5">addVariantGepStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>&amp; ap);</div>
634
+ <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a916d893cb852bbbd933e3e5349d5154b">addThreadForkPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
635
+ <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* entry);</div>
636
+ <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>* <a class="code" href="classSVF_1_1SVFIR.html#a64d14e7ee334c85b02414d68877faab2">addThreadJoinPE</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> src, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dst, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs,</div>
637
+ <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* exit);</div>
638
+ <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; </div>
639
+ <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* <a class="code" href="classSVF_1_1SVFIR.html#a33df5f5d9b7de3846cf973135b04f513">addBlackHoleAddrStmt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node);</div>
640
+ <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;};</div>
641
+ <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; </div>
642
+ <div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ac47d39fb505e8ed8d2c6b6b318be5f4d"> 688</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> <a class="code" href="namespaceSVF.html#ac47d39fb505e8ed8d2c6b6b318be5f4d">PAG</a>;</div>
643
+ <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; </div>
644
+ <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;} <span class="comment">// End namespace SVF</span></div>
645
645
  <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; </div>
646
646
  <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; </div>
647
- <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVFIR_H_ */</span><span class="preprocessor"></span></div>
647
+ <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; </div>
648
+ <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVFIR_H_ */</span><span class="preprocessor"></span></div>
648
649
  </div><!-- fragment --></div><!-- contents -->
649
650
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac7f1349df526a5a50741e9303f3bd446"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac7f1349df526a5a50741e9303f3bd446">SVF::SVFIR::TypeBasedHeapCloning</a></div><div class="ttdeci">friend class TypeBasedHeapCloning</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00048">SVFIR.h:48</a></div></div>
650
651
  <div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
651
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_afddb7a152e95ed4c559d12d00f5939e7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7">SVF::SVFIR::addDummyObjNode</a></div><div class="ttdeci">NodeID addDummyObjNode(const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00467">SVFIR.h:467</a></div></div>
652
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_afddb7a152e95ed4c559d12d00f5939e7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#afddb7a152e95ed4c559d12d00f5939e7">SVF::SVFIR::addDummyObjNode</a></div><div class="ttdeci">NodeID addDummyObjNode(const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00468">SVFIR.h:468</a></div></div>
652
653
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae61030da4a84b5c9c47903804af9d107"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae61030da4a84b5c9c47903804af9d107">SVF::SVFIR::addBranchStmt</a></div><div class="ttdeci">BranchStmt * addBranchStmt(NodeID br, NodeID cond, const BranchStmt::SuccAndCondPairVec &amp;succs)</div><div class="ttdoc">Add BranchStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00186">SVFIR.cpp:186</a></div></div>
653
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a9062fc3ed889f8971fb2ea49b8de3674"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVF::SVFIR::SVFTypeLocSetsPair</a></div><div class="ttdeci">std::pair&lt; const SVFType *, std::vector&lt; AccessPath &gt; &gt; SVFTypeLocSetsPair</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00072">SVFIR.h:72</a></div></div>
654
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a9062fc3ed889f8971fb2ea49b8de3674"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9062fc3ed889f8971fb2ea49b8de3674">SVF::SVFIR::SVFTypeLocSetsPair</a></div><div class="ttdeci">std::pair&lt; const SVFType *, std::vector&lt; AccessPath &gt; &gt; SVFTypeLocSetsPair</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00073">SVFIR.h:73</a></div></div>
654
655
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00350">SVFStatements.h:350</a></div></div>
655
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a615c056c876b59d1fd174a2ac9ade27c"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a615c056c876b59d1fd174a2ac9ade27c">SVF::SVFIR::getFunArgsMap</a></div><div class="ttdeci">FunToArgsListMap &amp; getFunArgsMap()</div><div class="ttdoc">Get function arguments list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00256">SVFIR.h:256</a></div></div>
656
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a615c056c876b59d1fd174a2ac9ade27c"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a615c056c876b59d1fd174a2ac9ade27c">SVF::SVFIR::getFunArgsMap</a></div><div class="ttdeci">FunToArgsListMap &amp; getFunArgsMap()</div><div class="ttdoc">Get function arguments list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00257">SVFIR.h:257</a></div></div>
656
657
  <div class="ttc" id="aclassSVF_1_1CommonCHGraph_html"><div class="ttname"><a href="classSVF_1_1CommonCHGraph.html">SVF::CommonCHGraph</a></div><div class="ttdoc">Common base for class hierarchy graph. Only implements what PointerAnalysis needs.</div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00050">CHG.h:50</a></div></div>
657
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6834558be6987c91a3732154482c9567"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6834558be6987c91a3732154482c9567">SVF::SVFIR::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00560">SVFIR.cpp:560</a></div></div>
658
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6834558be6987c91a3732154482c9567"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6834558be6987c91a3732154482c9567">SVF::SVFIR::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00562">SVFIR.cpp:562</a></div></div>
658
659
  <div class="ttc" id="aIRGraph_8h_html"><div class="ttname"><a href="IRGraph_8h.html">IRGraph.h</a></div></div>
659
660
  <div class="ttc" id="anamespaceSVF_html_a3c2bd95727ec0d9c55c631b6617026c8"><div class="ttname"><a href="namespaceSVF.html#a3c2bd95727ec0d9c55c631b6617026c8">SVF::OrderedNodeSet</a></div><div class="ttdeci">OrderedSet&lt; NodeID &gt; OrderedNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00113">SVFType.h:113</a></div></div>
660
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a69963e4030433103e84e57fc015871d8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a69963e4030433103e84e57fc015871d8">SVF::SVFIR::addCallSiteArgs</a></div><div class="ttdeci">void addCallSiteArgs(CallICFGNode *callBlockNode, const SVFVar *arg)</div><div class="ttdoc">Add callsite arguments.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00512">SVFIR.h:512</a></div></div>
661
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a69963e4030433103e84e57fc015871d8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a69963e4030433103e84e57fc015871d8">SVF::SVFIR::addCallSiteArgs</a></div><div class="ttdeci">void addCallSiteArgs(CallICFGNode *callBlockNode, const SVFVar *arg)</div><div class="ttdoc">Add callsite arguments.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00513">SVFIR.h:513</a></div></div>
661
662
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVF::SVFStmt::PEDGEK</a></div><div class="ttdeci">PEDGEK</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00061">SVFStatements.h:61</a></div></div>
662
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5298f34143ec3a2e6bb74ebad668cbbc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">SVF::SVFIR::getBaseValVar</a></div><div class="ttdeci">NodeID getBaseValVar(NodeID nodeId)</div><div class="ttdoc">Base and Offset methods for Value and Object node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00517">SVFIR.cpp:517</a></div></div>
663
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00336">SVFIR.h:336</a></div></div>
663
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5298f34143ec3a2e6bb74ebad668cbbc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5298f34143ec3a2e6bb74ebad668cbbc">SVF::SVFIR::getBaseValVar</a></div><div class="ttdeci">NodeID getBaseValVar(NodeID nodeId)</div><div class="ttdoc">Base and Offset methods for Value and Object node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00519">SVFIR.cpp:519</a></div></div>
664
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2d2131128ceb3362b5dc89317cfd88a0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0">SVF::SVFIR::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap &amp; getIndirectCallsites() const</div><div class="ttdoc">Add/get indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00337">SVFIR.h:337</a></div></div>
664
665
  <div class="ttc" id="anamespaceSVF_html_aedf0d6718ca176e0b9e17ab4b30729c6"><div class="ttname"><a href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">SVF::OrderedMap</a></div><div class="ttdeci">std::map&lt; Key, Value, Compare, Allocator &gt; OrderedMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00110">SVFType.h:110</a></div></div>
665
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae0aab46dbf1e02d7ec6f754970f485f9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9">SVF::SVFIR::FunPtrToCallSitesMap</a></div><div class="ttdeci">Map&lt; NodeID, CallSiteSet &gt; FunPtrToCallSitesMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00055">SVFIR.h:55</a></div></div>
666
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae0aab46dbf1e02d7ec6f754970f485f9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae0aab46dbf1e02d7ec6f754970f485f9">SVF::SVFIR::FunPtrToCallSitesMap</a></div><div class="ttdeci">Map&lt; NodeID, CallSiteSet &gt; FunPtrToCallSitesMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00056">SVFIR.h:56</a></div></div>
666
667
  <div class="ttc" id="aclassSVF_1_1CallICFGNode_html_ab389873c50b952b67aeafe7204864d59"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#ab389873c50b952b67aeafe7204864d59">SVF::CallICFGNode::addActualParms</a></div><div class="ttdeci">void addActualParms(const SVFVar *ap)</div><div class="ttdoc">Add actual parameters.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00452">ICFGNode.h:452</a></div></div>
667
668
  <div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
668
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_abf209739a97b96ae0d1c8451fdc684e8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">SVF::SVFIR::getIndCallSites</a></div><div class="ttdeci">const CallSiteSet &amp; getIndCallSites(NodeID funPtr) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00346">SVFIR.h:346</a></div></div>
669
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_abf209739a97b96ae0d1c8451fdc684e8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abf209739a97b96ae0d1c8451fdc684e8">SVF::SVFIR::getIndCallSites</a></div><div class="ttdeci">const CallSiteSet &amp; getIndCallSites(NodeID funPtr) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00347">SVFIR.h:347</a></div></div>
669
670
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a33df5f5d9b7de3846cf973135b04f513"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a33df5f5d9b7de3846cf973135b04f513">SVF::SVFIR::addBlackHoleAddrStmt</a></div><div class="ttdeci">SVFStmt * addBlackHoleAddrStmt(NodeID node)</div><div class="ttdoc">Set a pointer points-to black hole (e.g. int2ptr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00277">SVFIR.cpp:277</a></div></div>
670
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a4541aa617c79f7922fe8e21c0f2b6b63"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">SVF::SVFIR::FunToArgsListMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, SVFVarList &gt; FunToArgsListMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00060">SVFIR.h:60</a></div></div>
671
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a42d1e2f0213fb6e54c56cc0695b57cb0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">SVF::SVFIR::getFieldsAfterCollapse</a></div><div class="ttdeci">NodeBS getFieldsAfterCollapse(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00497">SVFIR.cpp:497</a></div></div>
672
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_af6a2c401d5c7582a4a958b1fe40838e5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af6a2c401d5c7582a4a958b1fe40838e5">SVF::SVFIR::initialiseCandidatePointers</a></div><div class="ttdeci">void initialiseCandidatePointers()</div><div class="ttdoc">Initialize candidate pointers.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00658">SVFIR.cpp:658</a></div></div>
673
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a06465449e58e14bfb1c3eee2c97d3242"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">SVF::SVFIR::addFIObjNode</a></div><div class="ttdeci">NodeID addFIObjNode(const MemObj *obj)</div><div class="ttdoc">Add a field-insensitive node, this method can only invoked by getFIGepObjNode.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00463">SVFIR.cpp:463</a></div></div>
671
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a4541aa617c79f7922fe8e21c0f2b6b63"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4541aa617c79f7922fe8e21c0f2b6b63">SVF::SVFIR::FunToArgsListMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, SVFVarList &gt; FunToArgsListMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00061">SVFIR.h:61</a></div></div>
672
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a42d1e2f0213fb6e54c56cc0695b57cb0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a42d1e2f0213fb6e54c56cc0695b57cb0">SVF::SVFIR::getFieldsAfterCollapse</a></div><div class="ttdeci">NodeBS getFieldsAfterCollapse(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00499">SVFIR.cpp:499</a></div></div>
673
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_af6a2c401d5c7582a4a958b1fe40838e5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af6a2c401d5c7582a4a958b1fe40838e5">SVF::SVFIR::initialiseCandidatePointers</a></div><div class="ttdeci">void initialiseCandidatePointers()</div><div class="ttdoc">Initialize candidate pointers.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00660">SVFIR.cpp:660</a></div></div>
674
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a06465449e58e14bfb1c3eee2c97d3242"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a06465449e58e14bfb1c3eee2c97d3242">SVF::SVFIR::addFIObjNode</a></div><div class="ttdeci">NodeID addFIObjNode(const MemObj *obj)</div><div class="ttdoc">Add a field-insensitive node, this method can only invoked by getFIGepObjNode.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00465">SVFIR.cpp:465</a></div></div>
674
675
  <div class="ttc" id="aclassSVF_1_1FunExitICFGNode_html_a51bdfbda3a351daa7ba898e2f88bb067"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html#a51bdfbda3a351daa7ba898e2f88bb067">SVF::FunExitICFGNode::addFormalRet</a></div><div class="ttdeci">void addFormalRet(const SVFVar *fr)</div><div class="ttdoc">Add actual return parameter.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00351">ICFGNode.h:351</a></div></div>
675
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a570ad42ad516e3fabb91a3563b618c0b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">SVF::SVFIR::getSVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getSVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PAGEdges.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00207">SVFIR.h:207</a></div></div>
676
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a570ad42ad516e3fabb91a3563b618c0b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a570ad42ad516e3fabb91a3563b618c0b">SVF::SVFIR::getSVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getSVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PAGEdges.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00208">SVFIR.h:208</a></div></div>
676
677
  <div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00747">SVFStatements.h:747</a></div></div>
677
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00429">SVFIR.h:429</a></div></div>
678
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5d15e4b09784f438568ebe61f8aa5156"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5d15e4b09784f438568ebe61f8aa5156">SVF::SVFIR::isConstantObj</a></div><div class="ttdeci">bool isConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00430">SVFIR.h:430</a></div></div>
678
679
  <div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html">SVF::FunEntryICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00261">ICFGNode.h:261</a></div></div>
679
680
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html_adb92a92f5c878576dff26cb38eab8c8c"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">SVF::SVFStmt::setICFGNode</a></div><div class="ttdeci">void setICFGNode(ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00159">SVFStatements.h:159</a></div></div>
680
681
  <div class="ttc" id="aclassSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00487">ICFGNode.h:487</a></div></div>
681
682
  <div class="ttc" id="anamespaceSVF_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="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
682
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a9235a60e7332c8416e113e7360441d97"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">SVF::SVFIR::isFunPtr</a></div><div class="ttdeci">bool isFunPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00356">SVFIR.h:356</a></div></div>
683
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a9235a60e7332c8416e113e7360441d97"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9235a60e7332c8416e113e7360441d97">SVF::SVFIR::isFunPtr</a></div><div class="ttdeci">bool isFunPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00357">SVFIR.h:357</a></div></div>
683
684
  <div class="ttc" id="aclassSVF_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#l00315">SVFVariables.h:315</a></div></div>
684
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00674">SVFIR.cpp:674</a></div></div>
685
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a09a604cf6a7708f4391fcf807fec1453"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">SVF::SVFIR::GepObjVarMap</a></div><div class="ttdeci">NodeOffsetMap GepObjVarMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep obj node id.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00083">SVFIR.h:83</a></div></div>
685
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a980e54129ece0757d7f0373f37428507"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a980e54129ece0757d7f0373f37428507">SVF::SVFIR::isNonPointerObj</a></div><div class="ttdeci">bool isNonPointerObj(NodeID id) const</div><div class="ttdoc">Whether an object can point to any other object or any of its fields is a pointer type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00676">SVFIR.cpp:676</a></div></div>
686
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a09a604cf6a7708f4391fcf807fec1453"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a09a604cf6a7708f4391fcf807fec1453">SVF::SVFIR::GepObjVarMap</a></div><div class="ttdeci">NodeOffsetMap GepObjVarMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep obj node id.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00084">SVFIR.h:84</a></div></div>
686
687
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
687
688
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a704b917b1e1dbaf9cd758fa9acc1083b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SVF::SymbolTableInfo::isConstantObj</a></div><div class="ttdeci">static bool isConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00165">SymbolTableInfo.h:165</a></div></div>
688
689
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a8436a7eede7b5ff5d9b80a0c951ea729"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8436a7eede7b5ff5d9b80a0c951ea729">SVF::SVFIR::addAddrStmt</a></div><div class="ttdeci">AddrStmt * addAddrStmt(NodeID src, NodeID dst)</div><div class="ttdoc">Add an edge into SVFIR.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00046">SVFIR.cpp:46</a></div></div>
689
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a4cef56f7fc77b47dc6e65c59c98551c5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">SVF::SVFIR::funRetMap</a></div><div class="ttdeci">FunToRetMap funRetMap</div><div class="ttdoc">Map a function to its unique function return PAGNodes.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00090">SVFIR.h:90</a></div></div>
690
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a4cef56f7fc77b47dc6e65c59c98551c5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4cef56f7fc77b47dc6e65c59c98551c5">SVF::SVFIR::funRetMap</a></div><div class="ttdeci">FunToRetMap funRetMap</div><div class="ttdoc">Map a function to its unique function return PAGNodes.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00091">SVFIR.h:91</a></div></div>
690
691
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a916d893cb852bbbd933e3e5349d5154b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a916d893cb852bbbd933e3e5349d5154b">SVF::SVFIR::addThreadForkPE</a></div><div class="ttdeci">TDForkPE * addThreadForkPE(NodeID src, NodeID dst, const CallICFGNode *cs, const FunEntryICFGNode *entry)</div><div class="ttdoc">Add Thread fork edge for parameter passing.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00288">SVFIR.cpp:288</a></div></div>
691
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a65a4af3d6f0bfc11e31f020bb2966576"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576">SVF::SVFIR::getPTASVFStmtSet</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy &amp; getPTASVFStmtSet(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get PTA edges set according to its kind.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00192">SVFIR.h:192</a></div></div>
692
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3bbaafd80dfcae6ccc82c3d8b9d303ea"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">SVF::SVFIR::getFieldObjNodeNum</a></div><div class="ttdeci">u32_t getFieldObjNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00324">SVFIR.h:324</a></div></div>
692
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a65a4af3d6f0bfc11e31f020bb2966576"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576">SVF::SVFIR::getPTASVFStmtSet</a></div><div class="ttdeci">SVFStmt::SVFStmtSetTy &amp; getPTASVFStmtSet(SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get PTA edges set according to its kind.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00193">SVFIR.h:193</a></div></div>
693
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3bbaafd80dfcae6ccc82c3d8b9d303ea"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3bbaafd80dfcae6ccc82c3d8b9d303ea">SVF::SVFIR::getFieldObjNodeNum</a></div><div class="ttdeci">u32_t getFieldObjNodeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00325">SVFIR.h:325</a></div></div>
693
694
  <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00815">SVFStatements.h:815</a></div></div>
694
695
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa54b93ebf36944b548aaa74dbf8a144f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa54b93ebf36944b548aaa74dbf8a144f">SVF::SVFIR::addCopyStmt</a></div><div class="ttdeci">CopyStmt * addCopyStmt(NodeID src, NodeID dst)</div><div class="ttdoc">Add Copy edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00064">SVFIR.cpp:64</a></div></div>
695
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00084">SVFIR.h:84</a></div></div>
696
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3c014227661d8976714772205611c252"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c014227661d8976714772205611c252">SVF::SVFIR::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00085">SVFIR.h:85</a></div></div>
696
697
  <div class="ttc" id="aclassSVF_1_1ICFG_html_a5df6061b65d021cd73c66592ec79f052"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">SVF::ICFG::totalICFGNode</a></div><div class="ttdeci">NodeID totalICFGNode</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00068">ICFG.h:68</a></div></div>
697
698
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a28ea8f85b0923d00364a010c1fd4e416"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a28ea8f85b0923d00364a010c1fd4e416">SVF::IRGraph::SVFStmtSet</a></div><div class="ttdeci">Set&lt; const SVFStmt * &gt; SVFStmtSet</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00056">IRGraph.h:56</a></div></div>
698
699
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3abcab8c3155c5c5d4a04f05ea207260"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3abcab8c3155c5c5d4a04f05ea207260">SVF::SVFIR::addNormalGepStmt</a></div><div class="ttdeci">GepStmt * addNormalGepStmt(NodeID src, NodeID dst, const AccessPath &amp;ap)</div><div class="ttdoc">Add Offset(Gep) edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00346">SVFIR.cpp:346</a></div></div>
699
700
  <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00604">SVFStatements.h:604</a></div></div>
700
701
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00870">SVFStatements.h:870</a></div></div>
701
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7990c72dd6d645d713f19ed973841484"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">SVF::SVFIR::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet &amp; getAllValidPtrs()</div><div class="ttdoc">Return valid pointers.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00137">SVFIR.h:137</a></div></div>
702
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa14f6cde41bcac27ce2f66c6b33ee410"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa14f6cde41bcac27ce2f66c6b33ee410">SVF::SVFIR::setCHG</a></div><div class="ttdeci">void setCHG(CommonCHGraph *c)</div><div class="ttdoc">Set/Get CHG.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00175">SVFIR.h:175</a></div></div>
703
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6f46446d667258b32ddc1ccab48f651c"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">SVF::SVFIR::getMemToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap &amp; getMemToFieldsMap()</div><div class="ttdoc">Return memToFieldsMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00127">SVFIR.h:127</a></div></div>
702
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7990c72dd6d645d713f19ed973841484"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7990c72dd6d645d713f19ed973841484">SVF::SVFIR::getAllValidPtrs</a></div><div class="ttdeci">OrderedNodeSet &amp; getAllValidPtrs()</div><div class="ttdoc">Return valid pointers.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00138">SVFIR.h:138</a></div></div>
703
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa14f6cde41bcac27ce2f66c6b33ee410"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa14f6cde41bcac27ce2f66c6b33ee410">SVF::SVFIR::setCHG</a></div><div class="ttdeci">void setCHG(CommonCHGraph *c)</div><div class="ttdoc">Set/Get CHG.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00176">SVFIR.h:176</a></div></div>
704
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6f46446d667258b32ddc1ccab48f651c"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6f46446d667258b32ddc1ccab48f651c">SVF::SVFIR::getMemToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap &amp; getMemToFieldsMap()</div><div class="ttdoc">Return memToFieldsMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00128">SVFIR.h:128</a></div></div>
704
705
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
705
706
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_abb272e6fff36a29fe84c9d8695f7d630"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abb272e6fff36a29fe84c9d8695f7d630">SVF::SVFIR::addPhiStmt</a></div><div class="ttdeci">PhiStmt * addPhiStmt(NodeID res, NodeID opnd, const ICFGNode *pred)</div><div class="ttdoc">Add phi node information.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00082">SVFIR.cpp:82</a></div></div>
706
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6a84868ab4e2845e884fba08d82b40f6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6a84868ab4e2845e884fba08d82b40f6">SVF::SVFIR::addToSVFStmtList</a></div><div class="ttdeci">void addToSVFStmtList(ICFGNode *inst, SVFStmt *edge)</div><div class="ttdoc">Add a SVFStmt into instruction map.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00217">SVFIR.h:217</a></div></div>
707
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2375f49c77f2285a6316e7540b051a0f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2375f49c77f2285a6316e7540b051a0f">SVF::SVFIR::handleBlackHole</a></div><div class="ttdeci">static void handleBlackHole(bool b)</div><div class="ttdoc">SVFIR build configurations.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00732">SVFIR.cpp:732</a></div></div>
707
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6a84868ab4e2845e884fba08d82b40f6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6a84868ab4e2845e884fba08d82b40f6">SVF::SVFIR::addToSVFStmtList</a></div><div class="ttdeci">void addToSVFStmtList(ICFGNode *inst, SVFStmt *edge)</div><div class="ttdoc">Add a SVFStmt into instruction map.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00218">SVFIR.h:218</a></div></div>
708
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2375f49c77f2285a6316e7540b051a0f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2375f49c77f2285a6316e7540b051a0f">SVF::SVFIR::handleBlackHole</a></div><div class="ttdeci">static void handleBlackHole(bool b)</div><div class="ttdoc">SVFIR build configurations.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00734">SVFIR.cpp:734</a></div></div>
708
709
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
709
710
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode&lt; SVFVar, SVFStmt &gt;::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00217">SVFStatements.h:217</a></div></div>
710
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3d62b2a06fe1ec531cbde12131fa31df"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3d62b2a06fe1ec531cbde12131fa31df">SVF::SVFIR::~SVFIR</a></div><div class="ttdeci">virtual ~SVFIR()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00145">SVFIR.h:145</a></div></div>
711
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00717">SVFIR.cpp:717</a></div></div>
712
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2b1de62f88588b068d4eed125049ed8d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b1de62f88588b068d4eed125049ed8d">SVF::SVFIR::addBlackholePtrNode</a></div><div class="ttdeci">NodeID addBlackholePtrNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00595">SVFIR.h:595</a></div></div>
711
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3d62b2a06fe1ec531cbde12131fa31df"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3d62b2a06fe1ec531cbde12131fa31df">SVF::SVFIR::~SVFIR</a></div><div class="ttdeci">virtual ~SVFIR()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00146">SVFIR.h:146</a></div></div>
712
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5c3b194ebada47baaccf0e9f3ab1a139"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c3b194ebada47baaccf0e9f3ab1a139">SVF::SVFIR::isValidTopLevelPtr</a></div><div class="ttdeci">bool isValidTopLevelPtr(const SVFVar *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00719">SVFIR.cpp:719</a></div></div>
713
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2b1de62f88588b068d4eed125049ed8d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b1de62f88588b068d4eed125049ed8d">SVF::SVFIR::addBlackholePtrNode</a></div><div class="ttdeci">NodeID addBlackholePtrNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00596">SVFIR.h:596</a></div></div>
713
714
  <div class="ttc" id="aclassSVF_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#l00525">SymbolTableInfo.cpp:525</a></div></div>
714
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6a71d2716530607d66d9e9035199d997"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6a71d2716530607d66d9e9035199d997">SVF::SVFIR::isBlkPtr</a></div><div class="ttdeci">bool isBlkPtr(NodeID id) const</div><div class="ttdoc">Get black hole and constant id.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00413">SVFIR.h:413</a></div></div>
715
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_af9c840e4b82fe9fd9493eabaa2b52bd5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">SVF::SVFIR::funPtrToCallSitesMap</a></div><div class="ttdeci">FunPtrToCallSitesMap funPtrToCallSitesMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00092">SVFIR.h:92</a></div></div>
715
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6a71d2716530607d66d9e9035199d997"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6a71d2716530607d66d9e9035199d997">SVF::SVFIR::isBlkPtr</a></div><div class="ttdeci">bool isBlkPtr(NodeID id) const</div><div class="ttdoc">Get black hole and constant id.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00414">SVFIR.h:414</a></div></div>
716
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_af9c840e4b82fe9fd9493eabaa2b52bd5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af9c840e4b82fe9fd9493eabaa2b52bd5">SVF::SVFIR::funPtrToCallSitesMap</a></div><div class="ttdeci">FunPtrToCallSitesMap funPtrToCallSitesMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00093">SVFIR.h:93</a></div></div>
716
717
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00412">SymbolTableInfo.h:412</a></div></div>
717
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a86c0c23d854b034d741d9d8891debab7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">SVF::SVFIR::icfgNode2SVFStmtsMap</a></div><div class="ttdeci">ICFGNode2SVFStmtsMap icfgNode2SVFStmtsMap</div><div class="ttdoc">Map an ICFGNode to its SVFStmts.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00079">SVFIR.h:79</a></div></div>
718
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a86c0c23d854b034d741d9d8891debab7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">SVF::SVFIR::icfgNode2SVFStmtsMap</a></div><div class="ttdeci">ICFGNode2SVFStmtsMap icfgNode2SVFStmtsMap</div><div class="ttdoc">Map an ICFGNode to its SVFStmts.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
718
719
  <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00544">SVFStatements.h:544</a></div></div>
719
720
  <div class="ttc" id="aclassSVF_1_1BranchStmt_html_a6a0e64824777f04be4c169125dd4f666"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a6a0e64824777f04be4c169125dd4f666">SVF::BranchStmt::SuccAndCondPairVec</a></div><div class="ttdeci">std::vector&lt; std::pair&lt; const ICFGNode *, s32_t &gt; &gt; SuccAndCondPairVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01099">SVFStatements.h:1099</a></div></div>
720
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a742bfce4295566ec054f8d5e5f7440d8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a742bfce4295566ec054f8d5e5f7440d8">SVF::SVFIR::NodeAccessPath</a></div><div class="ttdeci">std::pair&lt; NodeID, AccessPath &gt; NodeAccessPath</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00068">SVFIR.h:68</a></div></div>
721
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a742bfce4295566ec054f8d5e5f7440d8"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a742bfce4295566ec054f8d5e5f7440d8">SVF::SVFIR::NodeAccessPath</a></div><div class="ttdeci">std::pair&lt; NodeID, AccessPath &gt; NodeAccessPath</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00069">SVFIR.h:69</a></div></div>
721
722
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a64d14e7ee334c85b02414d68877faab2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64d14e7ee334c85b02414d68877faab2">SVF::SVFIR::addThreadJoinPE</a></div><div class="ttdeci">TDJoinPE * addThreadJoinPE(NodeID src, NodeID dst, const CallICFGNode *cs, const FunExitICFGNode *exit)</div><div class="ttdoc">Add Thread join edge for parameter passing.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00306">SVFIR.cpp:306</a></div></div>
722
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a8a24e0bf9f95fc1519d4013e0e82dec9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">SVF::SVFIR::getFieldValNodeNum</a></div><div class="ttdeci">u32_t getFieldValNodeNum() const</div><div class="ttdoc">Node and edge statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00320">SVFIR.h:320</a></div></div>
723
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3dbe0b17694daa74f648a70e77efaf23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">SVF::SVFIR::isIndirectCallSites</a></div><div class="ttdeci">bool isIndirectCallSites(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00352">SVFIR.h:352</a></div></div>
724
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a0a5f88766b7e11f1ea35befcbcea62dc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">SVF::SVFIR::indCallSiteToFunPtrMap</a></div><div class="ttdeci">CallSiteToFunPtrMap indCallSiteToFunPtrMap</div><div class="ttdoc">Map an indirect callsite to its function pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00091">SVFIR.h:91</a></div></div>
725
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac792c1f8b385515a8cc0a0303d40f212"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">SVF::SVFIR::addValNode</a></div><div class="ttdeci">NodeID addValNode(const SVFValue *val, NodeID i)</div><div class="ttdoc">add node into SVFIR</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00535">SVFIR.h:535</a></div></div>
726
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae3d9b4acb63a7dbe316e87bad4e3987a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae3d9b4acb63a7dbe316e87bad4e3987a">SVF::SVFIR::addGlobalPAGEdge</a></div><div class="ttdeci">void addGlobalPAGEdge(const SVFStmt *edge)</div><div class="ttdoc">Add global PAGEdges (not in a procedure)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00629">SVFIR.h:629</a></div></div>
727
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac918466df08a2ab30472f3e57935f005"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac918466df08a2ab30472f3e57935f005">SVF::SVFIR::FunToPAGEdgeSetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, SVFStmtSet &gt; FunToPAGEdgeSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00064">SVFIR.h:64</a></div></div>
728
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_addc84dae75be8e8b9deccdb4360736d3"><div class="ttname"><a href="classSVF_1_1SVFIR.html#addc84dae75be8e8b9deccdb4360736d3">SVF::SVFIR::isValidPointer</a></div><div class="ttdeci">bool isValidPointer(NodeID nodeId) const</div><div class="ttdoc">Whether a node is a valid pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00699">SVFIR.cpp:699</a></div></div>
729
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a1f63adcd679596996ee2eabf0179462f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1f63adcd679596996ee2eabf0179462f">SVF::SVFIR::addRetNode</a></div><div class="ttdeci">NodeID addRetNode(const SVFFunction *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a unique return node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00618">SVFIR.h:618</a></div></div>
730
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6f41676ae91ba7fad38cc7387dd1c255"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255">SVF::SVFIR::getIntraPAGEdge</a></div><div class="ttdeci">SVFStmt * getIntraPAGEdge(NodeID src, NodeID dst, SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get an edge according to src, dst and kind.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00363">SVFIR.h:363</a></div></div>
731
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a38f6d0c7db935fd4e556761f96f1fa09"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09">SVF::SVFIR::addRetNode</a></div><div class="ttdeci">NodeID addRetNode(const SVFFunction *val, NodeID i)</div><div class="ttdoc">Add a unique return node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00548">SVFIR.h:548</a></div></div>
723
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a8a24e0bf9f95fc1519d4013e0e82dec9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8a24e0bf9f95fc1519d4013e0e82dec9">SVF::SVFIR::getFieldValNodeNum</a></div><div class="ttdeci">u32_t getFieldValNodeNum() const</div><div class="ttdoc">Node and edge statistics.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00321">SVFIR.h:321</a></div></div>
724
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3dbe0b17694daa74f648a70e77efaf23"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3dbe0b17694daa74f648a70e77efaf23">SVF::SVFIR::isIndirectCallSites</a></div><div class="ttdeci">bool isIndirectCallSites(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00353">SVFIR.h:353</a></div></div>
725
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a0a5f88766b7e11f1ea35befcbcea62dc"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0a5f88766b7e11f1ea35befcbcea62dc">SVF::SVFIR::indCallSiteToFunPtrMap</a></div><div class="ttdeci">CallSiteToFunPtrMap indCallSiteToFunPtrMap</div><div class="ttdoc">Map an indirect callsite to its function pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00092">SVFIR.h:92</a></div></div>
726
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac792c1f8b385515a8cc0a0303d40f212"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac792c1f8b385515a8cc0a0303d40f212">SVF::SVFIR::addValNode</a></div><div class="ttdeci">NodeID addValNode(const SVFValue *val, NodeID i)</div><div class="ttdoc">add node into SVFIR</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00536">SVFIR.h:536</a></div></div>
727
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae3d9b4acb63a7dbe316e87bad4e3987a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae3d9b4acb63a7dbe316e87bad4e3987a">SVF::SVFIR::addGlobalPAGEdge</a></div><div class="ttdeci">void addGlobalPAGEdge(const SVFStmt *edge)</div><div class="ttdoc">Add global PAGEdges (not in a procedure)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00630">SVFIR.h:630</a></div></div>
728
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac918466df08a2ab30472f3e57935f005"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac918466df08a2ab30472f3e57935f005">SVF::SVFIR::FunToPAGEdgeSetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, SVFStmtSet &gt; FunToPAGEdgeSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00065">SVFIR.h:65</a></div></div>
729
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_addc84dae75be8e8b9deccdb4360736d3"><div class="ttname"><a href="classSVF_1_1SVFIR.html#addc84dae75be8e8b9deccdb4360736d3">SVF::SVFIR::isValidPointer</a></div><div class="ttdeci">bool isValidPointer(NodeID nodeId) const</div><div class="ttdoc">Whether a node is a valid pointer.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00701">SVFIR.cpp:701</a></div></div>
730
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a1f63adcd679596996ee2eabf0179462f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1f63adcd679596996ee2eabf0179462f">SVF::SVFIR::addRetNode</a></div><div class="ttdeci">NodeID addRetNode(const SVFFunction *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a unique return node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00619">SVFIR.h:619</a></div></div>
731
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6f41676ae91ba7fad38cc7387dd1c255"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6f41676ae91ba7fad38cc7387dd1c255">SVF::SVFIR::getIntraPAGEdge</a></div><div class="ttdeci">SVFStmt * getIntraPAGEdge(NodeID src, NodeID dst, SVFStmt::PEDGEK kind)</div><div class="ttdoc">Get an edge according to src, dst and kind.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00364">SVFIR.h:364</a></div></div>
732
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a38f6d0c7db935fd4e556761f96f1fa09"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a38f6d0c7db935fd4e556761f96f1fa09">SVF::SVFIR::addRetNode</a></div><div class="ttdeci">NodeID addRetNode(const SVFFunction *val, NodeID i)</div><div class="ttdoc">Add a unique return node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00549">SVFIR.h:549</a></div></div>
732
733
  <div class="ttc" id="aclassSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00262">SVFVariables.h:262</a></div></div>
733
734
  <div class="ttc" id="aclassSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01224">SVFStatements.h:1224</a></div></div>
734
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_abb91ed47d5c13d0ad7eec35164e37988"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">SVF::SVFIR::getPTASVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getPTASVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PTA PAGEdges.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00212">SVFIR.h:212</a></div></div>
735
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_adb6db6407bdc9a39e5bf8cd941f0ad15"><div class="ttname"><a href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">SVF::SVFIR::getTypeLocSetsMap</a></div><div class="ttdeci">SVFTypeLocSetsPair &amp; getTypeLocSetsMap(NodeID argId)</div><div class="ttdoc">Given an arg NodeId, get its base SVFType* and all its field location sets.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00230">SVFIR.h:230</a></div></div>
736
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aba63798e93490f257574c24d3c03507d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aba63798e93490f257574c24d3c03507d">SVF::SVFIR::addGepObjNode</a></div><div class="ttdeci">NodeID addGepObjNode(const MemObj *obj, const APOffset &amp;apOffset)</div><div class="ttdoc">Add a field obj node, this method can only invoked by getGepObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00446">SVFIR.cpp:446</a></div></div>
735
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_abb91ed47d5c13d0ad7eec35164e37988"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abb91ed47d5c13d0ad7eec35164e37988">SVF::SVFIR::getPTASVFStmtList</a></div><div class="ttdeci">SVFStmtList &amp; getPTASVFStmtList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PTA PAGEdges.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00213">SVFIR.h:213</a></div></div>
736
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_adb6db6407bdc9a39e5bf8cd941f0ad15"><div class="ttname"><a href="classSVF_1_1SVFIR.html#adb6db6407bdc9a39e5bf8cd941f0ad15">SVF::SVFIR::getTypeLocSetsMap</a></div><div class="ttdeci">SVFTypeLocSetsPair &amp; getTypeLocSetsMap(NodeID argId)</div><div class="ttdoc">Given an arg NodeId, get its base SVFType* and all its field location sets.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00231">SVFIR.h:231</a></div></div>
737
737
  <div class="ttc" id="aclassSVF_1_1ICFG_html_af1b2d2839f811a00103df87342dfc919"><div class="ttname"><a href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00277">ICFG.cpp:277</a></div></div>
738
738
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00956">SVFStatements.h:956</a></div></div>
739
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a63acb4d86d93ad1e88860ac839a8c654"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654">SVF::SVFIR::hasSVFStmtList</a></div><div class="ttdeci">bool hasSVFStmtList(const ICFGNode *inst) const</div><div class="ttdoc">Whether this instruction has SVFIR Edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00197">SVFIR.h:197</a></div></div>
740
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00444">SVFIR.h:444</a></div></div>
739
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a63acb4d86d93ad1e88860ac839a8c654"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a63acb4d86d93ad1e88860ac839a8c654">SVF::SVFIR::hasSVFStmtList</a></div><div class="ttdeci">bool hasSVFStmtList(const ICFGNode *inst) const</div><div class="ttdoc">Whether this instruction has SVFIR Edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00198">SVFIR.h:198</a></div></div>
740
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a77a6bb9335aa12d29825af1b5ea07e08"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77a6bb9335aa12d29825af1b5ea07e08">SVF::SVFIR::getBaseObjVar</a></div><div class="ttdeci">NodeID getBaseObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00445">SVFIR.h:445</a></div></div>
741
741
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00386">SVFStatements.h:386</a></div></div>
742
742
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00150">SVFValue.h:150</a></div></div>
743
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac1dbd64071f9822b0404f4ed9c8bd2cd"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac1dbd64071f9822b0404f4ed9c8bd2cd">SVF::SVFIR::getIntraPAGEdge</a></div><div class="ttdeci">SVFStmt * getIntraPAGEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00367">SVFIR.h:367</a></div></div>
744
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa148e3e14ebad8460e32079f2f44413a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">SVF::SVFIR::getFunArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Get function arguments list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00261">SVFIR.h:261</a></div></div>
745
- <div class="ttc" id="aclassSVF_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#l00113">SVFIR.h:113</a></div></div>
746
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aff3f3ff198e7511576484dfda7bf051b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aff3f3ff198e7511576484dfda7bf051b">SVF::SVFIR::addConstantObjNode</a></div><div class="ttdeci">NodeID addConstantObjNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00589">SVFIR.h:589</a></div></div>
743
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac1dbd64071f9822b0404f4ed9c8bd2cd"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac1dbd64071f9822b0404f4ed9c8bd2cd">SVF::SVFIR::getIntraPAGEdge</a></div><div class="ttdeci">SVFStmt * getIntraPAGEdge(SVFVar *src, SVFVar *dst, SVFStmt::PEDGEK kind)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00368">SVFIR.h:368</a></div></div>
744
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa148e3e14ebad8460e32079f2f44413a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa148e3e14ebad8460e32079f2f44413a">SVF::SVFIR::getFunArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Get function arguments list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00262">SVFIR.h:262</a></div></div>
745
+ <div class="ttc" id="aclassSVF_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#l00114">SVFIR.h:114</a></div></div>
746
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aff3f3ff198e7511576484dfda7bf051b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aff3f3ff198e7511576484dfda7bf051b">SVF::SVFIR::addConstantObjNode</a></div><div class="ttdeci">NodeID addConstantObjNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00590">SVFIR.h:590</a></div></div>
747
747
  <div class="ttc" id="aclassSVF_1_1AccessPath_html"><div class="ttname"><a href="classSVF_1_1AccessPath.html">SVF::AccessPath</a></div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00052">AccessPath.h:52</a></div></div>
748
748
  <div class="ttc" id="aclassSVF_1_1NodeIDAllocator_html_a2bd3ca30fc9669d9a0327544bdb4557b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">SVF::NodeIDAllocator::get</a></div><div class="ttdeci">static NodeIDAllocator * get(void)</div><div class="ttdoc">Return (singleton) allocator.</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00026">NodeIDAllocator.cpp:26</a></div></div>
749
749
  <div class="ttc" id="aclassSVF_1_1RetICFGNode_html_ac719aea72183e187f71471e1e58c9e54"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html#ac719aea72183e187f71471e1e58c9e54">SVF::RetICFGNode::addActualRet</a></div><div class="ttdeci">void addActualRet(const SVFVar *ar)</div><div class="ttdoc">Add actual return parameter.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00528">ICFGNode.h:528</a></div></div>
750
750
  <div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
751
751
  <div class="ttc" id="aclassSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00385">ICFGNode.h:385</a></div></div>
752
752
  <div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
753
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a08a05dfa6b9734936bb92b3969dbce3b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b">SVF::SVFIR::PHINodeMap</a></div><div class="ttdeci">Map&lt; const SVFVar *, PhiStmt * &gt; PHINodeMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00059">SVFIR.h:59</a></div></div>
754
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a31c54c878be428cc92cf08970fef422b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">SVF::SVFIR::chgraph</a></div><div class="ttdeci">CommonCHGraph * chgraph</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00098">SVFIR.h:98</a></div></div>
755
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac27b9eedd489f13175c010a32203abae"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac27b9eedd489f13175c010a32203abae">SVF::SVFIR::addFunArgs</a></div><div class="ttdeci">void addFunArgs(const SVFFunction *fun, const SVFVar *arg)</div><div class="ttdoc">Get/set method for function/callsite arguments and returns.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00498">SVFIR.h:498</a></div></div>
753
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a08a05dfa6b9734936bb92b3969dbce3b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a08a05dfa6b9734936bb92b3969dbce3b">SVF::SVFIR::PHINodeMap</a></div><div class="ttdeci">Map&lt; const SVFVar *, PhiStmt * &gt; PHINodeMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00060">SVFIR.h:60</a></div></div>
754
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a31c54c878be428cc92cf08970fef422b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a31c54c878be428cc92cf08970fef422b">SVF::SVFIR::chgraph</a></div><div class="ttdeci">CommonCHGraph * chgraph</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00099">SVFIR.h:99</a></div></div>
755
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac27b9eedd489f13175c010a32203abae"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac27b9eedd489f13175c010a32203abae">SVF::SVFIR::addFunArgs</a></div><div class="ttdeci">void addFunArgs(const SVFFunction *fun, const SVFVar *arg)</div><div class="ttdoc">Get/set method for function/callsite arguments and returns.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00499">SVFIR.h:499</a></div></div>
756
756
  <div class="ttc" id="aclassSVF_1_1IntraICFGNode_html"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html">SVF::IntraICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00180">ICFGNode.h:180</a></div></div>
757
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae683914bce36e2d387bc0bc97dfcb14d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">SVF::SVFIR::NodeOffsetMap</a></div><div class="ttdeci">Map&lt; NodeOffset, NodeID &gt; NodeOffsetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00069">SVFIR.h:69</a></div></div>
758
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac359813747b4f75920c5f395ba74f410"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">SVF::SVFIR::hasFunArgsList</a></div><div class="ttdeci">bool hasFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Function has arguments list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00251">SVFIR.h:251</a></div></div>
759
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a346b9300ad16ef65e3ab4e11f88193a7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">SVF::SVFIR::getCallSiteArgsMap</a></div><div class="ttdeci">CSToArgsListMap &amp; getCallSiteArgsMap()</div><div class="ttdoc">Get callsite argument list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00273">SVFIR.h:273</a></div></div>
760
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5c5adab1f68520a304fbf70ca40f7687"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c5adab1f68520a304fbf70ca40f7687">SVF::SVFIR::getGlobalSVFStmtSet</a></div><div class="ttdeci">SVFStmtSet &amp; getGlobalSVFStmtSet()</div><div class="ttdoc">Get global PAGEdges (not in a procedure)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00235">SVFIR.h:235</a></div></div>
757
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae683914bce36e2d387bc0bc97dfcb14d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae683914bce36e2d387bc0bc97dfcb14d">SVF::SVFIR::NodeOffsetMap</a></div><div class="ttdeci">Map&lt; NodeOffset, NodeID &gt; NodeOffsetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00070">SVFIR.h:70</a></div></div>
758
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac359813747b4f75920c5f395ba74f410"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac359813747b4f75920c5f395ba74f410">SVF::SVFIR::hasFunArgsList</a></div><div class="ttdeci">bool hasFunArgsList(const SVFFunction *func) const</div><div class="ttdoc">Function has arguments list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00252">SVFIR.h:252</a></div></div>
759
+ <div class="ttc" id="aclassSVF_1_1BVDataPTAImpl_html"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html">SVF::BVDataPTAImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00042">PointerAnalysisImpl.h:42</a></div></div>
760
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a346b9300ad16ef65e3ab4e11f88193a7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a346b9300ad16ef65e3ab4e11f88193a7">SVF::SVFIR::getCallSiteArgsMap</a></div><div class="ttdeci">CSToArgsListMap &amp; getCallSiteArgsMap()</div><div class="ttdoc">Get callsite argument list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00274">SVFIR.h:274</a></div></div>
761
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5c5adab1f68520a304fbf70ca40f7687"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5c5adab1f68520a304fbf70ca40f7687">SVF::SVFIR::getGlobalSVFStmtSet</a></div><div class="ttdeci">SVFStmtSet &amp; getGlobalSVFStmtSet()</div><div class="ttdoc">Get global PAGEdges (not in a procedure)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00236">SVFIR.h:236</a></div></div>
761
762
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a3b417ee79560fd00f4cf80906044c198"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">SVF::IRGraph::getBlkPtr</a></div><div class="ttdeci">NodeID getBlkPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00170">IRGraph.h:170</a></div></div>
762
763
  <div class="ttc" id="aclassSVF_1_1FunEntryICFGNode_html_aeb9dfc9dfb0aad871cefcf80da2d881d"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html#aeb9dfc9dfb0aad871cefcf80da2d881d">SVF::FunEntryICFGNode::addFormalParms</a></div><div class="ttdeci">void addFormalParms(const SVFVar *fp)</div><div class="ttdoc">Add formal parameters.</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00290">ICFGNode.h:290</a></div></div>
763
764
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_aafe9544b07a8c40bf915613df11df48e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aafe9544b07a8c40bf915613df11df48e">SVF::IRGraph::getBlackHoleObj</a></div><div class="ttdeci">const MemObj * getBlackHoleObj() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00178">IRGraph.h:178</a></div></div>
764
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a71b51492b00e66e36266b9a76a842323"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">SVF::SVFIR::globSVFStmtSet</a></div><div class="ttdeci">SVFStmtSet globSVFStmtSet</div><div class="ttdoc">Global PAGEdges without control flow information.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00085">SVFIR.h:85</a></div></div>
765
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae34e5ff2f065ad752c248337d625b2e3"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">SVF::SVFIR::FunToRetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, const SVFVar * &gt; FunToRetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00063">SVFIR.h:63</a></div></div>
765
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a71b51492b00e66e36266b9a76a842323"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a71b51492b00e66e36266b9a76a842323">SVF::SVFIR::globSVFStmtSet</a></div><div class="ttdeci">SVFStmtSet globSVFStmtSet</div><div class="ttdoc">Global PAGEdges without control flow information.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00086">SVFIR.h:86</a></div></div>
766
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae34e5ff2f065ad752c248337d625b2e3"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae34e5ff2f065ad752c248337d625b2e3">SVF::SVFIR::FunToRetMap</a></div><div class="ttdeci">Map&lt; const SVFFunction *, const SVFVar * &gt; FunToRetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00064">SVFIR.h:64</a></div></div>
766
767
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00270">SVFValue.h:270</a></div></div>
767
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_afe8274c3b7317fccef5314662a182046"><div class="ttname"><a href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046">SVF::SVFIR::funHasRet</a></div><div class="ttdeci">bool funHasRet(const SVFFunction *func) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00312">SVFIR.h:312</a></div></div>
768
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_af4a5fd9ecddb1447207335917adccd68"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af4a5fd9ecddb1447207335917adccd68">SVF::SVFIR::addIndirectCallsites</a></div><div class="ttdeci">void addIndirectCallsites(const CallICFGNode *cs, NodeID funPtr)</div><div class="ttdoc">Add indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00524">SVFIR.h:524</a></div></div>
769
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a53774463f34bb8b528b179b72b48fd69"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a53774463f34bb8b528b179b72b48fd69">SVF::SVFIR::addFunRet</a></div><div class="ttdeci">void addFunRet(const SVFFunction *fun, const SVFVar *ret)</div><div class="ttdoc">Add function returns.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00505">SVFIR.h:505</a></div></div>
768
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_afe8274c3b7317fccef5314662a182046"><div class="ttname"><a href="classSVF_1_1SVFIR.html#afe8274c3b7317fccef5314662a182046">SVF::SVFIR::funHasRet</a></div><div class="ttdeci">bool funHasRet(const SVFFunction *func) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00313">SVFIR.h:313</a></div></div>
769
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_af4a5fd9ecddb1447207335917adccd68"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af4a5fd9ecddb1447207335917adccd68">SVF::SVFIR::addIndirectCallsites</a></div><div class="ttdeci">void addIndirectCallsites(const CallICFGNode *cs, NodeID funPtr)</div><div class="ttdoc">Add indirect callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00525">SVFIR.h:525</a></div></div>
770
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a53774463f34bb8b528b179b72b48fd69"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a53774463f34bb8b528b179b72b48fd69">SVF::SVFIR::addFunRet</a></div><div class="ttdeci">void addFunRet(const SVFFunction *fun, const SVFVar *ret)</div><div class="ttdoc">Add function returns.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00506">SVFIR.h:506</a></div></div>
770
771
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_accbff738e77fd2256d4a6629c48d63f4"><div class="ttname"><a href="classSVF_1_1SVFIR.html#accbff738e77fd2256d4a6629c48d63f4">SVF::SVFIR::addSelectStmt</a></div><div class="ttdeci">SelectStmt * addSelectStmt(NodeID res, NodeID op1, NodeID op2, NodeID cond)</div><div class="ttdoc">Add SelectStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00106">SVFIR.cpp:106</a></div></div>
771
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a95f77211550ec2374d57779d88cf5138"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">SVF::SVFIR::hasCallSiteArgsMap</a></div><div class="ttdeci">bool hasCallSiteArgsMap(const CallICFGNode *cs) const</div><div class="ttdoc">Callsite has argument list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00268">SVFIR.h:268</a></div></div>
772
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a95f77211550ec2374d57779d88cf5138"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a95f77211550ec2374d57779d88cf5138">SVF::SVFIR::hasCallSiteArgsMap</a></div><div class="ttdeci">bool hasCallSiteArgsMap(const CallICFGNode *cs) const</div><div class="ttdoc">Callsite has argument list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00269">SVFIR.h:269</a></div></div>
772
773
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a555e6d530c37b23e1e43925aa188385f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a555e6d530c37b23e1e43925aa188385f">SVF::SVFIR::addGepValNode</a></div><div class="ttdeci">NodeID addGepValNode(const SVFValue *curInst, const SVFValue *val, const AccessPath &amp;ap, NodeID i, const SVFType *type)</div><div class="ttdoc">Add a temp field value node, this method can only invoked by getGepValVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00386">SVFIR.cpp:386</a></div></div>
773
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aaae756185bbd5b7175e96f8928a989c2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">SVF::SVFIR::icfgNode2PTASVFStmtsMap</a></div><div class="ttdeci">ICFGNode2SVFStmtsMap icfgNode2PTASVFStmtsMap</div><div class="ttdoc">Map an ICFGNode to its PointerAnalysis related SVFStmts.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00080">SVFIR.h:80</a></div></div>
774
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aaae756185bbd5b7175e96f8928a989c2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">SVF::SVFIR::icfgNode2PTASVFStmtsMap</a></div><div class="ttdeci">ICFGNode2SVFStmtsMap icfgNode2PTASVFStmtsMap</div><div class="ttdoc">Map an ICFGNode to its PointerAnalysis related SVFStmts.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00081">SVFIR.h:81</a></div></div>
774
775
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a294bb5e174030882a385c790ab835bb3"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a294bb5e174030882a385c790ab835bb3">SVF::SVFIR::ExternalPAG</a></div><div class="ttdeci">friend class ExternalPAG</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00046">SVFIR.h:46</a></div></div>
775
776
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
776
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a17527c55d35ae5c18f00fd4dabe6acad"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad">SVF::SVFIR::isBlkObj</a></div><div class="ttdeci">bool isBlkObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00425">SVFIR.h:425</a></div></div>
777
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa530e33657f68fc2e8eae9435ce430cb"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">SVF::SVFIR::getCallSiteSet</a></div><div class="ttdeci">const CallSiteSet &amp; getCallSiteSet() const</div><div class="ttdoc">Get all callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00240">SVFIR.h:240</a></div></div>
777
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a17527c55d35ae5c18f00fd4dabe6acad"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17527c55d35ae5c18f00fd4dabe6acad">SVF::SVFIR::isBlkObj</a></div><div class="ttdeci">bool isBlkObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00426">SVFIR.h:426</a></div></div>
778
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa530e33657f68fc2e8eae9435ce430cb"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa530e33657f68fc2e8eae9435ce430cb">SVF::SVFIR::getCallSiteSet</a></div><div class="ttdeci">const CallSiteSet &amp; getCallSiteSet() const</div><div class="ttdoc">Get all callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00241">SVFIR.h:241</a></div></div>
778
779
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_ac5da3a0cbe040a45d719b6f6a23aed91"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ac5da3a0cbe040a45d719b6f6a23aed91">SVF::IRGraph::getConstantNode</a></div><div class="ttdeci">NodeID getConstantNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00166">IRGraph.h:166</a></div></div>
779
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a654236d64abc2ca95982da7b4408b52d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a654236d64abc2ca95982da7b4408b52d">SVF::SVFIR::NodeToNodeMap</a></div><div class="ttdeci">Map&lt; NodeID, NodeID &gt; NodeToNodeMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00066">SVFIR.h:66</a></div></div>
780
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a98341496bf470d23384f3d86a58591db"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a98341496bf470d23384f3d86a58591db">SVF::SVFIR::addCallSite</a></div><div class="ttdeci">void addCallSite(const CallICFGNode *call)</div><div class="ttdoc">Add callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00634">SVFIR.h:634</a></div></div>
781
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a236b4fefd16e9c793c5bd6d576290841"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a236b4fefd16e9c793c5bd6d576290841">SVF::SVFIR::print</a></div><div class="ttdeci">void print()</div><div class="ttdoc">Print SVFIR.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00573">SVFIR.cpp:573</a></div></div>
780
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a654236d64abc2ca95982da7b4408b52d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a654236d64abc2ca95982da7b4408b52d">SVF::SVFIR::NodeToNodeMap</a></div><div class="ttdeci">Map&lt; NodeID, NodeID &gt; NodeToNodeMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00067">SVFIR.h:67</a></div></div>
781
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a98341496bf470d23384f3d86a58591db"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a98341496bf470d23384f3d86a58591db">SVF::SVFIR::addCallSite</a></div><div class="ttdeci">void addCallSite(const CallICFGNode *call)</div><div class="ttdoc">Add callsites.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00635">SVFIR.h:635</a></div></div>
782
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a236b4fefd16e9c793c5bd6d576290841"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a236b4fefd16e9c793c5bd6d576290841">SVF::SVFIR::print</a></div><div class="ttdeci">void print()</div><div class="ttdoc">Print SVFIR.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00575">SVFIR.cpp:575</a></div></div>
782
783
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a3ce34b9fcb651689bce44ab48fbcdff0"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3ce34b9fcb651689bce44ab48fbcdff0">SVF::IRGraph::getBlackHoleNode</a></div><div class="ttdeci">NodeID getBlackHoleNode() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00162">IRGraph.h:162</a></div></div>
783
784
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_ad095e4a569d399cadc03ce864f61c394"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">SVF::SymbolTableInfo::isNullPtr</a></div><div class="ttdeci">static bool isNullPtr(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00157">SymbolTableInfo.h:157</a></div></div>
784
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a650b3931af337a92ffcb5dad5ab47b22"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">SVF::SVFIR::getCallSiteRets</a></div><div class="ttdeci">CSToRetMap &amp; getCallSiteRets()</div><div class="ttdoc">Get callsite return.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00285">SVFIR.h:285</a></div></div>
785
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a650b3931af337a92ffcb5dad5ab47b22"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a650b3931af337a92ffcb5dad5ab47b22">SVF::SVFIR::getCallSiteRets</a></div><div class="ttdeci">CSToRetMap &amp; getCallSiteRets()</div><div class="ttdoc">Get callsite return.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00286">SVFIR.h:286</a></div></div>
785
786
  <div class="ttc" id="aclassSVF_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#l00051">SVFStatements.h:51</a></div></div>
786
787
  <div class="ttc" id="aclassSVF_1_1SVFIRWriter_html"><div class="ttname"><a href="classSVF_1_1SVFIRWriter.html">SVF::SVFIRWriter</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFFileSystem_8h_source.html#l00379">SVFFileSystem.h:379</a></div></div>
787
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_af7cc6d471b5ab6db0bdc69cffa19fbf5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5">SVF::SVFIR::GepValueVarMap</a></div><div class="ttdeci">Map&lt; const SVFValue *, NodeAccessPathMap &gt; GepValueVarMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00071">SVFIR.h:71</a></div></div>
788
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_af7cc6d471b5ab6db0bdc69cffa19fbf5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af7cc6d471b5ab6db0bdc69cffa19fbf5">SVF::SVFIR::GepValueVarMap</a></div><div class="ttdeci">Map&lt; const SVFValue *, NodeAccessPathMap &gt; GepValueVarMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00072">SVFIR.h:72</a></div></div>
788
789
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a9f7c24325d897b598d6b989fdc4aae1e"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a9f7c24325d897b598d6b989fdc4aae1e">SVF::IRGraph::getSymbolInfo</a></div><div class="ttdeci">SymbolTableInfo * getSymbolInfo() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00115">IRGraph.h:115</a></div></div>
789
790
  <div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
790
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2878e202045b7f2c817185e8bf95d354"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00401">SVFIR.h:401</a></div></div>
791
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2878e202045b7f2c817185e8bf95d354"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2878e202045b7f2c817185e8bf95d354">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(const MemObj *obj) const</div><div class="ttdoc">Get a field-insensitive obj SVFIR node according to a mem obj.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00402">SVFIR.h:402</a></div></div>
791
792
  <div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00423">SVFStatements.h:423</a></div></div>
792
793
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_acba43b6e9cdf07afaf3d30351aa8df7c"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">SVF::SymbolTableInfo::isBlkPtr</a></div><div class="ttdeci">static bool isBlkPtr(NodeID id)</div><div class="ttdoc">special value</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00153">SymbolTableInfo.h:153</a></div></div>
793
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_abd1bb12776dc9a17863a52ce2cd31958"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abd1bb12776dc9a17863a52ce2cd31958">SVF::SVFIR::getFunRets</a></div><div class="ttdeci">FunToRetMap &amp; getFunRets()</div><div class="ttdoc">Get function return list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00301">SVFIR.h:301</a></div></div>
794
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_abd1bb12776dc9a17863a52ce2cd31958"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abd1bb12776dc9a17863a52ce2cd31958">SVF::SVFIR::getFunRets</a></div><div class="ttdeci">FunToRetMap &amp; getFunRets()</div><div class="ttdoc">Get function return list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00302">SVFIR.h:302</a></div></div>
794
795
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_ad5a06a57d64c54ec6e7e92b7e0acfad8"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ad5a06a57d64c54ec6e7e92b7e0acfad8">SVF::IRGraph::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj(const SVFValue *val) const</div><div class="ttdoc">get MemObj according to LLVM value</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00099">IRGraph.h:99</a></div></div>
795
796
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_ae0a9b81717fd834bbd109c4b69aaff9d"><div class="ttname"><a href="classSVF_1_1IRGraph.html#ae0a9b81717fd834bbd109c4b69aaff9d">SVF::IRGraph::KindToPTASVFStmtSetMap</a></div><div class="ttdeci">SVFStmt::KindToSVFStmtMapTy KindToPTASVFStmtSetMap</div><div class="ttdoc">SVFIR edge map containing only pointer-related edges, i.e., both LHS and RHS are of pointer type.</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00061">IRGraph.h:61</a></div></div>
796
797
  <div class="ttc" id="aclassSVF_1_1IRGraph_html"><div class="ttname"><a href="classSVF_1_1IRGraph.html">SVF::IRGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00050">IRGraph.h:50</a></div></div>
797
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac6c537688366e73bb0ae5db49c0b2450"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">SVF::SVFIR::callSiteSet</a></div><div class="ttdeci">CallSiteSet callSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00099">SVFIR.h:99</a></div></div>
798
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_af9b5c67ca0d91ed20d6ee2d44c1acbd1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af9b5c67ca0d91ed20d6ee2d44c1acbd1">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const SVFValue *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a memory obj node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00610">SVFIR.h:610</a></div></div>
798
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac6c537688366e73bb0ae5db49c0b2450"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac6c537688366e73bb0ae5db49c0b2450">SVF::SVFIR::callSiteSet</a></div><div class="ttdeci">CallSiteSet callSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00100">SVFIR.h:100</a></div></div>
799
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_af9b5c67ca0d91ed20d6ee2d44c1acbd1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af9b5c67ca0d91ed20d6ee2d44c1acbd1">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const SVFValue *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a memory obj node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00611">SVFIR.h:611</a></div></div>
799
800
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html_a0b6c03af568b70903da6b200ac86c951"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">SVF::SVFStmt::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00061">SVFStatements.cpp:61</a></div></div>
800
801
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3837804b2622baf7e6991aa993286e9e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3837804b2622baf7e6991aa993286e9e">SVF::SVFIR::addLoadStmt</a></div><div class="ttdeci">LoadStmt * addLoadStmt(NodeID src, NodeID dst)</div><div class="ttdoc">Add Load edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00204">SVFIR.cpp:204</a></div></div>
801
802
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
802
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a292b5a477c1f87777730b591c271e523"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523">SVF::SVFIR::addToStmt2TypeMap</a></div><div class="ttdeci">void addToStmt2TypeMap(SVFStmt *edge)</div><div class="ttdoc">Map a SVFStatement type to a set of corresponding SVF statements.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00484">SVFIR.h:484</a></div></div>
803
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2b532a5db0197c579b512fbcdb4d6220"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b532a5db0197c579b512fbcdb4d6220">SVF::SVFIR::addBlackholeObjNode</a></div><div class="ttdeci">NodeID addBlackholeObjNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00583">SVFIR.h:583</a></div></div>
804
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ab6abb822445c9b3f5cb2b7206042e940"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVF::SVFIR::MemObjToFieldsMap</a></div><div class="ttdeci">Map&lt; NodeID, NodeBS &gt; MemObjToFieldsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00056">SVFIR.h:56</a></div></div>
803
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a292b5a477c1f87777730b591c271e523"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a292b5a477c1f87777730b591c271e523">SVF::SVFIR::addToStmt2TypeMap</a></div><div class="ttdeci">void addToStmt2TypeMap(SVFStmt *edge)</div><div class="ttdoc">Map a SVFStatement type to a set of corresponding SVF statements.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00485">SVFIR.h:485</a></div></div>
804
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2b532a5db0197c579b512fbcdb4d6220"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b532a5db0197c579b512fbcdb4d6220">SVF::SVFIR::addBlackholeObjNode</a></div><div class="ttdeci">NodeID addBlackholeObjNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00584">SVFIR.h:584</a></div></div>
805
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ab6abb822445c9b3f5cb2b7206042e940"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ab6abb822445c9b3f5cb2b7206042e940">SVF::SVFIR::MemObjToFieldsMap</a></div><div class="ttdeci">Map&lt; NodeID, NodeBS &gt; MemObjToFieldsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00057">SVFIR.h:57</a></div></div>
805
806
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a1791652f578b6ab8aacb4d6e7c7fd05f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1791652f578b6ab8aacb4d6e7c7fd05f">SVF::SVFIR::addRetPE</a></div><div class="ttdeci">RetPE * addRetPE(NodeID src, NodeID dst, const CallICFGNode *cs, const FunExitICFGNode *exit)</div><div class="ttdoc">Add Return edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00259">SVFIR.cpp:259</a></div></div>
806
807
  <div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00460">SVFStatements.h:460</a></div></div>
807
808
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_ae39b1a2330b157312727a560fddbd0dc"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ae39b1a2330b157312727a560fddbd0dc">SVF::SymbolTableInfo::createDummyObj</a></div><div class="ttdeci">const MemObj * createDummyObj(SymID symId, const SVFType *type)</div><div class="ttdoc">Can only be invoked by SVFIR::addDummyNode() when creating SVFIR from file.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00163">SymbolTableInfo.cpp:163</a></div></div>
808
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad7bbe1abea55ed03c9b6c81891c0bd67"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67">SVF::SVFIR::GepValObjMap</a></div><div class="ttdeci">GepValueVarMap GepValObjMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep value node id.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00081">SVFIR.h:81</a></div></div>
809
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00169">SVFIR.h:169</a></div></div>
810
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a007c86e5d2d541d08815547a5492731e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a007c86e5d2d541d08815547a5492731e">SVF::SVFIR::releaseSVFIR</a></div><div class="ttdeci">static void releaseSVFIR()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00121">SVFIR.h:121</a></div></div>
809
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad7bbe1abea55ed03c9b6c81891c0bd67"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad7bbe1abea55ed03c9b6c81891c0bd67">SVF::SVFIR::GepValObjMap</a></div><div class="ttdeci">GepValueVarMap GepValObjMap</div><div class="ttdoc">Map a pair&lt;base,off&gt; to a gep value node id.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00082">SVFIR.h:82</a></div></div>
810
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00170">SVFIR.h:170</a></div></div>
811
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a007c86e5d2d541d08815547a5492731e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a007c86e5d2d541d08815547a5492731e">SVF::SVFIR::releaseSVFIR</a></div><div class="ttdeci">static void releaseSVFIR()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00122">SVFIR.h:122</a></div></div>
811
812
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a1f77275b24345164f30d519238121f92"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a1f77275b24345164f30d519238121f92">SVF::SVFIR::addGepStmt</a></div><div class="ttdeci">GepStmt * addGepStmt(NodeID src, NodeID dst, const AccessPath &amp;ap, bool constGep)</div><div class="ttdoc">Add Gep edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00327">SVFIR.cpp:327</a></div></div>
812
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2a1e8ce39bf8deace3c344d5f05fe6ac"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">SVF::SVFIR::getCallSiteArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getCallSiteArgsList(const CallICFGNode *cs) const</div><div class="ttdoc">Get callsite argument list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00278">SVFIR.h:278</a></div></div>
813
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2a1e8ce39bf8deace3c344d5f05fe6ac"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2a1e8ce39bf8deace3c344d5f05fe6ac">SVF::SVFIR::getCallSiteArgsList</a></div><div class="ttdeci">const SVFVarList &amp; getCallSiteArgsList(const CallICFGNode *cs) const</div><div class="ttdoc">Get callsite argument list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00279">SVFIR.h:279</a></div></div>
813
814
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_ad9cdb21e20182f3bc95f04bbb97712f3"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">SVF::SymbolTableInfo::isBlkObj</a></div><div class="ttdeci">static bool isBlkObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00161">SymbolTableInfo.h:161</a></div></div>
814
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a43ffcccfd81f5400c2d4c8e4bd71bdde"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde">SVF::SVFIR::NodeOffset</a></div><div class="ttdeci">std::pair&lt; NodeID, APOffset &gt; NodeOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00067">SVFIR.h:67</a></div></div>
815
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a43ffcccfd81f5400c2d4c8e4bd71bdde"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a43ffcccfd81f5400c2d4c8e4bd71bdde">SVF::SVFIR::NodeOffset</a></div><div class="ttdeci">std::pair&lt; NodeID, APOffset &gt; NodeOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00068">SVFIR.h:68</a></div></div>
815
816
  <div class="ttc" id="aclassSVF_1_1ICFG_html_a0dca4655c2f6112a5be1f921b8e81076"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function entry node.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00268">ICFG.cpp:268</a></div></div>
816
817
  <div class="ttc" id="aclassSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01026">SVFStatements.h:1026</a></div></div>
817
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6b1bb039f068ff2ab486214354df4684"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6b1bb039f068ff2ab486214354df4684">SVF::SVFIR::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode(NodeID i)</div><div class="ttdoc">Add a dummy value/object node according to node ID (llvm value is null)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00570">SVFIR.h:570</a></div></div>
818
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00159">SVFIR.h:159</a></div></div>
819
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a8bfa675eed3c60a21134faa8e0b9e6b9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">SVF::SVFIR::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00096">SVFIR.h:96</a></div></div>
818
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6b1bb039f068ff2ab486214354df4684"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6b1bb039f068ff2ab486214354df4684">SVF::SVFIR::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode(NodeID i)</div><div class="ttdoc">Add a dummy value/object node according to node ID (llvm value is null)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00571">SVFIR.h:571</a></div></div>
819
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad6e18f520f6b559f2304002792f6b701"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad6e18f520f6b559f2304002792f6b701">SVF::SVFIR::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00160">SVFIR.h:160</a></div></div>
820
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a8bfa675eed3c60a21134faa8e0b9e6b9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8bfa675eed3c60a21134faa8e0b9e6b9">SVF::SVFIR::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00097">SVFIR.h:97</a></div></div>
820
821
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_aceae1e4e49a1d2e63ef3d71a7e5ef3eb"><div class="ttname"><a href="classSVF_1_1IRGraph.html#aceae1e4e49a1d2e63ef3d71a7e5ef3eb">SVF::IRGraph::getConstantObj</a></div><div class="ttdeci">const MemObj * getConstantObj() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00182">IRGraph.h:182</a></div></div>
821
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a86b36a618a56185809ad8aa92af80b60"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60">SVF::SVFIR::addDummyMemObj</a></div><div class="ttdeci">const MemObj * addDummyMemObj(NodeID i, const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00579">SVFIR.h:579</a></div></div>
822
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a52bea4a99022b036104751cafa9152b1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a52bea4a99022b036104751cafa9152b1">SVF::SVFIR::setModule</a></div><div class="ttdeci">void setModule(SVFModule *mod)</div><div class="ttdoc">Set/Get LLVM Module.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00155">SVFIR.h:155</a></div></div>
823
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a41abf665421dbfaef508b1eba0c91fb9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">SVF::SVFIR::phiNodeMap</a></div><div class="ttdeci">PHINodeMap phiNodeMap</div><div class="ttdoc">A set of phi copy edges.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00086">SVFIR.h:86</a></div></div>
822
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a86b36a618a56185809ad8aa92af80b60"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a86b36a618a56185809ad8aa92af80b60">SVF::SVFIR::addDummyMemObj</a></div><div class="ttdeci">const MemObj * addDummyMemObj(NodeID i, const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00580">SVFIR.h:580</a></div></div>
823
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a52bea4a99022b036104751cafa9152b1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a52bea4a99022b036104751cafa9152b1">SVF::SVFIR::setModule</a></div><div class="ttdeci">void setModule(SVFModule *mod)</div><div class="ttdoc">Set/Get LLVM Module.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00156">SVFIR.h:156</a></div></div>
824
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a41abf665421dbfaef508b1eba0c91fb9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a41abf665421dbfaef508b1eba0c91fb9">SVF::SVFIR::phiNodeMap</a></div><div class="ttdeci">PHINodeMap phiNodeMap</div><div class="ttdoc">A set of phi copy edges.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00087">SVFIR.h:87</a></div></div>
824
825
  <div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
825
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a32f7ac512aa8d34923dabfe0f0867fca"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">SVF::SVFIR::CSToArgsListMap</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, SVFVarList &gt; CSToArgsListMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00061">SVFIR.h:61</a></div></div>
826
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_af298651d6ef2030ca13ae6a9db622eb4"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af298651d6ef2030ca13ae6a9db622eb4">SVF::SVFIR::addValNode</a></div><div class="ttdeci">NodeID addValNode(const SVFValue *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a value (pointer) node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00602">SVFIR.h:602</a></div></div>
826
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a32f7ac512aa8d34923dabfe0f0867fca"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a32f7ac512aa8d34923dabfe0f0867fca">SVF::SVFIR::CSToArgsListMap</a></div><div class="ttdeci">Map&lt; const CallICFGNode *, SVFVarList &gt; CSToArgsListMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00062">SVFIR.h:62</a></div></div>
827
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_af298651d6ef2030ca13ae6a9db622eb4"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af298651d6ef2030ca13ae6a9db622eb4">SVF::SVFIR::addValNode</a></div><div class="ttdeci">NodeID addValNode(const SVFValue *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a value (pointer) node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00603">SVFIR.h:603</a></div></div>
827
828
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a685f1a8a35aa5dc9c298e3b0e2ccf007"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a685f1a8a35aa5dc9c298e3b0e2ccf007">SVF::IRGraph::addNode</a></div><div class="ttdeci">NodeID addNode(SVFVar *node, NodeID i)</div><div class="ttdoc">Add a node into the graph.</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00069">IRGraph.h:69</a></div></div>
828
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2b237e55fd8d7fd61eb3ac6968e4a76e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">SVF::SVFIR::CallSiteSet</a></div><div class="ttdeci">Set&lt; const CallICFGNode * &gt; CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00053">SVFIR.h:53</a></div></div>
829
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad0977d55d947bdccd98d61c66d3f0cc7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad0977d55d947bdccd98d61c66d3f0cc7">SVF::SVFIR::getGepValVar</a></div><div class="ttdeci">NodeID getGepValVar(const SVFValue *curInst, NodeID base, const AccessPath &amp;ap) const</div><div class="ttdoc">Due to constraint expression, curInst is used to distinguish different instructions (e....</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00538">SVFIR.cpp:538</a></div></div>
829
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2b237e55fd8d7fd61eb3ac6968e4a76e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2b237e55fd8d7fd61eb3ac6968e4a76e">SVF::SVFIR::CallSiteSet</a></div><div class="ttdeci">Set&lt; const CallICFGNode * &gt; CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00054">SVFIR.h:54</a></div></div>
830
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad0977d55d947bdccd98d61c66d3f0cc7"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad0977d55d947bdccd98d61c66d3f0cc7">SVF::SVFIR::getGepValVar</a></div><div class="ttdeci">NodeID getGepValVar(const SVFValue *curInst, NodeID base, const AccessPath &amp;ap) const</div><div class="ttdoc">Due to constraint expression, curInst is used to distinguish different instructions (e....</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00540">SVFIR.cpp:540</a></div></div>
830
831
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a9f68ffe75e3d9457092ac2368aa08a27"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a9f68ffe75e3d9457092ac2368aa08a27">SVF::IRGraph::totalPTAPAGEdge</a></div><div class="ttdeci">u32_t totalPTAPAGEdge</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00064">IRGraph.h:64</a></div></div>
831
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a72efebdfe007ec8c515967ede76b6ce0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a72efebdfe007ec8c515967ede76b6ce0">SVF::SVFIR::addCallSiteRets</a></div><div class="ttdeci">void addCallSiteRets(RetICFGNode *retBlockNode, const SVFVar *arg)</div><div class="ttdoc">Add callsite returns.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00518">SVFIR.h:518</a></div></div>
832
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a72efebdfe007ec8c515967ede76b6ce0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a72efebdfe007ec8c515967ede76b6ce0">SVF::SVFIR::addCallSiteRets</a></div><div class="ttdeci">void addCallSiteRets(RetICFGNode *retBlockNode, const SVFVar *arg)</div><div class="ttdoc">Add callsite returns.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00519">SVFIR.h:519</a></div></div>
832
833
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph&lt; SVFVar, SVFStmt &gt;::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00414">GenericGraph.h:414</a></div></div>
833
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a20ded5829d5975dfaca33f9c64113fe6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const SVFValue *val, NodeID i)</div><div class="ttdoc">Add a memory obj node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00541">SVFIR.h:541</a></div></div>
834
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a20ded5829d5975dfaca33f9c64113fe6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a20ded5829d5975dfaca33f9c64113fe6">SVF::SVFIR::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const SVFValue *val, NodeID i)</div><div class="ttdoc">Add a memory obj node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00542">SVFIR.h:542</a></div></div>
834
835
  <div class="ttc" id="aclassSVF_1_1FunExitICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html">SVF::FunExitICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00324">ICFGNode.h:324</a></div></div>
835
836
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_ae18425df0631aefca7dd4b799f6f524a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const APOffset &amp;ap)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00422">SVFIR.cpp:422</a></div></div>
836
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00290">SVFIR.h:290</a></div></div>
837
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6ade5bf3edc7b6c3faafc3e5ff3d0538"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6ade5bf3edc7b6c3faafc3e5ff3d0538">SVF::SVFIR::addVarargNode</a></div><div class="ttdeci">NodeID addVarargNode(const SVFFunction *val, NodeID i)</div><div class="ttdoc">Add a unique vararg node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00554">SVFIR.h:554</a></div></div>
838
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5de67390d38bfacd5b63b776a0ecbfff"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">SVF::SVFIR::isPhiNode</a></div><div class="ttdeci">bool isPhiNode(const SVFVar *node) const</div><div class="ttdoc">Whether this SVFVar is a result operand a of phi node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00245">SVFIR.h:245</a></div></div>
839
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a0552d565633ee22abe03085134a871c0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0">SVF::SVFIR::hasPTASVFStmtList</a></div><div class="ttdeci">bool hasPTASVFStmtList(const ICFGNode *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00201">SVFIR.h:201</a></div></div>
840
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad74ca54e6d62d4410038ef900ea8f150"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150">SVF::SVFIR::TypeLocSetsMap</a></div><div class="ttdeci">Map&lt; NodeID, SVFTypeLocSetsPair &gt; TypeLocSetsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00073">SVFIR.h:73</a></div></div>
837
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3145677c7a3763fc0d6aa7e21b264ab6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3145677c7a3763fc0d6aa7e21b264ab6">SVF::SVFIR::getCallSiteRet</a></div><div class="ttdeci">const SVFVar * getCallSiteRet(const RetICFGNode *cs) const</div><div class="ttdoc">Get callsite return.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00291">SVFIR.h:291</a></div></div>
838
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6ade5bf3edc7b6c3faafc3e5ff3d0538"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6ade5bf3edc7b6c3faafc3e5ff3d0538">SVF::SVFIR::addVarargNode</a></div><div class="ttdeci">NodeID addVarargNode(const SVFFunction *val, NodeID i)</div><div class="ttdoc">Add a unique vararg node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00555">SVFIR.h:555</a></div></div>
839
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a5de67390d38bfacd5b63b776a0ecbfff"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a5de67390d38bfacd5b63b776a0ecbfff">SVF::SVFIR::isPhiNode</a></div><div class="ttdeci">bool isPhiNode(const SVFVar *node) const</div><div class="ttdoc">Whether this SVFVar is a result operand a of phi node.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00246">SVFIR.h:246</a></div></div>
840
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a0552d565633ee22abe03085134a871c0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0552d565633ee22abe03085134a871c0">SVF::SVFIR::hasPTASVFStmtList</a></div><div class="ttdeci">bool hasPTASVFStmtList(const ICFGNode *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00202">SVFIR.h:202</a></div></div>
841
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad74ca54e6d62d4410038ef900ea8f150"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad74ca54e6d62d4410038ef900ea8f150">SVF::SVFIR::TypeLocSetsMap</a></div><div class="ttdeci">Map&lt; NodeID, SVFTypeLocSetsPair &gt; TypeLocSetsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00074">SVFIR.h:74</a></div></div>
841
842
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a955a2f93cf9eef857e40f19bc24edb2f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a955a2f93cf9eef857e40f19bc24edb2f">SVF::SVFIR::addBinaryOPStmt</a></div><div class="ttdeci">BinaryOPStmt * addBinaryOPStmt(NodeID op1, NodeID op2, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Copy edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00148">SVFIR.cpp:148</a></div></div>
842
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a25b86c16d11b4d50ccc28ead525687ae"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a25b86c16d11b4d50ccc28ead525687ae">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(const ObjVar *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00389">SVFIR.h:389</a></div></div>
843
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a25b86c16d11b4d50ccc28ead525687ae"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a25b86c16d11b4d50ccc28ead525687ae">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(const ObjVar *node) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00390">SVFIR.h:390</a></div></div>
843
844
  <div class="ttc" id="aclassSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00047">ICFG.h:47</a></div></div>
844
845
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_abf511f82cdbf7a6d9b6da167aee57636"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abf511f82cdbf7a6d9b6da167aee57636">SVF::SVFIR::SVFIR</a></div><div class="ttdeci">SVFIR(bool buildFromFile)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00039">SVFIR.cpp:39</a></div></div>
845
846
  <div class="ttc" id="aclassSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00353">SVFVariables.h:353</a></div></div>
846
- <div class="ttc" id="aclassSVF_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#l00187">SVFIR.h:187</a></div></div>
847
+ <div class="ttc" id="aclassSVF_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#l00188">SVFIR.h:188</a></div></div>
847
848
  <div class="ttc" id="aclassSVF_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>
848
849
  <div class="ttc" id="aclassSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01183">SVFStatements.h:1183</a></div></div>
849
850
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a3db2c4e2823f16d78c86596da284acd1"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3db2c4e2823f16d78c86596da284acd1">SVF::IRGraph::KindToSVFStmtSetMap</a></div><div class="ttdeci">SVFStmt::KindToSVFStmtMapTy KindToSVFStmtSetMap</div><div class="ttdoc">SVFIR edge map containing all PAGEdges.</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00060">IRGraph.h:60</a></div></div>
850
851
  <div class="ttc" id="aclassSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01093">SVFStatements.h:1093</a></div></div>
851
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a64939d7ecfd8e2cf862782954a56596b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVF::SVFIR::SVFVarList</a></div><div class="ttdeci">std::vector&lt; const SVFVar * &gt; SVFVarList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00058">SVFIR.h:58</a></div></div>
852
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a64939d7ecfd8e2cf862782954a56596b"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a64939d7ecfd8e2cf862782954a56596b">SVF::SVFIR::SVFVarList</a></div><div class="ttdeci">std::vector&lt; const SVFVar * &gt; SVFVarList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00059">SVFIR.h:59</a></div></div>
852
853
  <div class="ttc" id="aclassSVF_1_1RetPN_html"><div class="ttname"><a href="classSVF_1_1RetPN.html">SVF::RetPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00580">SVFVariables.h:580</a></div></div>
853
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00475">SVFIR.cpp:475</a></div></div>
854
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ab715a8e83a4ec45fb86298fef3eda95a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ab715a8e83a4ec45fb86298fef3eda95a">SVF::SVFIR::NodePairSetMap</a></div><div class="ttdeci">Map&lt; NodePair, NodeID &gt; NodePairSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00074">SVFIR.h:74</a></div></div>
855
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a4666dabcbeb3f40f96a0694ce2f07eb0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">SVF::SVFIR::ICFGNode2SVFStmtsMap</a></div><div class="ttdeci">Map&lt; const ICFGNode *, SVFStmtList &gt; ICFGNode2SVFStmtsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00065">SVFIR.h:65</a></div></div>
856
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a18ca66c199b910b15f1bfa77dcc98c30"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30">SVF::SVFIR::isNullPtr</a></div><div class="ttdeci">bool isNullPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00417">SVFIR.h:417</a></div></div>
857
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac1674bd25a17cae24141e6bff24a411e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">SVF::SVFIR::getGepObjNodeMap</a></div><div class="ttdeci">NodeOffsetMap &amp; getGepObjNodeMap()</div><div class="ttdoc">Return GepObjVarMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00132">SVFIR.h:132</a></div></div>
858
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa79dba26cb34b40eee682713db299d5f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">SVF::SVFIR::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00296">SVFIR.h:296</a></div></div>
859
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00381">SVFIR.h:381</a></div></div>
854
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7276e82b4648ed0e1b3d1b8b37b24089"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7276e82b4648ed0e1b3d1b8b37b24089">SVF::SVFIR::getAllFieldsObjVars</a></div><div class="ttdeci">NodeBS &amp; getAllFieldsObjVars(const MemObj *obj)</div><div class="ttdoc">Get all fields of an object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00477">SVFIR.cpp:477</a></div></div>
855
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a685991a5dec8a17fe73b3161fdb9ea7e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a685991a5dec8a17fe73b3161fdb9ea7e">SVF::SVFIR::addGepObjNode</a></div><div class="ttdeci">NodeID addGepObjNode(const MemObj *obj, const APOffset &amp;apOffset, const NodeID gepId)</div><div class="ttdoc">Add a field obj node, this method can only invoked by getGepObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00449">SVFIR.cpp:449</a></div></div>
856
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ab715a8e83a4ec45fb86298fef3eda95a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ab715a8e83a4ec45fb86298fef3eda95a">SVF::SVFIR::NodePairSetMap</a></div><div class="ttdeci">Map&lt; NodePair, NodeID &gt; NodePairSetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00075">SVFIR.h:75</a></div></div>
857
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a4666dabcbeb3f40f96a0694ce2f07eb0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">SVF::SVFIR::ICFGNode2SVFStmtsMap</a></div><div class="ttdeci">Map&lt; const ICFGNode *, SVFStmtList &gt; ICFGNode2SVFStmtsMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00066">SVFIR.h:66</a></div></div>
858
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a18ca66c199b910b15f1bfa77dcc98c30"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a18ca66c199b910b15f1bfa77dcc98c30">SVF::SVFIR::isNullPtr</a></div><div class="ttdeci">bool isNullPtr(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00418">SVFIR.h:418</a></div></div>
859
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac1674bd25a17cae24141e6bff24a411e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">SVF::SVFIR::getGepObjNodeMap</a></div><div class="ttdeci">NodeOffsetMap &amp; getGepObjNodeMap()</div><div class="ttdoc">Return GepObjVarMap.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00133">SVFIR.h:133</a></div></div>
860
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa79dba26cb34b40eee682713db299d5f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa79dba26cb34b40eee682713db299d5f">SVF::SVFIR::callsiteHasRet</a></div><div class="ttdeci">bool callsiteHasRet(const RetICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00297">SVFIR.h:297</a></div></div>
861
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a2dd4d5f704906270af13e7a07f900eb1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a2dd4d5f704906270af13e7a07f900eb1">SVF::SVFIR::getObject</a></div><div class="ttdeci">const MemObj * getObject(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00382">SVFIR.h:382</a></div></div>
860
862
  <div class="ttc" id="anamespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
861
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad9895f2d075eb402390e3b01ed68e001"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">SVF::SVFIR::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00421">SVFIR.h:421</a></div></div>
862
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa7e98cd2fd599aedefa4c2e6fb659da0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">SVF::SVFIR::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00463">SVFIR.h:463</a></div></div>
863
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a11ab07f48c934f45c239393332aa60e1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">SVF::SVFIR::callSiteRetMap</a></div><div class="ttdeci">CSToRetMap callSiteRetMap</div><div class="ttdoc">Map a callsite to its callsite returns PAGNodes.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00089">SVFIR.h:89</a></div></div>
863
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ad9895f2d075eb402390e3b01ed68e001"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ad9895f2d075eb402390e3b01ed68e001">SVF::SVFIR::isBlkObjOrConstantObj</a></div><div class="ttdeci">bool isBlkObjOrConstantObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00422">SVFIR.h:422</a></div></div>
864
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa7e98cd2fd599aedefa4c2e6fb659da0"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa7e98cd2fd599aedefa4c2e6fb659da0">SVF::SVFIR::addDummyValNode</a></div><div class="ttdeci">NodeID addDummyValNode()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00464">SVFIR.h:464</a></div></div>
865
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a11ab07f48c934f45c239393332aa60e1"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a11ab07f48c934f45c239393332aa60e1">SVF::SVFIR::callSiteRetMap</a></div><div class="ttdeci">CSToRetMap callSiteRetMap</div><div class="ttdoc">Map a callsite to its callsite returns PAGNodes.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00090">SVFIR.h:90</a></div></div>
864
866
  <div class="ttc" id="aclassSVF_1_1DummyObjVar_html"><div class="ttname"><a href="classSVF_1_1DummyObjVar.html">SVF::DummyObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00708">SVFVariables.h:708</a></div></div>
865
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a756ae2b40ec29f2f92c95919f615e5ec"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a756ae2b40ec29f2f92c95919f615e5ec">SVF::SVFIR::setICFG</a></div><div class="ttdeci">void setICFG(ICFG *i)</div><div class="ttdoc">Set/Get ICFG.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00165">SVFIR.h:165</a></div></div>
867
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a756ae2b40ec29f2f92c95919f615e5ec"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a756ae2b40ec29f2f92c95919f615e5ec">SVF::SVFIR::setICFG</a></div><div class="ttdeci">void setICFG(ICFG *i)</div><div class="ttdoc">Set/Get ICFG.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00166">SVFIR.h:166</a></div></div>
866
868
  <div class="ttc" id="aclassSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
867
869
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a0814a6a71c4a8f08253bf16ad1ba5dc5"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a0814a6a71c4a8f08253bf16ad1ba5dc5">SVF::SVFIR::addVariantGepStmt</a></div><div class="ttdeci">GepStmt * addVariantGepStmt(NodeID src, NodeID dst, const AccessPath &amp;ap)</div><div class="ttdoc">Add Variant(Gep) edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00365">SVFIR.cpp:365</a></div></div>
868
870
  <div class="ttc" id="aclassSVF_1_1SVFIRReader_html"><div class="ttname"><a href="classSVF_1_1SVFIRReader.html">SVF::SVFIRReader</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFFileSystem_8h_source.html#l01033">SVFFileSystem.h:1033</a></div></div>
869
- <div class="ttc" id="anamespaceSVF_html_ac47d39fb505e8ed8d2c6b6b318be5f4d"><div class="ttname"><a href="namespaceSVF.html#ac47d39fb505e8ed8d2c6b6b318be5f4d">SVF::PAG</a></div><div class="ttdeci">SVFIR PAG</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00687">SVFIR.h:687</a></div></div>
870
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a77b75d80a1af46aed3b6130d206ad236"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77b75d80a1af46aed3b6130d206ad236">SVF::SVFIR::NodeAccessPathMap</a></div><div class="ttdeci">Map&lt; NodeAccessPath, NodeID &gt; NodeAccessPathMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00070">SVFIR.h:70</a></div></div>
871
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a864c465fbfdbbbdcc7fc8bbe26737903"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">SVF::SVFIR::funArgsListMap</a></div><div class="ttdeci">FunToArgsListMap funArgsListMap</div><div class="ttdoc">Map a function to a list of all its formal parameters.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00087">SVFIR.h:87</a></div></div>
872
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a51bf00bfd1d32ea8a4a280cf99725d7d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">SVF::SVFIR::CallSiteToFunPtrMap</a></div><div class="ttdeci">OrderedMap&lt; const CallICFGNode *, NodeID &gt; CallSiteToFunPtrMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00054">SVFIR.h:54</a></div></div>
871
+ <div class="ttc" id="anamespaceSVF_html_ac47d39fb505e8ed8d2c6b6b318be5f4d"><div class="ttname"><a href="namespaceSVF.html#ac47d39fb505e8ed8d2c6b6b318be5f4d">SVF::PAG</a></div><div class="ttdeci">SVFIR PAG</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00688">SVFIR.h:688</a></div></div>
872
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a77b75d80a1af46aed3b6130d206ad236"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a77b75d80a1af46aed3b6130d206ad236">SVF::SVFIR::NodeAccessPathMap</a></div><div class="ttdeci">Map&lt; NodeAccessPath, NodeID &gt; NodeAccessPathMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00071">SVFIR.h:71</a></div></div>
873
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a864c465fbfdbbbdcc7fc8bbe26737903"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a864c465fbfdbbbdcc7fc8bbe26737903">SVF::SVFIR::funArgsListMap</a></div><div class="ttdeci">FunToArgsListMap funArgsListMap</div><div class="ttdoc">Map a function to a list of all its formal parameters.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00088">SVFIR.h:88</a></div></div>
874
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a51bf00bfd1d32ea8a4a280cf99725d7d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a51bf00bfd1d32ea8a4a280cf99725d7d">SVF::SVFIR::CallSiteToFunPtrMap</a></div><div class="ttdeci">OrderedMap&lt; const CallICFGNode *, NodeID &gt; CallSiteToFunPtrMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00055">SVFIR.h:55</a></div></div>
873
875
  <div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
874
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa0920f5f967efdb89e23f12d31b112a2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">SVF::SVFIR::callSiteArgsListMap</a></div><div class="ttdeci">CSToArgsListMap callSiteArgsListMap</div><div class="ttdoc">Map a callsite to a list of all its actual parameters.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00088">SVFIR.h:88</a></div></div>
875
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a63ede1d8d381b91f81b93965dcffa288"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">SVF::SVFIR::typeLocSetsMap</a></div><div class="ttdeci">TypeLocSetsMap typeLocSetsMap</div><div class="ttdoc">Map an arg to its base SVFType* and all its field location sets.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00082">SVFIR.h:82</a></div></div>
876
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a078c01295f47bf12f1a2b8abfab8b28d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a078c01295f47bf12f1a2b8abfab8b28d">SVF::SVFIR::addVarargNode</a></div><div class="ttdeci">NodeID addVarargNode(const SVFFunction *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a unique vararg node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00623">SVFIR.h:623</a></div></div>
877
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a17c5d9fa7c0bd3cd03c06b5ff0906eb6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">SVF::SVFIR::getFunPtr</a></div><div class="ttdeci">NodeID getFunPtr(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00340">SVFIR.h:340</a></div></div>
878
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a9d0e3d8483302543faa8d1556d2c567d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9d0e3d8483302543faa8d1556d2c567d">SVF::SVFIR::addToTypeLocSetsMap</a></div><div class="ttdeci">void addToTypeLocSetsMap(NodeID argId, SVFTypeLocSetsPair &amp;locSets)</div><div class="ttdoc">Add a base SVFType* and all its field location sets to an arg NodeId.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00225">SVFIR.h:225</a></div></div>
879
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_abd9f622b55839d6796ca2576f2323498"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abd9f622b55839d6796ca2576f2323498">SVF::SVFIR::candidatePointers</a></div><div class="ttdeci">OrderedNodeSet candidatePointers</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00095">SVFIR.h:95</a></div></div>
876
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_aa0920f5f967efdb89e23f12d31b112a2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#aa0920f5f967efdb89e23f12d31b112a2">SVF::SVFIR::callSiteArgsListMap</a></div><div class="ttdeci">CSToArgsListMap callSiteArgsListMap</div><div class="ttdoc">Map a callsite to a list of all its actual parameters.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00089">SVFIR.h:89</a></div></div>
877
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a63ede1d8d381b91f81b93965dcffa288"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a63ede1d8d381b91f81b93965dcffa288">SVF::SVFIR::typeLocSetsMap</a></div><div class="ttdeci">TypeLocSetsMap typeLocSetsMap</div><div class="ttdoc">Map an arg to its base SVFType* and all its field location sets.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00083">SVFIR.h:83</a></div></div>
878
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a078c01295f47bf12f1a2b8abfab8b28d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a078c01295f47bf12f1a2b8abfab8b28d">SVF::SVFIR::addVarargNode</a></div><div class="ttdeci">NodeID addVarargNode(const SVFFunction *, SVFVar *node, NodeID i)</div><div class="ttdoc">Add a unique vararg node for a procedure.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00624">SVFIR.h:624</a></div></div>
879
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a17c5d9fa7c0bd3cd03c06b5ff0906eb6"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a17c5d9fa7c0bd3cd03c06b5ff0906eb6">SVF::SVFIR::getFunPtr</a></div><div class="ttdeci">NodeID getFunPtr(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00341">SVFIR.h:341</a></div></div>
880
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a9d0e3d8483302543faa8d1556d2c567d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a9d0e3d8483302543faa8d1556d2c567d">SVF::SVFIR::addToTypeLocSetsMap</a></div><div class="ttdeci">void addToTypeLocSetsMap(NodeID argId, SVFTypeLocSetsPair &amp;locSets)</div><div class="ttdoc">Add a base SVFType* and all its field location sets to an arg NodeId.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00226">SVFIR.h:226</a></div></div>
881
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_abd9f622b55839d6796ca2576f2323498"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abd9f622b55839d6796ca2576f2323498">SVF::SVFIR::candidatePointers</a></div><div class="ttdeci">OrderedNodeSet candidatePointers</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00096">SVFIR.h:96</a></div></div>
880
882
  <div class="ttc" id="aclassSVF_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#l00380">SymbolTableInfo.h:380</a></div></div>
881
883
  <div class="ttc" id="aclassSVF_1_1VarArgPN_html"><div class="ttname"><a href="classSVF_1_1VarArgPN.html">SVF::VarArgPN</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00624">SVFVariables.h:624</a></div></div>
882
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a98fa25e2b185365e8f1162610c96db4e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">SVF::SVFIR::pag</a></div><div class="ttdeci">static std::unique_ptr&lt; SVFIR &gt; pag</div><div class="ttdoc">all the callsites of a program</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00101">SVFIR.h:101</a></div></div>
883
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a35af1a212273ae32651a88b1ed032700"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a35af1a212273ae32651a88b1ed032700">SVF::SVFIR::addDummyObjNode</a></div><div class="ttdeci">NodeID addDummyObjNode(NodeID i, const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00574">SVFIR.h:574</a></div></div>
884
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_abe8aa0d325b35dd59ce4a7f302760e51"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">SVF::SVFIR::icfg</a></div><div class="ttdeci">ICFG * icfg</div><div class="ttdoc">SVF Module.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00097">SVFIR.h:97</a></div></div>
884
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a98fa25e2b185365e8f1162610c96db4e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a98fa25e2b185365e8f1162610c96db4e">SVF::SVFIR::pag</a></div><div class="ttdeci">static std::unique_ptr&lt; SVFIR &gt; pag</div><div class="ttdoc">all the callsites of a program</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00102">SVFIR.h:102</a></div></div>
885
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a35af1a212273ae32651a88b1ed032700"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a35af1a212273ae32651a88b1ed032700">SVF::SVFIR::addDummyObjNode</a></div><div class="ttdeci">NodeID addDummyObjNode(NodeID i, const SVFType *type)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00575">SVFIR.h:575</a></div></div>
886
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_abe8aa0d325b35dd59ce4a7f302760e51"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abe8aa0d325b35dd59ce4a7f302760e51">SVF::SVFIR::icfg</a></div><div class="ttdeci">ICFG * icfg</div><div class="ttdoc">SVF Module.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00098">SVFIR.h:98</a></div></div>
885
887
  <div class="ttc" id="aclassSVF_1_1PAGBuilderFromFile_html"><div class="ttname"><a href="classSVF_1_1PAGBuilderFromFile.html">SVF::PAGBuilderFromFile</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilderFromFile_8h_source.html#l00041">PAGBuilderFromFile.h:41</a></div></div>
886
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00448">SVFIR.h:448</a></div></div>
888
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_af76a55c3b8255a81a566bdce35ffc749"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af76a55c3b8255a81a566bdce35ffc749">SVF::SVFIR::getBaseObj</a></div><div class="ttdeci">const MemObj * getBaseObj(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00449">SVFIR.h:449</a></div></div>
887
889
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7eb14738f0cf08cc8b5c623c953db4ba"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7eb14738f0cf08cc8b5c623c953db4ba">SVF::SVFIR::addCmpStmt</a></div><div class="ttdeci">CmpStmt * addCmpStmt(NodeID op1, NodeID op2, NodeID dst, u32_t predict)</div><div class="ttdoc">Add Copy edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00127">SVFIR.cpp:127</a></div></div>
888
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7e8059ebd9bdeed8891fb231d148316d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7e8059ebd9bdeed8891fb231d148316d">SVF::SVFIR::getCHG</a></div><div class="ttdeci">CommonCHGraph * getCHG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00179">SVFIR.h:179</a></div></div>
889
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac9f860028c8cbd364720888084701628"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac9f860028c8cbd364720888084701628">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00405">SVFIR.h:405</a></div></div>
890
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6bc360d2604ae4a0af74530b263b10d9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVF::SVFIR::SVFStmtList</a></div><div class="ttdeci">std::vector&lt; const SVFStmt * &gt; SVFStmtList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00057">SVFIR.h:57</a></div></div>
890
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a7e8059ebd9bdeed8891fb231d148316d"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a7e8059ebd9bdeed8891fb231d148316d">SVF::SVFIR::getCHG</a></div><div class="ttdeci">CommonCHGraph * getCHG()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00180">SVFIR.h:180</a></div></div>
891
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_ac9f860028c8cbd364720888084701628"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ac9f860028c8cbd364720888084701628">SVF::SVFIR::getFIObjVar</a></div><div class="ttdeci">NodeID getFIObjVar(NodeID id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00406">SVFIR.h:406</a></div></div>
892
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a6bc360d2604ae4a0af74530b263b10d9"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a6bc360d2604ae4a0af74530b263b10d9">SVF::SVFIR::SVFStmtList</a></div><div class="ttdeci">std::vector&lt; const SVFStmt * &gt; SVFStmtList</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00058">SVFIR.h:58</a></div></div>
891
893
  <div class="ttc" id="acJSON_8h_html_a1a175e87536301df98c805ac0636ad7c"><div class="ttname"><a href="cJSON_8h.html#a1a175e87536301df98c805ac0636ad7c">b</a></div><div class="ttdeci">const cJSON *const b</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00255">cJSON.h:255</a></div></div>
892
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a34e27b8bcfeaafda190dcdb9169a346f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">SVF::SVFIR::getFunRet</a></div><div class="ttdeci">const SVFVar * getFunRet(const SVFFunction *func) const</div><div class="ttdoc">Get function return list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00306">SVFIR.h:306</a></div></div>
894
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a34e27b8bcfeaafda190dcdb9169a346f"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a34e27b8bcfeaafda190dcdb9169a346f">SVF::SVFIR::getFunRet</a></div><div class="ttdeci">const SVFVar * getFunRet(const SVFFunction *func) const</div><div class="ttdoc">Get function return list.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00307">SVFIR.h:307</a></div></div>
893
895
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a8abc436992aa3b6b636084ff5f9a8ef2"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a8abc436992aa3b6b636084ff5f9a8ef2">SVF::SVFIR::addUnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt * addUnaryOPStmt(NodeID src, NodeID dst, u32_t opcode)</div><div class="ttdoc">Add Unary edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00168">SVFIR.cpp:168</a></div></div>
894
896
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
895
- <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3c7f0dff03671f71e0a453a4de722681"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">SVF::SVFIR::CSToRetMap</a></div><div class="ttdeci">Map&lt; const RetICFGNode *, const SVFVar * &gt; CSToRetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00062">SVFIR.h:62</a></div></div>
897
+ <div class="ttc" id="aclassSVF_1_1SVFIR_html_a3c7f0dff03671f71e0a453a4de722681"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a3c7f0dff03671f71e0a453a4de722681">SVF::SVFIR::CSToRetMap</a></div><div class="ttdeci">Map&lt; const RetICFGNode *, const SVFVar * &gt; CSToRetMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00063">SVFIR.h:63</a></div></div>
896
898
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_af9804d78e4158d3c8961e1f84bbef91e"><div class="ttname"><a href="classSVF_1_1SVFIR.html#af9804d78e4158d3c8961e1f84bbef91e">SVF::SVFIR::addStoreStmt</a></div><div class="ttdeci">StoreStmt * addStoreStmt(NodeID src, NodeID dst, const IntraICFGNode *val)</div><div class="ttdoc">Add Store edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00223">SVFIR.cpp:223</a></div></div>
897
899
  <div class="ttc" id="aclassSVF_1_1DummyValVar_html"><div class="ttname"><a href="classSVF_1_1DummyValVar.html">SVF::DummyValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00668">SVFVariables.h:668</a></div></div>
898
900
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a574bd5c9f11681c70db29c25f25a4cba"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a574bd5c9f11681c70db29c25f25a4cba">SVF::SVFIR::addCallPE</a></div><div class="ttdeci">CallPE * addCallPE(NodeID src, NodeID dst, const CallICFGNode *cs, const FunEntryICFGNode *entry)</div><div class="ttdoc">Add Call edge.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00241">SVFIR.cpp:241</a></div></div>