svf-tools 1.0.356 → 1.0.360

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 (215) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
  5. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +7 -7
  6. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  7. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
  8. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +6 -6
  9. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
  10. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  11. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  12. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -4
  15. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +7 -7
  16. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  17. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +17 -17
  18. package/SVF-doxygen/html/html/ICFG_8h_source.html +17 -18
  19. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
  21. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +3 -3
  22. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
  23. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
  24. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
  27. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +10 -10
  29. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  30. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  31. package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  33. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +15 -15
  34. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
  35. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +8 -8
  36. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
  37. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  38. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +5 -5
  39. package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
  40. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +7 -7
  41. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +12 -12
  42. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +20 -20
  43. package/SVF-doxygen/html/html/SVFIR_8h_source.html +18 -18
  44. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +91 -89
  47. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +5 -5
  48. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +22 -22
  50. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
  51. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +52 -50
  52. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +86 -83
  53. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/TCT_8h_source.html +2 -2
  55. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  56. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  57. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
  58. package/SVF-doxygen/html/html/VFGNode_8h_source.html +7 -7
  59. package/SVF-doxygen/html/html/VFG_8cpp_source.html +17 -17
  60. package/SVF-doxygen/html/html/VFG_8h_source.html +16 -16
  61. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  62. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  64. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -2
  65. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
  66. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +15 -15
  67. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +32 -32
  68. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  70. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
  71. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +6 -6
  73. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +15 -15
  74. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +16 -16
  75. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +7 -7
  76. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +4 -4
  77. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
  79. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  80. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
  81. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
  82. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +2 -2
  83. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +4 -4
  84. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +7 -5
  85. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +80 -12
  86. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
  87. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +234 -234
  88. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +3 -3
  89. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +48 -51
  90. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
  91. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +18 -18
  92. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  94. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +27 -29
  95. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +8 -8
  96. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
  97. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
  98. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +16 -16
  99. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +2 -2
  100. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +87 -87
  101. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +6 -6
  102. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +25 -25
  103. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +99 -99
  104. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  105. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  106. package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
  107. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +9 -9
  108. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +16 -16
  109. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +15 -15
  110. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +11 -11
  111. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +5 -5
  113. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +15 -15
  114. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +13 -13
  115. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
  116. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +33 -33
  117. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +38 -38
  118. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1StInfo-members.html +20 -15
  121. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +239 -89
  122. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +35 -35
  123. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +6 -4
  124. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +178 -130
  125. package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +12 -12
  127. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +9 -9
  128. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +9 -9
  129. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  130. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +2 -2
  131. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +4 -4
  132. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +20 -20
  133. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +31 -31
  134. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  135. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
  136. package/SVF-doxygen/html/html/functions_a.html +13 -13
  137. package/SVF-doxygen/html/html/functions_e.html +3 -0
  138. package/SVF-doxygen/html/html/functions_f.html +15 -20
  139. package/SVF-doxygen/html/html/functions_func.html +13 -13
  140. package/SVF-doxygen/html/html/functions_func_g.html +49 -47
  141. package/SVF-doxygen/html/html/functions_func_i.html +9 -8
  142. package/SVF-doxygen/html/html/functions_func_s.html +8 -5
  143. package/SVF-doxygen/html/html/functions_g.html +50 -48
  144. package/SVF-doxygen/html/html/functions_i.html +15 -14
  145. package/SVF-doxygen/html/html/functions_l.html +6 -6
  146. package/SVF-doxygen/html/html/functions_n.html +6 -0
  147. package/SVF-doxygen/html/html/functions_p.html +9 -9
  148. package/SVF-doxygen/html/html/functions_r.html +2 -4
  149. package/SVF-doxygen/html/html/functions_s.html +22 -19
  150. package/SVF-doxygen/html/html/functions_t.html +7 -7
  151. package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
  152. package/SVF-doxygen/html/html/functions_vars_f.html +0 -3
  153. package/SVF-doxygen/html/html/functions_vars_n.html +6 -0
  154. package/SVF-doxygen/html/html/search/all_1.js +6 -6
  155. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  156. package/SVF-doxygen/html/html/search/all_12.js +2 -2
  157. package/SVF-doxygen/html/html/search/all_13.js +9 -8
  158. package/SVF-doxygen/html/html/search/all_14.js +4 -4
  159. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  160. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  161. package/SVF-doxygen/html/html/search/all_5.js +1 -0
  162. package/SVF-doxygen/html/html/search/all_6.js +0 -1
  163. package/SVF-doxygen/html/html/search/all_7.js +19 -20
  164. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  165. package/SVF-doxygen/html/html/search/all_c.js +2 -2
  166. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  167. package/SVF-doxygen/html/html/search/all_e.js +4 -2
  168. package/SVF-doxygen/html/html/search/functions_0.js +6 -6
  169. package/SVF-doxygen/html/html/search/functions_10.js +1 -0
  170. package/SVF-doxygen/html/html/search/functions_6.js +19 -20
  171. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  172. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  173. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  174. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  175. package/SVF-doxygen/html/html/search/variables_5.js +1 -0
  176. package/SVF-doxygen/html/html/search/variables_6.js +0 -1
  177. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  178. package/SVF-doxygen/html/html/search/variables_e.js +3 -1
  179. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  180. package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
  181. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
  182. package/include/Graphs/ICFG.h +18 -18
  183. package/include/Graphs/ICFGNode.h +2 -2
  184. package/include/Graphs/SVFG.h +4 -4
  185. package/include/Graphs/SVFGOPT.h +2 -2
  186. package/include/Graphs/VFG.h +7 -7
  187. package/include/MTA/LockResultValidator.h +1 -1
  188. package/include/MTA/MHP.h +2 -2
  189. package/include/MTA/PCG.h +2 -2
  190. package/include/MTA/TCT.h +2 -2
  191. package/include/MemoryModel/SVFIR.h +2 -2
  192. package/include/MemoryModel/SVFStatements.h +11 -3
  193. package/include/MemoryModel/SymbolTableInfo.h +37 -41
  194. package/include/SVF-FE/ICFGBuilder.h +5 -5
  195. package/include/SVF-FE/SVFIRBuilder.h +1 -1
  196. package/lib/Graphs/ICFG.cpp +23 -23
  197. package/lib/Graphs/SVFG.cpp +4 -4
  198. package/lib/Graphs/VFG.cpp +3 -3
  199. package/lib/MSSA/MemRegion.cpp +7 -7
  200. package/lib/MSSA/MemSSA.cpp +3 -3
  201. package/lib/MTA/LockAnalysis.cpp +4 -4
  202. package/lib/MTA/MTAResultValidator.cpp +1 -1
  203. package/lib/MTA/PCG.cpp +1 -1
  204. package/lib/MTA/TCT.cpp +2 -2
  205. package/lib/MemoryModel/LocationSet.cpp +42 -37
  206. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  207. package/lib/MemoryModel/SymbolTableInfo.cpp +71 -8
  208. package/lib/SABER/LeakChecker.cpp +3 -3
  209. package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
  210. package/lib/SVF-FE/ICFGBuilder.cpp +19 -27
  211. package/lib/SVF-FE/SVFIRBuilder.cpp +15 -15
  212. package/lib/WPA/Andersen.cpp +3 -3
  213. package/lib/WPA/WPAPass.cpp +4 -4
  214. package/package.json +1 -1
  215. package/tools/Example/svf-ex.cpp +1 -1
@@ -157,23 +157,23 @@ Public Member Functions</h2></td></tr>
157
157
  <tr class="memitem:a29fb70d6638765ce291c5a8a11fbea64"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a29fb70d6638765ce291c5a8a11fbea64">hasThreadICFGEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *src, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dst, <a class="el" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429">ICFGEdge::ICFGEdgeK</a> kind)</td></tr>
158
158
  <tr class="separator:a29fb70d6638765ce291c5a8a11fbea64"><td class="memSeparator" colspan="2">&#160;</td></tr>
159
159
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
160
- <tr class="memitem:ab7b0b3088b46ad65451905cc4f567a7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#ab7b0b3088b46ad65451905cc4f567a7b">getBlockICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
161
- <tr class="memdesc:ab7b0b3088b46ad65451905cc4f567a7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a basic block <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. <a href="#ab7b0b3088b46ad65451905cc4f567a7b">More...</a><br /></td></tr>
162
- <tr class="separator:ab7b0b3088b46ad65451905cc4f567a7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
163
- <tr class="memitem:a483e92e076a426ec8f177eab3b971723"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">getCallBlockNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
164
- <tr class="separator:a483e92e076a426ec8f177eab3b971723"><td class="memSeparator" colspan="2">&#160;</td></tr>
165
- <tr class="memitem:a392e5ea7c356763a988407f91343f034"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">getRetBlockNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
166
- <tr class="separator:a392e5ea7c356763a988407f91343f034"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
- <tr class="memitem:ad0ad7f96fe2b8f772e7d667d5ba3e9a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#ad0ad7f96fe2b8f772e7d667d5ba3e9a3">getIntraBlockNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
168
- <tr class="separator:ad0ad7f96fe2b8f772e7d667d5ba3e9a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
- <tr class="memitem:a2b32cfb0b4b3e420aa8e67fc6d4f1025"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a2b32cfb0b4b3e420aa8e67fc6d4f1025">getFunEntryBlockNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
170
- <tr class="memdesc:a2b32cfb0b4b3e420aa8e67fc6d4f1025"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a function entry node. <a href="#a2b32cfb0b4b3e420aa8e67fc6d4f1025">More...</a><br /></td></tr>
171
- <tr class="separator:a2b32cfb0b4b3e420aa8e67fc6d4f1025"><td class="memSeparator" colspan="2">&#160;</td></tr>
172
- <tr class="memitem:a8f131fd585f6fa0c93023ee193500b26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a8f131fd585f6fa0c93023ee193500b26">getFunExitBlockNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
173
- <tr class="memdesc:a8f131fd585f6fa0c93023ee193500b26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a function exit node. <a href="#a8f131fd585f6fa0c93023ee193500b26">More...</a><br /></td></tr>
174
- <tr class="separator:a8f131fd585f6fa0c93023ee193500b26"><td class="memSeparator" colspan="2">&#160;</td></tr>
175
- <tr class="memitem:a51917fa4244cdb46f06ab647b5c2656f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1GlobalICFGNode.html">GlobalICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a51917fa4244cdb46f06ab647b5c2656f">getGlobalBlockNode</a> () const</td></tr>
176
- <tr class="separator:a51917fa4244cdb46f06ab647b5c2656f"><td class="memSeparator" colspan="2">&#160;</td></tr>
160
+ <tr class="memitem:a489d4265c87304402bb3a20654ab4b99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a489d4265c87304402bb3a20654ab4b99">getICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
161
+ <tr class="memdesc:a489d4265c87304402bb3a20654ab4b99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a basic block <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. <a href="#a489d4265c87304402bb3a20654ab4b99">More...</a><br /></td></tr>
162
+ <tr class="separator:a489d4265c87304402bb3a20654ab4b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
163
+ <tr class="memitem:adc66b547720b9271e6805edea0b9d01f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
164
+ <tr class="separator:adc66b547720b9271e6805edea0b9d01f"><td class="memSeparator" colspan="2">&#160;</td></tr>
165
+ <tr class="memitem:a66cb50d8c176f800f06d9cb8924eb896"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a66cb50d8c176f800f06d9cb8924eb896">getRetICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
166
+ <tr class="separator:a66cb50d8c176f800f06d9cb8924eb896"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
+ <tr class="memitem:a2b3a5a9c3c4c623a6d45ab1eac3c6a8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a2b3a5a9c3c4c623a6d45ab1eac3c6a8b">getIntraICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
168
+ <tr class="separator:a2b3a5a9c3c4c623a6d45ab1eac3c6a8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
+ <tr class="memitem:a0dca4655c2f6112a5be1f921b8e81076"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a0dca4655c2f6112a5be1f921b8e81076">getFunEntryICFGNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
170
+ <tr class="memdesc:a0dca4655c2f6112a5be1f921b8e81076"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a function entry node. <a href="#a0dca4655c2f6112a5be1f921b8e81076">More...</a><br /></td></tr>
171
+ <tr class="separator:a0dca4655c2f6112a5be1f921b8e81076"><td class="memSeparator" colspan="2">&#160;</td></tr>
172
+ <tr class="memitem:af1b2d2839f811a00103df87342dfc919"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">getFunExitICFGNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
173
+ <tr class="memdesc:af1b2d2839f811a00103df87342dfc919"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a function exit node. <a href="#af1b2d2839f811a00103df87342dfc919">More...</a><br /></td></tr>
174
+ <tr class="separator:af1b2d2839f811a00103df87342dfc919"><td class="memSeparator" colspan="2">&#160;</td></tr>
175
+ <tr class="memitem:ae0b05ce161d62362642803158228e5d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1GlobalICFGNode.html">GlobalICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#ae0b05ce161d62362642803158228e5d0">getGlobalICFGNode</a> () const</td></tr>
176
+ <tr class="separator:ae0b05ce161d62362642803158228e5d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
177
177
  <tr class="inherit_header pub_methods_classSVF_1_1GenericGraph"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1GenericGraph')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td></tr>
178
178
  <tr class="memitem:aa5837cddbbd63c5a8ac5725bcecb192f inherit pub_methods_classSVF_1_1GenericGraph"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GenericGraph.html#aa5837cddbbd63c5a8ac5725bcecb192f">GenericGraph</a> ()</td></tr>
179
179
  <tr class="memdesc:aa5837cddbbd63c5a8ac5725bcecb192f inherit pub_methods_classSVF_1_1GenericGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1GenericGraph.html#aa5837cddbbd63c5a8ac5725bcecb192f">More...</a><br /></td></tr>
@@ -258,31 +258,31 @@ Protected Member Functions</h2></td></tr>
258
258
  </table><table class="memberdecls">
259
259
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
260
260
  Private Member Functions</h2></td></tr>
261
- <tr class="memitem:a5f29490c8c18873fa80fc6b1c40b68bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a5f29490c8c18873fa80fc6b1c40b68bd">getIntraBlockICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
262
- <tr class="memdesc:a5f29490c8c18873fa80fc6b1c40b68bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add IntraBlock <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. <a href="#a5f29490c8c18873fa80fc6b1c40b68bd">More...</a><br /></td></tr>
263
- <tr class="separator:a5f29490c8c18873fa80fc6b1c40b68bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
264
- <tr class="memitem:a9e1f6fb3e078357ec19a24fcb3bf7537"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a9e1f6fb3e078357ec19a24fcb3bf7537">addIntraBlockICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
265
- <tr class="separator:a9e1f6fb3e078357ec19a24fcb3bf7537"><td class="memSeparator" colspan="2">&#160;</td></tr>
266
- <tr class="memitem:a11a2c1f54747069b924ee2870163dc05"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a11a2c1f54747069b924ee2870163dc05">getFunEntryICFGNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
267
- <tr class="memdesc:a11a2c1f54747069b924ee2870163dc05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a function entry node. <a href="#a11a2c1f54747069b924ee2870163dc05">More...</a><br /></td></tr>
268
- <tr class="separator:a11a2c1f54747069b924ee2870163dc05"><td class="memSeparator" colspan="2">&#160;</td></tr>
269
- <tr class="memitem:a56afcc853b9cf9fcab1e1472c64d5036"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a56afcc853b9cf9fcab1e1472c64d5036">addFunEntryICFGNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
270
- <tr class="separator:a56afcc853b9cf9fcab1e1472c64d5036"><td class="memSeparator" colspan="2">&#160;</td></tr>
271
- <tr class="memitem:a12f78e9ce71a904975932e1784060050"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a12f78e9ce71a904975932e1784060050">getFunExitICFGNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
272
- <tr class="memdesc:a12f78e9ce71a904975932e1784060050"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a function exit node. <a href="#a12f78e9ce71a904975932e1784060050">More...</a><br /></td></tr>
273
- <tr class="separator:a12f78e9ce71a904975932e1784060050"><td class="memSeparator" colspan="2">&#160;</td></tr>
274
- <tr class="memitem:a2c2daaafcdc20d7e800c94a647c2b9da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a2c2daaafcdc20d7e800c94a647c2b9da">addFunExitICFGNode</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
275
- <tr class="separator:a2c2daaafcdc20d7e800c94a647c2b9da"><td class="memSeparator" colspan="2">&#160;</td></tr>
276
- <tr class="memitem:a9168a7e686797d5e09d6d9aebea963e3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a9168a7e686797d5e09d6d9aebea963e3">addCallICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
277
- <tr class="memdesc:a9168a7e686797d5e09d6d9aebea963e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a call node. <a href="#a9168a7e686797d5e09d6d9aebea963e3">More...</a><br /></td></tr>
278
- <tr class="separator:a9168a7e686797d5e09d6d9aebea963e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
279
- <tr class="memitem:ab10620eaac6b74f7cb18ba0c1211b4f1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#ab10620eaac6b74f7cb18ba0c1211b4f1">getCallICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
280
- <tr class="separator:ab10620eaac6b74f7cb18ba0c1211b4f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
281
- <tr class="memitem:a26ee40d30efc126734b7fb081db5da54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a26ee40d30efc126734b7fb081db5da54">getRetICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
282
- <tr class="memdesc:a26ee40d30efc126734b7fb081db5da54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a return node. <a href="#a26ee40d30efc126734b7fb081db5da54">More...</a><br /></td></tr>
283
- <tr class="separator:a26ee40d30efc126734b7fb081db5da54"><td class="memSeparator" colspan="2">&#160;</td></tr>
284
- <tr class="memitem:a10a3b111322e551dc781d732e2015261"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a10a3b111322e551dc781d732e2015261">addRetICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
285
- <tr class="separator:a10a3b111322e551dc781d732e2015261"><td class="memSeparator" colspan="2">&#160;</td></tr>
261
+ <tr class="memitem:aedb66c7897f1d73185979e1297d1976d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#aedb66c7897f1d73185979e1297d1976d">getIntraBlock</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
262
+ <tr class="memdesc:aedb66c7897f1d73185979e1297d1976d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add IntraBlock <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. <a href="#aedb66c7897f1d73185979e1297d1976d">More...</a><br /></td></tr>
263
+ <tr class="separator:aedb66c7897f1d73185979e1297d1976d"><td class="memSeparator" colspan="2">&#160;</td></tr>
264
+ <tr class="memitem:a6f673b42ff80bb9a97b4cc4dfea4101e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a6f673b42ff80bb9a97b4cc4dfea4101e">addIntraBlock</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
265
+ <tr class="separator:a6f673b42ff80bb9a97b4cc4dfea4101e"><td class="memSeparator" colspan="2">&#160;</td></tr>
266
+ <tr class="memitem:acc261924103bd0c357acd3acfa6cf38a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
267
+ <tr class="memdesc:acc261924103bd0c357acd3acfa6cf38a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a function entry node. <a href="#acc261924103bd0c357acd3acfa6cf38a">More...</a><br /></td></tr>
268
+ <tr class="separator:acc261924103bd0c357acd3acfa6cf38a"><td class="memSeparator" colspan="2">&#160;</td></tr>
269
+ <tr class="memitem:a1af9ae1c2efb4cb7897d5234d035c06b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">addFunEntryBlock</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
270
+ <tr class="separator:a1af9ae1c2efb4cb7897d5234d035c06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
271
+ <tr class="memitem:a22d7f37a0cb2df90f73c1f2e3eaa71c6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
272
+ <tr class="memdesc:a22d7f37a0cb2df90f73c1f2e3eaa71c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a function exit node. <a href="#a22d7f37a0cb2df90f73c1f2e3eaa71c6">More...</a><br /></td></tr>
273
+ <tr class="separator:a22d7f37a0cb2df90f73c1f2e3eaa71c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
274
+ <tr class="memitem:a6b716225b38638d6a34703995b749ad2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">addFunExitBlock</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun)</td></tr>
275
+ <tr class="separator:a6b716225b38638d6a34703995b749ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
276
+ <tr class="memitem:af6dc72c9ba19d41cc11439a7c632af48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#af6dc72c9ba19d41cc11439a7c632af48">addCallBlock</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
277
+ <tr class="memdesc:af6dc72c9ba19d41cc11439a7c632af48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a call node. <a href="#af6dc72c9ba19d41cc11439a7c632af48">More...</a><br /></td></tr>
278
+ <tr class="separator:af6dc72c9ba19d41cc11439a7c632af48"><td class="memSeparator" colspan="2">&#160;</td></tr>
279
+ <tr class="memitem:a47b5fe922b0339980fd49a89ecffd74d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a47b5fe922b0339980fd49a89ecffd74d">getCallBlock</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
280
+ <tr class="separator:a47b5fe922b0339980fd49a89ecffd74d"><td class="memSeparator" colspan="2">&#160;</td></tr>
281
+ <tr class="memitem:a3b59f9ba22e03d323bc2fa5928902243"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a3b59f9ba22e03d323bc2fa5928902243">getRetBlock</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
282
+ <tr class="memdesc:a3b59f9ba22e03d323bc2fa5928902243"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Add a return node. <a href="#a3b59f9ba22e03d323bc2fa5928902243">More...</a><br /></td></tr>
283
+ <tr class="separator:a3b59f9ba22e03d323bc2fa5928902243"><td class="memSeparator" colspan="2">&#160;</td></tr>
284
+ <tr class="memitem:aae7bcc56ba04d08cc030f108b06299ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#aae7bcc56ba04d08cc030f108b06299ae">addRetBlock</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
285
+ <tr class="separator:aae7bcc56ba04d08cc030f108b06299ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
286
286
  </table><table class="memberdecls">
287
287
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
288
288
  Private Attributes</h2></td></tr>
@@ -528,6 +528,39 @@ Additional Inherited Members</h2></td></tr>
528
528
  </div>
529
529
  </div>
530
530
  <h2 class="groupheader">Member Function Documentation</h2>
531
+ <a id="af6dc72c9ba19d41cc11439a7c632af48"></a>
532
+ <h2 class="memtitle"><span class="permalink"><a href="#af6dc72c9ba19d41cc11439a7c632af48">&#9670;&nbsp;</a></span>addCallBlock()</h2>
533
+
534
+ <div class="memitem">
535
+ <div class="memproto">
536
+ <table class="mlabels">
537
+ <tr>
538
+ <td class="mlabels-left">
539
+ <table class="memname">
540
+ <tr>
541
+ <td class="memname"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* SVF::ICFG::addCallBlock </td>
542
+ <td>(</td>
543
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
544
+ <td class="paramname"><em>cs</em></td><td>)</td>
545
+ <td></td>
546
+ </tr>
547
+ </table>
548
+ </td>
549
+ <td class="mlabels-right">
550
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
551
+ </tr>
552
+ </table>
553
+ </div><div class="memdoc">
554
+
555
+ <p>Get/Add a call node. </p>
556
+
557
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00235">235</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
558
+ <div class="fragment"><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; CallICFGNode* sNode = <span class="keyword">new</span> CallICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00069">ICFG.h:69</a></div></div>
559
+ <div class="ttc" id="classSVF_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#l00064">ICFG.h:64</a></div></div>
560
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00157">ICFG.h:157</a></div></div>
561
+ </div><!-- fragment -->
562
+ </div>
563
+ </div>
531
564
  <a id="abde033687317d47909ee45db7501723f"></a>
532
565
  <h2 class="memtitle"><span class="permalink"><a href="#abde033687317d47909ee45db7501723f">&#9670;&nbsp;</a></span>addCallEdge()</h2>
533
566
 
@@ -579,39 +612,6 @@ Additional Inherited Members</h2></td></tr>
579
612
  </div><!-- fragment -->
580
613
  </div>
581
614
  </div>
582
- <a id="a9168a7e686797d5e09d6d9aebea963e3"></a>
583
- <h2 class="memtitle"><span class="permalink"><a href="#a9168a7e686797d5e09d6d9aebea963e3">&#9670;&nbsp;</a></span>addCallICFGNode()</h2>
584
-
585
- <div class="memitem">
586
- <div class="memproto">
587
- <table class="mlabels">
588
- <tr>
589
- <td class="mlabels-left">
590
- <table class="memname">
591
- <tr>
592
- <td class="memname"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* SVF::ICFG::addCallICFGNode </td>
593
- <td>(</td>
594
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
595
- <td class="paramname"><em>cs</em></td><td>)</td>
596
- <td></td>
597
- </tr>
598
- </table>
599
- </td>
600
- <td class="mlabels-right">
601
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
602
- </tr>
603
- </table>
604
- </div><div class="memdoc">
605
-
606
- <p>Get/Add a call node. </p>
607
-
608
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00235">235</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
609
- <div class="fragment"><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; CallICFGNode* sNode = <span class="keyword">new</span> CallICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00069">ICFG.h:69</a></div></div>
610
- <div class="ttc" id="classSVF_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#l00064">ICFG.h:64</a></div></div>
611
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00157">ICFG.h:157</a></div></div>
612
- </div><!-- fragment -->
613
- </div>
614
- </div>
615
615
  <a id="a8b038782880ae8950076e2c104bc4b18"></a>
616
616
  <h2 class="memtitle"><span class="permalink"><a href="#a8b038782880ae8950076e2c104bc4b18">&#9670;&nbsp;</a></span>addConditionalIntraEdge()</h2>
617
617
 
@@ -671,8 +671,8 @@ Additional Inherited Members</h2></td></tr>
671
671
  </div><!-- fragment -->
672
672
  </div>
673
673
  </div>
674
- <a id="a56afcc853b9cf9fcab1e1472c64d5036"></a>
675
- <h2 class="memtitle"><span class="permalink"><a href="#a56afcc853b9cf9fcab1e1472c64d5036">&#9670;&nbsp;</a></span>addFunEntryICFGNode()</h2>
674
+ <a id="a1af9ae1c2efb4cb7897d5234d035c06b"></a>
675
+ <h2 class="memtitle"><span class="permalink"><a href="#a1af9ae1c2efb4cb7897d5234d035c06b">&#9670;&nbsp;</a></span>addFunEntryBlock()</h2>
676
676
 
677
677
  <div class="memitem">
678
678
  <div class="memproto">
@@ -681,7 +681,7 @@ Additional Inherited Members</h2></td></tr>
681
681
  <td class="mlabels-left">
682
682
  <table class="memname">
683
683
  <tr>
684
- <td class="memname"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* SVF::ICFG::addFunEntryICFGNode </td>
684
+ <td class="memname"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* SVF::ICFG::addFunEntryBlock </td>
685
685
  <td>(</td>
686
686
  <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
687
687
  <td class="paramname"><em>fun</em></td><td>)</td>
@@ -702,8 +702,8 @@ Additional Inherited Members</h2></td></tr>
702
702
  </div><!-- fragment -->
703
703
  </div>
704
704
  </div>
705
- <a id="a2c2daaafcdc20d7e800c94a647c2b9da"></a>
706
- <h2 class="memtitle"><span class="permalink"><a href="#a2c2daaafcdc20d7e800c94a647c2b9da">&#9670;&nbsp;</a></span>addFunExitICFGNode()</h2>
705
+ <a id="a6b716225b38638d6a34703995b749ad2"></a>
706
+ <h2 class="memtitle"><span class="permalink"><a href="#a6b716225b38638d6a34703995b749ad2">&#9670;&nbsp;</a></span>addFunExitBlock()</h2>
707
707
 
708
708
  <div class="memitem">
709
709
  <div class="memproto">
@@ -712,7 +712,7 @@ Additional Inherited Members</h2></td></tr>
712
712
  <td class="mlabels-left">
713
713
  <table class="memname">
714
714
  <tr>
715
- <td class="memname"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* SVF::ICFG::addFunExitICFGNode </td>
715
+ <td class="memname"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* SVF::ICFG::addFunExitBlock </td>
716
716
  <td>(</td>
717
717
  <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
718
718
  <td class="paramname"><em>fun</em></td><td>)</td>
@@ -795,8 +795,8 @@ Additional Inherited Members</h2></td></tr>
795
795
  </div><!-- fragment -->
796
796
  </div>
797
797
  </div>
798
- <a id="a9e1f6fb3e078357ec19a24fcb3bf7537"></a>
799
- <h2 class="memtitle"><span class="permalink"><a href="#a9e1f6fb3e078357ec19a24fcb3bf7537">&#9670;&nbsp;</a></span>addIntraBlockICFGNode()</h2>
798
+ <a id="a6f673b42ff80bb9a97b4cc4dfea4101e"></a>
799
+ <h2 class="memtitle"><span class="permalink"><a href="#a6f673b42ff80bb9a97b4cc4dfea4101e">&#9670;&nbsp;</a></span>addIntraBlock()</h2>
800
800
 
801
801
  <div class="memitem">
802
802
  <div class="memproto">
@@ -805,7 +805,7 @@ Additional Inherited Members</h2></td></tr>
805
805
  <td class="mlabels-left">
806
806
  <table class="memname">
807
807
  <tr>
808
- <td class="memname"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* SVF::ICFG::addIntraBlockICFGNode </td>
808
+ <td class="memname"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* SVF::ICFG::addIntraBlock </td>
809
809
  <td>(</td>
810
810
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
811
811
  <td class="paramname"><em>inst</em></td><td>)</td>
@@ -874,6 +874,38 @@ Additional Inherited Members</h2></td></tr>
874
874
  </div><!-- fragment -->
875
875
  </div>
876
876
  </div>
877
+ <a id="aae7bcc56ba04d08cc030f108b06299ae"></a>
878
+ <h2 class="memtitle"><span class="permalink"><a href="#aae7bcc56ba04d08cc030f108b06299ae">&#9670;&nbsp;</a></span>addRetBlock()</h2>
879
+
880
+ <div class="memitem">
881
+ <div class="memproto">
882
+ <table class="mlabels">
883
+ <tr>
884
+ <td class="mlabels-left">
885
+ <table class="memname">
886
+ <tr>
887
+ <td class="memname"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* SVF::ICFG::addRetBlock </td>
888
+ <td>(</td>
889
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
890
+ <td class="paramname"><em>cs</em></td><td>)</td>
891
+ <td></td>
892
+ </tr>
893
+ </table>
894
+ </td>
895
+ <td class="mlabels-right">
896
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
897
+ </tr>
898
+ </table>
899
+ </div><div class="memdoc">
900
+
901
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00258">258</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
902
+ <div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; CallICFGNode* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; RetICFGNode* sNode = <span class="keyword">new</span> RetICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs, callBlockNode);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; callBlockNode-&gt;setRetICFGNode(sNode);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="ttc" id="classSVF_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#l00064">ICFG.h:64</a></div></div>
903
+ <div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
904
+ <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00157">ICFG.h:157</a></div></div>
905
+ <div class="ttc" id="classSVF_1_1ICFG_html_a0e43308038663c10667177238b23ab3e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">SVF::ICFG::CSToRetNodeMap</a></div><div class="ttdeci">CSToRetNodeMapTy CSToRetNodeMap</div><div class="ttdoc">map a callsite to its RetICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
906
+ </div><!-- fragment -->
907
+ </div>
908
+ </div>
877
909
  <a id="a4a44849b596c89ab14d2e5f18366e848"></a>
878
910
  <h2 class="memtitle"><span class="permalink"><a href="#a4a44849b596c89ab14d2e5f18366e848">&#9670;&nbsp;</a></span>addRetEdge()</h2>
879
911
 
@@ -925,38 +957,6 @@ Additional Inherited Members</h2></td></tr>
925
957
  </div><!-- fragment -->
926
958
  </div>
927
959
  </div>
928
- <a id="a10a3b111322e551dc781d732e2015261"></a>
929
- <h2 class="memtitle"><span class="permalink"><a href="#a10a3b111322e551dc781d732e2015261">&#9670;&nbsp;</a></span>addRetICFGNode()</h2>
930
-
931
- <div class="memitem">
932
- <div class="memproto">
933
- <table class="mlabels">
934
- <tr>
935
- <td class="mlabels-left">
936
- <table class="memname">
937
- <tr>
938
- <td class="memname"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* SVF::ICFG::addRetICFGNode </td>
939
- <td>(</td>
940
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
941
- <td class="paramname"><em>cs</em></td><td>)</td>
942
- <td></td>
943
- </tr>
944
- </table>
945
- </td>
946
- <td class="mlabels-right">
947
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
948
- </tr>
949
- </table>
950
- </div><div class="memdoc">
951
-
952
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00258">258</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
953
- <div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; CallICFGNode* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">getCallBlockNode</a>(cs);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; RetICFGNode* sNode = <span class="keyword">new</span> RetICFGNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs, callBlockNode);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; callBlockNode-&gt;setRetICFGNode(sNode);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="ttc" id="classSVF_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#l00064">ICFG.h:64</a></div></div>
954
- <div class="ttc" id="classSVF_1_1ICFG_html_a15816a82d8c33a066009440dce6ee973"><div class="ttname"><a href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">SVF::ICFG::addICFGNode</a></div><div class="ttdeci">virtual void addICFGNode(ICFGNode *node)</div><div class="ttdoc">Add a ICFG node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00157">ICFG.h:157</a></div></div>
955
- <div class="ttc" id="classSVF_1_1ICFG_html_a483e92e076a426ec8f177eab3b971723"><div class="ttname"><a href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallICFGNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
956
- <div class="ttc" id="classSVF_1_1ICFG_html_a0e43308038663c10667177238b23ab3e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">SVF::ICFG::CSToRetNodeMap</a></div><div class="ttdeci">CSToRetNodeMapTy CSToRetNodeMap</div><div class="ttdoc">map a callsite to its RetICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
957
- </div><!-- fragment -->
958
- </div>
959
- </div>
960
960
  <a id="a70421a19a494eb6131a9ae72ef1a64d6"></a>
961
961
  <h2 class="memtitle"><span class="permalink"><a href="#a70421a19a494eb6131a9ae72ef1a64d6">&#9670;&nbsp;</a></span>checkIntraEdgeParents()</h2>
962
962
 
@@ -1033,43 +1033,43 @@ Additional Inherited Members</h2></td></tr>
1033
1033
  </div><!-- fragment -->
1034
1034
  </div>
1035
1035
  </div>
1036
- <a id="ab7b0b3088b46ad65451905cc4f567a7b"></a>
1037
- <h2 class="memtitle"><span class="permalink"><a href="#ab7b0b3088b46ad65451905cc4f567a7b">&#9670;&nbsp;</a></span>getBlockICFGNode()</h2>
1036
+ <a id="a47b5fe922b0339980fd49a89ecffd74d"></a>
1037
+ <h2 class="memtitle"><span class="permalink"><a href="#a47b5fe922b0339980fd49a89ecffd74d">&#9670;&nbsp;</a></span>getCallBlock()</h2>
1038
1038
 
1039
1039
  <div class="memitem">
1040
1040
  <div class="memproto">
1041
+ <table class="mlabels">
1042
+ <tr>
1043
+ <td class="mlabels-left">
1041
1044
  <table class="memname">
1042
1045
  <tr>
1043
- <td class="memname"><a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> * ICFG::getBlockICFGNode </td>
1046
+ <td class="memname"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* SVF::ICFG::getCallBlock </td>
1044
1047
  <td>(</td>
1045
1048
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1046
- <td class="paramname"><em>inst</em></td><td>)</td>
1049
+ <td class="paramname"><em>cs</em></td><td>)</td>
1047
1050
  <td></td>
1048
1051
  </tr>
1049
1052
  </table>
1053
+ </td>
1054
+ <td class="mlabels-right">
1055
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
1056
+ </tr>
1057
+ </table>
1050
1058
  </div><div class="memdoc">
1051
1059
 
1052
- <p>Get a basic block <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1053
- <p>Get a basic block <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> TODO:: need to fix the assertions </p>
1054
-
1055
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00193">193</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1056
- <div class="fragment"><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">getCallBlockNode</a>(inst);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVFUtil::isIntrinsicInst</a>(inst))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#ad0ad7f96fe2b8f772e7d667d5ba3e9a3">getIntraBlockNode</a>(inst);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// assert (false &amp;&amp; &quot;associating an intrinsic instruction with an ICFGNode!&quot;);</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#ad0ad7f96fe2b8f772e7d667d5ba3e9a3">getIntraBlockNode</a>(inst);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no ICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab7f58caf27c30a1d414e06f60ca84d80"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVF::SVFUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00180">SVFUtil.h:180</a></div></div>
1057
- <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1058
- <div class="ttc" id="classSVF_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>
1059
- <div class="ttc" id="classSVF_1_1ICFG_html_ad0ad7f96fe2b8f772e7d667d5ba3e9a3"><div class="ttname"><a href="classSVF_1_1ICFG.html#ad0ad7f96fe2b8f772e7d667d5ba3e9a3">SVF::ICFG::getIntraBlockNode</a></div><div class="ttdeci">IntraICFGNode * getIntraBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00233">ICFG.cpp:233</a></div></div>
1060
- <div class="ttc" id="classSVF_1_1ICFG_html_a483e92e076a426ec8f177eab3b971723"><div class="ttname"><a href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallICFGNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
1061
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00206">SVFUtil.h:206</a></div></div>
1060
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00242">242</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1061
+ <div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; CSToCallNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.find(cs);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.end())</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00069">ICFG.h:69</a></div></div>
1062
1062
  </div><!-- fragment -->
1063
1063
  </div>
1064
1064
  </div>
1065
- <a id="a483e92e076a426ec8f177eab3b971723"></a>
1066
- <h2 class="memtitle"><span class="permalink"><a href="#a483e92e076a426ec8f177eab3b971723">&#9670;&nbsp;</a></span>getCallBlockNode()</h2>
1065
+ <a id="adc66b547720b9271e6805edea0b9d01f"></a>
1066
+ <h2 class="memtitle"><span class="permalink"><a href="#adc66b547720b9271e6805edea0b9d01f">&#9670;&nbsp;</a></span>getCallICFGNode()</h2>
1067
1067
 
1068
1068
  <div class="memitem">
1069
1069
  <div class="memproto">
1070
1070
  <table class="memname">
1071
1071
  <tr>
1072
- <td class="memname"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * ICFG::getCallBlockNode </td>
1072
+ <td class="memname"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> * ICFG::getCallICFGNode </td>
1073
1073
  <td>(</td>
1074
1074
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1075
1075
  <td class="paramname"><em>inst</em></td><td>)</td>
@@ -1079,18 +1079,18 @@ Additional Inherited Members</h2></td></tr>
1079
1079
  </div><div class="memdoc">
1080
1080
 
1081
1081
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00209">209</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1082
- <div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) ==<span class="keyword">false</span>)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; *inst &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;associating an intrinsic debug instruction with an ICFGNode!&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#ab10620eaac6b74f7cb18ba0c1211b4f1">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a9168a7e686797d5e09d6d9aebea963e3">addCallICFGNode</a>(inst);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no CallICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00193">SVFUtil.h:193</a></div></div>
1082
+ <div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) ==<span class="keyword">false</span>)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; *inst &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;associating an intrinsic debug instruction with an ICFGNode!&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a47b5fe922b0339980fd49a89ecffd74d">getCallBlock</a>(inst);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#af6dc72c9ba19d41cc11439a7c632af48">addCallBlock</a>(inst);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no CallICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00193">SVFUtil.h:193</a></div></div>
1083
1083
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1084
- <div class="ttc" id="classSVF_1_1ICFG_html_a9168a7e686797d5e09d6d9aebea963e3"><div class="ttname"><a href="classSVF_1_1ICFG.html#a9168a7e686797d5e09d6d9aebea963e3">SVF::ICFG::addCallICFGNode</a></div><div class="ttdeci">CallICFGNode * addCallICFGNode(const Instruction *cs)</div><div class="ttdoc">Get/Add a call node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00235">ICFG.h:235</a></div></div>
1085
1084
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
1085
+ <div class="ttc" id="classSVF_1_1ICFG_html_a47b5fe922b0339980fd49a89ecffd74d"><div class="ttname"><a href="classSVF_1_1ICFG.html#a47b5fe922b0339980fd49a89ecffd74d">SVF::ICFG::getCallBlock</a></div><div class="ttdeci">CallICFGNode * getCallBlock(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00242">ICFG.h:242</a></div></div>
1086
1086
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
1087
- <div class="ttc" id="classSVF_1_1ICFG_html_ab10620eaac6b74f7cb18ba0c1211b4f1"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab10620eaac6b74f7cb18ba0c1211b4f1">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00242">ICFG.h:242</a></div></div>
1088
1087
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00206">SVFUtil.h:206</a></div></div>
1088
+ <div class="ttc" id="classSVF_1_1ICFG_html_af6dc72c9ba19d41cc11439a7c632af48"><div class="ttname"><a href="classSVF_1_1ICFG.html#af6dc72c9ba19d41cc11439a7c632af48">SVF::ICFG::addCallBlock</a></div><div class="ttdeci">CallICFGNode * addCallBlock(const Instruction *cs)</div><div class="ttdoc">Get/Add a call node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00235">ICFG.h:235</a></div></div>
1089
1089
  </div><!-- fragment -->
1090
1090
  </div>
1091
1091
  </div>
1092
- <a id="ab10620eaac6b74f7cb18ba0c1211b4f1"></a>
1093
- <h2 class="memtitle"><span class="permalink"><a href="#ab10620eaac6b74f7cb18ba0c1211b4f1">&#9670;&nbsp;</a></span>getCallICFGNode()</h2>
1092
+ <a id="acc261924103bd0c357acd3acfa6cf38a"></a>
1093
+ <h2 class="memtitle"><span class="permalink"><a href="#acc261924103bd0c357acd3acfa6cf38a">&#9670;&nbsp;</a></span>getFunEntryBlock()</h2>
1094
1094
 
1095
1095
  <div class="memitem">
1096
1096
  <div class="memproto">
@@ -1099,10 +1099,10 @@ Additional Inherited Members</h2></td></tr>
1099
1099
  <td class="mlabels-left">
1100
1100
  <table class="memname">
1101
1101
  <tr>
1102
- <td class="memname"><a class="el" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* SVF::ICFG::getCallICFGNode </td>
1102
+ <td class="memname"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* SVF::ICFG::getFunEntryBlock </td>
1103
1103
  <td>(</td>
1104
- <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1105
- <td class="paramname"><em>cs</em></td><td>)</td>
1104
+ <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
1105
+ <td class="paramname"><em>fun</em></td><td>)</td>
1106
1106
  <td></td>
1107
1107
  </tr>
1108
1108
  </table>
@@ -1113,19 +1113,21 @@ Additional Inherited Members</h2></td></tr>
1113
1113
  </table>
1114
1114
  </div><div class="memdoc">
1115
1115
 
1116
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00242">242</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1117
- <div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; CSToCallNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.find(cs);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.end())</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_af0434d6ffd247eeaf73b9294e659a3f9"><div class="ttname"><a href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">SVF::ICFG::CSToCallNodeMap</a></div><div class="ttdeci">CSToCallNodeMapTy CSToCallNodeMap</div><div class="ttdoc">map a callsite to its CallICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00069">ICFG.h:69</a></div></div>
1116
+ <p>Get/Add a function entry node. </p>
1117
+
1118
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00203">203</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1119
+ <div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; FunToFunEntryNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.find(fun);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.end())</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a69076849bd256fb0ca59711a59a7c092"><div class="ttname"><a href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">SVF::ICFG::FunToFunEntryNodeMap</a></div><div class="ttdeci">FunToFunEntryNodeMapTy FunToFunEntryNodeMap</div><div class="ttdoc">map a function to its FunExitICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
1118
1120
  </div><!-- fragment -->
1119
1121
  </div>
1120
1122
  </div>
1121
- <a id="a2b32cfb0b4b3e420aa8e67fc6d4f1025"></a>
1122
- <h2 class="memtitle"><span class="permalink"><a href="#a2b32cfb0b4b3e420aa8e67fc6d4f1025">&#9670;&nbsp;</a></span>getFunEntryBlockNode()</h2>
1123
+ <a id="a0dca4655c2f6112a5be1f921b8e81076"></a>
1124
+ <h2 class="memtitle"><span class="permalink"><a href="#a0dca4655c2f6112a5be1f921b8e81076">&#9670;&nbsp;</a></span>getFunEntryICFGNode()</h2>
1123
1125
 
1124
1126
  <div class="memitem">
1125
1127
  <div class="memproto">
1126
1128
  <table class="memname">
1127
1129
  <tr>
1128
- <td class="memname"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> * ICFG::getFunEntryBlockNode </td>
1130
+ <td class="memname"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a> * ICFG::getFunEntryICFGNode </td>
1129
1131
  <td>(</td>
1130
1132
  <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
1131
1133
  <td class="paramname"><em>fun</em></td><td>)</td>
@@ -1137,14 +1139,14 @@ Additional Inherited Members</h2></td></tr>
1137
1139
  <p>Add a function entry node. </p>
1138
1140
 
1139
1141
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00242">242</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1140
- <div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;{</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#a11a2c1f54747069b924ee2870163dc05">getFunEntryICFGNode</a>(fun);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a56afcc853b9cf9fcab1e1472c64d5036">addFunEntryICFGNode</a>(fun);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div><div class="ttc" id="classSVF_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#l00251">ICFGNode.h:251</a></div></div>
1141
- <div class="ttc" id="classSVF_1_1ICFG_html_a56afcc853b9cf9fcab1e1472c64d5036"><div class="ttname"><a href="classSVF_1_1ICFG.html#a56afcc853b9cf9fcab1e1472c64d5036">SVF::ICFG::addFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * addFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00210">ICFG.h:210</a></div></div>
1142
- <div class="ttc" id="classSVF_1_1ICFG_html_a11a2c1f54747069b924ee2870163dc05"><div class="ttname"><a href="classSVF_1_1ICFG.html#a11a2c1f54747069b924ee2870163dc05">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00203">ICFG.h:203</a></div></div>
1142
+ <div class="fragment"><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;{</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(fun);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">addFunEntryBlock</a>(fun);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a1af9ae1c2efb4cb7897d5234d035c06b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">SVF::ICFG::addFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * addFunEntryBlock(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00210">ICFG.h:210</a></div></div>
1143
+ <div class="ttc" id="classSVF_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#l00251">ICFGNode.h:251</a></div></div>
1144
+ <div class="ttc" id="classSVF_1_1ICFG_html_acc261924103bd0c357acd3acfa6cf38a"><div class="ttname"><a href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">SVF::ICFG::getFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00203">ICFG.h:203</a></div></div>
1143
1145
  </div><!-- fragment -->
1144
1146
  </div>
1145
1147
  </div>
1146
- <a id="a11a2c1f54747069b924ee2870163dc05"></a>
1147
- <h2 class="memtitle"><span class="permalink"><a href="#a11a2c1f54747069b924ee2870163dc05">&#9670;&nbsp;</a></span>getFunEntryICFGNode()</h2>
1148
+ <a id="a22d7f37a0cb2df90f73c1f2e3eaa71c6"></a>
1149
+ <h2 class="memtitle"><span class="permalink"><a href="#a22d7f37a0cb2df90f73c1f2e3eaa71c6">&#9670;&nbsp;</a></span>getFunExitBlock()</h2>
1148
1150
 
1149
1151
  <div class="memitem">
1150
1152
  <div class="memproto">
@@ -1153,7 +1155,7 @@ Additional Inherited Members</h2></td></tr>
1153
1155
  <td class="mlabels-left">
1154
1156
  <table class="memname">
1155
1157
  <tr>
1156
- <td class="memname"><a class="el" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* SVF::ICFG::getFunEntryICFGNode </td>
1158
+ <td class="memname"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* SVF::ICFG::getFunExitBlock </td>
1157
1159
  <td>(</td>
1158
1160
  <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
1159
1161
  <td class="paramname"><em>fun</em></td><td>)</td>
@@ -1167,21 +1169,21 @@ Additional Inherited Members</h2></td></tr>
1167
1169
  </table>
1168
1170
  </div><div class="memdoc">
1169
1171
 
1170
- <p>Get/Add a function entry node. </p>
1172
+ <p>Get/Add a function exit node. </p>
1171
1173
 
1172
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00203">203</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1173
- <div class="fragment"><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; FunToFunEntryNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.find(fun);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.end())</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a69076849bd256fb0ca59711a59a7c092"><div class="ttname"><a href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">SVF::ICFG::FunToFunEntryNodeMap</a></div><div class="ttdeci">FunToFunEntryNodeMapTy FunToFunEntryNodeMap</div><div class="ttdoc">map a function to its FunExitICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
1174
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00219">219</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1175
+ <div class="fragment"><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; FunToFunExitNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.find(fun);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.end())</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_ab87a90adae3e9db06da7ecc0bd9d920f"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">SVF::ICFG::FunToFunExitNodeMap</a></div><div class="ttdeci">FunToFunExitNodeMapTy FunToFunExitNodeMap</div><div class="ttdoc">map a function to its FunEntryICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00068">ICFG.h:68</a></div></div>
1174
1176
  </div><!-- fragment -->
1175
1177
  </div>
1176
1178
  </div>
1177
- <a id="a8f131fd585f6fa0c93023ee193500b26"></a>
1178
- <h2 class="memtitle"><span class="permalink"><a href="#a8f131fd585f6fa0c93023ee193500b26">&#9670;&nbsp;</a></span>getFunExitBlockNode()</h2>
1179
+ <a id="af1b2d2839f811a00103df87342dfc919"></a>
1180
+ <h2 class="memtitle"><span class="permalink"><a href="#af1b2d2839f811a00103df87342dfc919">&#9670;&nbsp;</a></span>getFunExitICFGNode()</h2>
1179
1181
 
1180
1182
  <div class="memitem">
1181
1183
  <div class="memproto">
1182
1184
  <table class="memname">
1183
1185
  <tr>
1184
- <td class="memname"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> * ICFG::getFunExitBlockNode </td>
1186
+ <td class="memname"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> * ICFG::getFunExitICFGNode </td>
1185
1187
  <td>(</td>
1186
1188
  <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
1187
1189
  <td class="paramname"><em>fun</em></td><td>)</td>
@@ -1193,14 +1195,14 @@ Additional Inherited Members</h2></td></tr>
1193
1195
  <p>Add a function exit node. </p>
1194
1196
 
1195
1197
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00251">251</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1196
- <div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;{</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#a12f78e9ce71a904975932e1784060050">getFunExitICFGNode</a>(fun);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a2c2daaafcdc20d7e800c94a647c2b9da">addFunExitICFGNode</a>(fun);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a12f78e9ce71a904975932e1784060050"><div class="ttname"><a href="classSVF_1_1ICFG.html#a12f78e9ce71a904975932e1784060050">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00219">ICFG.h:219</a></div></div>
1197
- <div class="ttc" id="classSVF_1_1ICFG_html_a2c2daaafcdc20d7e800c94a647c2b9da"><div class="ttname"><a href="classSVF_1_1ICFG.html#a2c2daaafcdc20d7e800c94a647c2b9da">SVF::ICFG::addFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * addFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00226">ICFG.h:226</a></div></div>
1198
+ <div class="fragment"><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;{</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(fun);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">addFunExitBlock</a>(fun);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a6b716225b38638d6a34703995b749ad2"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">SVF::ICFG::addFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * addFunExitBlock(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00226">ICFG.h:226</a></div></div>
1199
+ <div class="ttc" id="classSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00219">ICFG.h:219</a></div></div>
1198
1200
  <div class="ttc" id="classSVF_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#l00308">ICFGNode.h:308</a></div></div>
1199
1201
  </div><!-- fragment -->
1200
1202
  </div>
1201
1203
  </div>
1202
- <a id="a12f78e9ce71a904975932e1784060050"></a>
1203
- <h2 class="memtitle"><span class="permalink"><a href="#a12f78e9ce71a904975932e1784060050">&#9670;&nbsp;</a></span>getFunExitICFGNode()</h2>
1204
+ <a id="ae0b05ce161d62362642803158228e5d0"></a>
1205
+ <h2 class="memtitle"><span class="permalink"><a href="#ae0b05ce161d62362642803158228e5d0">&#9670;&nbsp;</a></span>getGlobalICFGNode()</h2>
1204
1206
 
1205
1207
  <div class="memitem">
1206
1208
  <div class="memproto">
@@ -1209,38 +1211,7 @@ Additional Inherited Members</h2></td></tr>
1209
1211
  <td class="mlabels-left">
1210
1212
  <table class="memname">
1211
1213
  <tr>
1212
- <td class="memname"><a class="el" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* SVF::ICFG::getFunExitICFGNode </td>
1213
- <td>(</td>
1214
- <td class="paramtype">const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *&#160;</td>
1215
- <td class="paramname"><em>fun</em></td><td>)</td>
1216
- <td></td>
1217
- </tr>
1218
- </table>
1219
- </td>
1220
- <td class="mlabels-right">
1221
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
1222
- </tr>
1223
- </table>
1224
- </div><div class="memdoc">
1225
-
1226
- <p>Get/Add a function exit node. </p>
1227
-
1228
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00219">219</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1229
- <div class="fragment"><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; FunToFunExitNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.find(fun);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.end())</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_ab87a90adae3e9db06da7ecc0bd9d920f"><div class="ttname"><a href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">SVF::ICFG::FunToFunExitNodeMap</a></div><div class="ttdeci">FunToFunExitNodeMapTy FunToFunExitNodeMap</div><div class="ttdoc">map a function to its FunEntryICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00068">ICFG.h:68</a></div></div>
1230
- </div><!-- fragment -->
1231
- </div>
1232
- </div>
1233
- <a id="a51917fa4244cdb46f06ab647b5c2656f"></a>
1234
- <h2 class="memtitle"><span class="permalink"><a href="#a51917fa4244cdb46f06ab647b5c2656f">&#9670;&nbsp;</a></span>getGlobalBlockNode()</h2>
1235
-
1236
- <div class="memitem">
1237
- <div class="memproto">
1238
- <table class="mlabels">
1239
- <tr>
1240
- <td class="mlabels-left">
1241
- <table class="memname">
1242
- <tr>
1243
- <td class="memname"><a class="el" href="classSVF_1_1GlobalICFGNode.html">GlobalICFGNode</a>* SVF::ICFG::getGlobalBlockNode </td>
1214
+ <td class="memname"><a class="el" href="classSVF_1_1GlobalICFGNode.html">GlobalICFGNode</a>* SVF::ICFG::getGlobalICFGNode </td>
1244
1215
  <td>(</td>
1245
1216
  <td class="paramname"></td><td>)</td>
1246
1217
  <td> const</td>
@@ -1304,7 +1275,7 @@ Additional Inherited Members</h2></td></tr>
1304
1275
  </div>
1305
1276
  </div>
1306
1277
  <a id="a5f2c0aaba07d6fdd63058da0fb60ca8b"></a>
1307
- <h2 class="memtitle"><span class="permalink"><a href="#a5f2c0aaba07d6fdd63058da0fb60ca8b">&#9670;&nbsp;</a></span>getICFGNode()</h2>
1278
+ <h2 class="memtitle"><span class="permalink"><a href="#a5f2c0aaba07d6fdd63058da0fb60ca8b">&#9670;&nbsp;</a></span>getICFGNode() <span class="overload">[1/2]</span></h2>
1308
1279
 
1309
1280
  <div class="memitem">
1310
1281
  <div class="memproto">
@@ -1334,68 +1305,74 @@ Additional Inherited Members</h2></td></tr>
1334
1305
  </div><!-- fragment -->
1335
1306
  </div>
1336
1307
  </div>
1337
- <a id="a5f29490c8c18873fa80fc6b1c40b68bd"></a>
1338
- <h2 class="memtitle"><span class="permalink"><a href="#a5f29490c8c18873fa80fc6b1c40b68bd">&#9670;&nbsp;</a></span>getIntraBlockICFGNode()</h2>
1308
+ <a id="a489d4265c87304402bb3a20654ab4b99"></a>
1309
+ <h2 class="memtitle"><span class="permalink"><a href="#a489d4265c87304402bb3a20654ab4b99">&#9670;&nbsp;</a></span>getICFGNode() <span class="overload">[2/2]</span></h2>
1339
1310
 
1340
1311
  <div class="memitem">
1341
1312
  <div class="memproto">
1342
- <table class="mlabels">
1343
- <tr>
1344
- <td class="mlabels-left">
1345
1313
  <table class="memname">
1346
1314
  <tr>
1347
- <td class="memname"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* SVF::ICFG::getIntraBlockICFGNode </td>
1315
+ <td class="memname"><a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> * ICFG::getICFGNode </td>
1348
1316
  <td>(</td>
1349
1317
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1350
1318
  <td class="paramname"><em>inst</em></td><td>)</td>
1351
1319
  <td></td>
1352
1320
  </tr>
1353
1321
  </table>
1354
- </td>
1355
- <td class="mlabels-right">
1356
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
1357
- </tr>
1358
- </table>
1359
1322
  </div><div class="memdoc">
1360
1323
 
1361
- <p>Get/Add IntraBlock <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1324
+ <p>Get a basic block <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1325
+ <p>Get a basic block <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> TODO:: need to fix the assertions </p>
1362
1326
 
1363
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00187">187</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1364
- <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; InstToBlockNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.find(inst);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.end())</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a23f905d849553d7ad652e9a8f1bfacd1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">SVF::ICFG::InstToBlockNodeMap</a></div><div class="ttdeci">InstToBlockNodeMapTy InstToBlockNodeMap</div><div class="ttdoc">map a basic block to its ICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00071">ICFG.h:71</a></div></div>
1327
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00193">193</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1328
+ <div class="fragment"><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVFUtil::isIntrinsicInst</a>(inst))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a2b3a5a9c3c4c623a6d45ab1eac3c6a8b">getIntraICFGNode</a>(inst);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// assert (false &amp;&amp; &quot;associating an intrinsic instruction with an ICFGNode!&quot;);</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a2b3a5a9c3c4c623a6d45ab1eac3c6a8b">getIntraICFGNode</a>(inst);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no ICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab7f58caf27c30a1d414e06f60ca84d80"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">SVF::SVFUtil::isIntrinsicInst</a></div><div class="ttdeci">bool isIntrinsicInst(const Instruction *inst)</div><div class="ttdoc">Return true if it is an intrinsic instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00180">SVFUtil.h:180</a></div></div>
1329
+ <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1330
+ <div class="ttc" id="classSVF_1_1ICFG_html_a2b3a5a9c3c4c623a6d45ab1eac3c6a8b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a2b3a5a9c3c4c623a6d45ab1eac3c6a8b">SVF::ICFG::getIntraICFGNode</a></div><div class="ttdeci">IntraICFGNode * getIntraICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00233">ICFG.cpp:233</a></div></div>
1331
+ <div class="ttc" id="classSVF_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>
1332
+ <div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
1333
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00206">SVFUtil.h:206</a></div></div>
1365
1334
  </div><!-- fragment -->
1366
1335
  </div>
1367
1336
  </div>
1368
- <a id="ad0ad7f96fe2b8f772e7d667d5ba3e9a3"></a>
1369
- <h2 class="memtitle"><span class="permalink"><a href="#ad0ad7f96fe2b8f772e7d667d5ba3e9a3">&#9670;&nbsp;</a></span>getIntraBlockNode()</h2>
1337
+ <a id="aedb66c7897f1d73185979e1297d1976d"></a>
1338
+ <h2 class="memtitle"><span class="permalink"><a href="#aedb66c7897f1d73185979e1297d1976d">&#9670;&nbsp;</a></span>getIntraBlock()</h2>
1370
1339
 
1371
1340
  <div class="memitem">
1372
1341
  <div class="memproto">
1342
+ <table class="mlabels">
1343
+ <tr>
1344
+ <td class="mlabels-left">
1373
1345
  <table class="memname">
1374
1346
  <tr>
1375
- <td class="memname"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> * ICFG::getIntraBlockNode </td>
1347
+ <td class="memname"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* SVF::ICFG::getIntraBlock </td>
1376
1348
  <td>(</td>
1377
1349
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1378
1350
  <td class="paramname"><em>inst</em></td><td>)</td>
1379
1351
  <td></td>
1380
1352
  </tr>
1381
1353
  </table>
1354
+ </td>
1355
+ <td class="mlabels-right">
1356
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
1357
+ </tr>
1358
+ </table>
1382
1359
  </div><div class="memdoc">
1383
1360
 
1384
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00233">233</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1385
- <div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a5f29490c8c18873fa80fc6b1c40b68bd">getIntraBlockICFGNode</a>(inst);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a9e1f6fb3e078357ec19a24fcb3bf7537">addIntraBlockICFGNode</a>(inst);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a9e1f6fb3e078357ec19a24fcb3bf7537"><div class="ttname"><a href="classSVF_1_1ICFG.html#a9e1f6fb3e078357ec19a24fcb3bf7537">SVF::ICFG::addIntraBlockICFGNode</a></div><div class="ttdeci">IntraICFGNode * addIntraBlockICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00194">ICFG.h:194</a></div></div>
1386
- <div class="ttc" id="classSVF_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#l00175">ICFGNode.h:175</a></div></div>
1387
- <div class="ttc" id="classSVF_1_1ICFG_html_a5f29490c8c18873fa80fc6b1c40b68bd"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f29490c8c18873fa80fc6b1c40b68bd">SVF::ICFG::getIntraBlockICFGNode</a></div><div class="ttdeci">IntraICFGNode * getIntraBlockICFGNode(const Instruction *inst)</div><div class="ttdoc">Get/Add IntraBlock ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
1361
+ <p>Get/Add IntraBlock <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1362
+
1363
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00187">187</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1364
+ <div class="fragment"><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; InstToBlockNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.find(inst);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.end())</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a23f905d849553d7ad652e9a8f1bfacd1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">SVF::ICFG::InstToBlockNodeMap</a></div><div class="ttdeci">InstToBlockNodeMapTy InstToBlockNodeMap</div><div class="ttdoc">map a basic block to its ICFGNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00071">ICFG.h:71</a></div></div>
1388
1365
  </div><!-- fragment -->
1389
1366
  </div>
1390
1367
  </div>
1391
- <a id="a392e5ea7c356763a988407f91343f034"></a>
1392
- <h2 class="memtitle"><span class="permalink"><a href="#a392e5ea7c356763a988407f91343f034">&#9670;&nbsp;</a></span>getRetBlockNode()</h2>
1368
+ <a id="a2b3a5a9c3c4c623a6d45ab1eac3c6a8b"></a>
1369
+ <h2 class="memtitle"><span class="permalink"><a href="#a2b3a5a9c3c4c623a6d45ab1eac3c6a8b">&#9670;&nbsp;</a></span>getIntraICFGNode()</h2>
1393
1370
 
1394
1371
  <div class="memitem">
1395
1372
  <div class="memproto">
1396
1373
  <table class="memname">
1397
1374
  <tr>
1398
- <td class="memname"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> * ICFG::getRetBlockNode </td>
1375
+ <td class="memname"><a class="el" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a> * ICFG::getIntraICFGNode </td>
1399
1376
  <td>(</td>
1400
1377
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1401
1378
  <td class="paramname"><em>inst</em></td><td>)</td>
@@ -1404,18 +1381,15 @@ Additional Inherited Members</h2></td></tr>
1404
1381
  </table>
1405
1382
  </div><div class="memdoc">
1406
1383
 
1407
- <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00222">222</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1408
- <div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;{</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;associating an intrinsic debug instruction with an ICFGNode!&quot;</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a26ee40d30efc126734b7fb081db5da54">getRetICFGNode</a>(inst);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a10a3b111322e551dc781d732e2015261">addRetICFGNode</a>(inst);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no RetICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00193">SVFUtil.h:193</a></div></div>
1409
- <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1410
- <div class="ttc" id="classSVF_1_1ICFG_html_a10a3b111322e551dc781d732e2015261"><div class="ttname"><a href="classSVF_1_1ICFG.html#a10a3b111322e551dc781d732e2015261">SVF::ICFG::addRetICFGNode</a></div><div class="ttdeci">RetICFGNode * addRetICFGNode(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00258">ICFG.h:258</a></div></div>
1411
- <div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
1412
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00206">SVFUtil.h:206</a></div></div>
1413
- <div class="ttc" id="classSVF_1_1ICFG_html_a26ee40d30efc126734b7fb081db5da54"><div class="ttname"><a href="classSVF_1_1ICFG.html#a26ee40d30efc126734b7fb081db5da54">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const Instruction *cs)</div><div class="ttdoc">Get/Add a return node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00251">ICFG.h:251</a></div></div>
1384
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00233">233</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1385
+ <div class="fragment"><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#aedb66c7897f1d73185979e1297d1976d">getIntraBlock</a>(inst);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a6f673b42ff80bb9a97b4cc4dfea4101e">addIntraBlock</a>(inst);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a6f673b42ff80bb9a97b4cc4dfea4101e"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6f673b42ff80bb9a97b4cc4dfea4101e">SVF::ICFG::addIntraBlock</a></div><div class="ttdeci">IntraICFGNode * addIntraBlock(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00194">ICFG.h:194</a></div></div>
1386
+ <div class="ttc" id="classSVF_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#l00175">ICFGNode.h:175</a></div></div>
1387
+ <div class="ttc" id="classSVF_1_1ICFG_html_aedb66c7897f1d73185979e1297d1976d"><div class="ttname"><a href="classSVF_1_1ICFG.html#aedb66c7897f1d73185979e1297d1976d">SVF::ICFG::getIntraBlock</a></div><div class="ttdeci">IntraICFGNode * getIntraBlock(const Instruction *inst)</div><div class="ttdoc">Get/Add IntraBlock ICFGNode. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00187">ICFG.h:187</a></div></div>
1414
1388
  </div><!-- fragment -->
1415
1389
  </div>
1416
1390
  </div>
1417
- <a id="a26ee40d30efc126734b7fb081db5da54"></a>
1418
- <h2 class="memtitle"><span class="permalink"><a href="#a26ee40d30efc126734b7fb081db5da54">&#9670;&nbsp;</a></span>getRetICFGNode()</h2>
1391
+ <a id="a3b59f9ba22e03d323bc2fa5928902243"></a>
1392
+ <h2 class="memtitle"><span class="permalink"><a href="#a3b59f9ba22e03d323bc2fa5928902243">&#9670;&nbsp;</a></span>getRetBlock()</h2>
1419
1393
 
1420
1394
  <div class="memitem">
1421
1395
  <div class="memproto">
@@ -1424,7 +1398,7 @@ Additional Inherited Members</h2></td></tr>
1424
1398
  <td class="mlabels-left">
1425
1399
  <table class="memname">
1426
1400
  <tr>
1427
- <td class="memname"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* SVF::ICFG::getRetICFGNode </td>
1401
+ <td class="memname"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* SVF::ICFG::getRetBlock </td>
1428
1402
  <td>(</td>
1429
1403
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1430
1404
  <td class="paramname"><em>cs</em></td><td>)</td>
@@ -1445,6 +1419,32 @@ Additional Inherited Members</h2></td></tr>
1445
1419
  </div><!-- fragment -->
1446
1420
  </div>
1447
1421
  </div>
1422
+ <a id="a66cb50d8c176f800f06d9cb8924eb896"></a>
1423
+ <h2 class="memtitle"><span class="permalink"><a href="#a66cb50d8c176f800f06d9cb8924eb896">&#9670;&nbsp;</a></span>getRetICFGNode()</h2>
1424
+
1425
+ <div class="memitem">
1426
+ <div class="memproto">
1427
+ <table class="memname">
1428
+ <tr>
1429
+ <td class="memname"><a class="el" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a> * ICFG::getRetICFGNode </td>
1430
+ <td>(</td>
1431
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1432
+ <td class="paramname"><em>inst</em></td><td>)</td>
1433
+ <td></td>
1434
+ </tr>
1435
+ </table>
1436
+ </div><div class="memdoc">
1437
+
1438
+ <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00222">222</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1439
+ <div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;{</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a call instruction?&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;associating an intrinsic debug instruction with an ICFGNode!&quot;</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a3b59f9ba22e03d323bc2fa5928902243">getRetBlock</a>(inst);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#aae7bcc56ba04d08cc030f108b06299ae">addRetBlock</a>(inst);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> &amp;&amp; <span class="stringliteral">&quot;no RetICFGNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00193">SVFUtil.h:193</a></div></div>
1440
+ <div class="ttc" id="classSVF_1_1ICFG_html_a3b59f9ba22e03d323bc2fa5928902243"><div class="ttname"><a href="classSVF_1_1ICFG.html#a3b59f9ba22e03d323bc2fa5928902243">SVF::ICFG::getRetBlock</a></div><div class="ttdeci">RetICFGNode * getRetBlock(const Instruction *cs)</div><div class="ttdoc">Get/Add a return node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00251">ICFG.h:251</a></div></div>
1441
+ <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1442
+ <div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
1443
+ <div class="ttc" id="classSVF_1_1ICFG_html_aae7bcc56ba04d08cc030f108b06299ae"><div class="ttname"><a href="classSVF_1_1ICFG.html#aae7bcc56ba04d08cc030f108b06299ae">SVF::ICFG::addRetBlock</a></div><div class="ttdeci">RetICFGNode * addRetBlock(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00258">ICFG.h:258</a></div></div>
1444
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00206">SVFUtil.h:206</a></div></div>
1445
+ </div><!-- fragment -->
1446
+ </div>
1447
+ </div>
1448
1448
  <a id="a16c2ed1f9e28c84669b14dc48fb3c01a"></a>
1449
1449
  <h2 class="memtitle"><span class="permalink"><a href="#a16c2ed1f9e28c84669b14dc48fb3c01a">&#9670;&nbsp;</a></span>hasICFGNode()</h2>
1450
1450
 
@@ -1684,30 +1684,30 @@ Additional Inherited Members</h2></td></tr>
1684
1684
  <p>Remove callBlockNode to retBlockNode intraICFGEdge since we found at least one inter procedural edge </p>
1685
1685
 
1686
1686
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00426">426</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1687
- <div class="fragment"><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter-&gt;first;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* cs = callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>();</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() &amp;&amp; <span class="stringliteral">&quot;this is not an indirect call?&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &amp; functions = iter-&gt;second;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">getCallBlockNode</a>(cs);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">getRetBlockNode</a>(cs);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#a11a2c1f54747069b924ee2870163dc05">getFunEntryICFGNode</a>(callee);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a12f78e9ce71a904975932e1784060050">getFunExitICFGNode</a>(callee);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">addCallEdge</a>(callBlockNode, calleeEntryNode, cs);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">addRetEdge</a>(calleeExitNode, retBlockNode, cs);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(callee))</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(calleeEntryNode, calleeExitNode); </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(callBlockNode,retBlockNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a>(edge);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="comment">// dump ICFG</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">Options::DumpICFG</a>){</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_final&quot;</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_abde033687317d47909ee45db7501723f"><div class="ttname"><a href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">SVF::ICFG::addCallEdge</a></div><div class="ttdeci">ICFGEdge * addCallEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00375">ICFG.cpp:375</a></div></div>
1687
+ <div class="fragment"><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().begin();</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-&gt;<a class="code" href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">getIndCallMap</a>().end();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlock = iter-&gt;first;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* cs = callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>();</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(callBlock-&gt;<a class="code" href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">isIndirectCall</a>() &amp;&amp; <span class="stringliteral">&quot;this is not an indirect call?&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> &amp; functions = iter-&gt;second;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">for</span> (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = *func_iter;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">getCallICFGNode</a>(cs);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a66cb50d8c176f800f06d9cb8924eb896">getRetICFGNode</a>(cs);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">getFunEntryBlock</a>(callee);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">getFunExitBlock</a>(callee);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">addCallEdge</a>(callBlockNode, calleeEntryNode, cs);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">addRetEdge</a>(calleeExitNode, retBlockNode, cs);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(callee))</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(calleeEntryNode, calleeExitNode); </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(callBlockNode,retBlockNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a>(edge);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="comment">// dump ICFG</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">Options::DumpICFG</a>){</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg_final&quot;</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_abde033687317d47909ee45db7501723f"><div class="ttname"><a href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">SVF::ICFG::addCallEdge</a></div><div class="ttdeci">ICFGEdge * addCallEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00375">ICFG.cpp:375</a></div></div>
1688
1688
  <div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00042">ICFGEdge.h:42</a></div></div>
1689
1689
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_ad49fa2a288945f6910deb11acdf6a42d"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ad49fa2a288945f6910deb11acdf6a42d">SVF::PTACallGraph::getIndCallMap</a></div><div class="ttdeci">CallEdgeMap &amp; getIndCallMap()</div><div class="ttdoc">Get callees from an indirect callsite. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00280">PTACallGraph.h:280</a></div></div>
1690
1690
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
1691
- <div class="ttc" id="classSVF_1_1ICFG_html_a392e5ea7c356763a988407f91343f034"><div class="ttname"><a href="classSVF_1_1ICFG.html#a392e5ea7c356763a988407f91343f034">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetICFGNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00222">ICFG.cpp:222</a></div></div>
1692
1691
  <div class="ttc" id="classSVF_1_1PTACallGraph_html_a5f5a5ec7e707a21994d301cc07d32a5a"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">SVF::PTACallGraph::FunctionSet</a></div><div class="ttdeci">Set&lt; const SVFFunction * &gt; FunctionSet</div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00228">PTACallGraph.h:228</a></div></div>
1693
1692
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
1694
- <div class="ttc" id="classSVF_1_1ICFG_html_a12f78e9ce71a904975932e1784060050"><div class="ttname"><a href="classSVF_1_1ICFG.html#a12f78e9ce71a904975932e1784060050">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00219">ICFG.h:219</a></div></div>
1693
+ <div class="ttc" id="classSVF_1_1ICFG_html_a66cb50d8c176f800f06d9cb8924eb896"><div class="ttname"><a href="classSVF_1_1ICFG.html#a66cb50d8c176f800f06d9cb8924eb896">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00222">ICFG.cpp:222</a></div></div>
1695
1694
  <div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
1695
+ <div class="ttc" id="classSVF_1_1ICFG_html_adc66b547720b9271e6805edea0b9d01f"><div class="ttname"><a href="classSVF_1_1ICFG.html#adc66b547720b9271e6805edea0b9d01f">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallICFGNode * getCallICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
1696
1696
  <div class="ttc" id="classSVF_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#l00251">ICFGNode.h:251</a></div></div>
1697
+ <div class="ttc" id="classSVF_1_1ICFG_html_acc261924103bd0c357acd3acfa6cf38a"><div class="ttname"><a href="classSVF_1_1ICFG.html#acc261924103bd0c357acd3acfa6cf38a">SVF::ICFG::getFunEntryBlock</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00203">ICFG.h:203</a></div></div>
1697
1698
  <div class="ttc" id="classSVF_1_1ICFG_html_a534625b10673efe5b0f344bfebf9b3cf"><div class="ttname"><a href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">SVF::ICFG::removeICFGEdge</a></div><div class="ttdeci">void removeICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Remove a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00116">ICFG.h:116</a></div></div>
1698
1699
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
1699
1700
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_aa11226a2e4fa6a7b1d78006cc8ca0518"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#aa11226a2e4fa6a7b1d78006cc8ca0518">SVF::CallICFGNode::isIndirectCall</a></div><div class="ttdeci">bool isIndirectCall() const</div><div class="ttdoc">Return true if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00412">ICFGNode.h:412</a></div></div>
1700
1701
  <div class="ttc" id="classSVF_1_1ICFG_html_a4a44849b596c89ab14d2e5f18366e848"><div class="ttname"><a href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">SVF::ICFG::addRetEdge</a></div><div class="ttdeci">ICFGEdge * addRetEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00392">ICFG.cpp:392</a></div></div>
1701
1702
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">SVF::ICFGEdge::IntraCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00051">ICFGEdge.h:51</a></div></div>
1703
+ <div class="ttc" id="classSVF_1_1ICFG_html_a22d7f37a0cb2df90f73c1f2e3eaa71c6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a22d7f37a0cb2df90f73c1f2e3eaa71c6">SVF::ICFG::getFunExitBlock</a></div><div class="ttdeci">FunExitICFGNode * getFunExitBlock(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00219">ICFG.h:219</a></div></div>
1702
1704
  <div class="ttc" id="classSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00410">ICFG.cpp:410</a></div></div>
1703
1705
  <div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
1704
1706
  <div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
1705
1707
  <div class="ttc" id="classSVF_1_1Options_html_aea29a835c54fab800117e57de00e0b1e"><div class="ttname"><a href="classSVF_1_1Options.html#aea29a835c54fab800117e57de00e0b1e">SVF::Options::DumpICFG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; DumpICFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00135">Options.h:135</a></div></div>
1706
1708
  <div class="ttc" id="classSVF_1_1ICFG_html_aa662baae5682ef6ec5084fa4147c9709"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">SVF::ICFG::hasIntraICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasIntraICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdoc">Whether we has a SVFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00263">ICFG.cpp:263</a></div></div>
1707
- <div class="ttc" id="classSVF_1_1ICFG_html_a483e92e076a426ec8f177eab3b971723"><div class="ttname"><a href="classSVF_1_1ICFG.html#a483e92e076a426ec8f177eab3b971723">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallICFGNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00209">ICFG.cpp:209</a></div></div>
1708
1709
  <div class="ttc" id="classSVF_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#l00308">ICFGNode.h:308</a></div></div>
1709
1710
  <div class="ttc" id="classSVF_1_1ICFG_html_adafd8bbb91507a9a78a3f16305812afc"><div class="ttname"><a href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">SVF::ICFG::addIntraEdge</a></div><div class="ttdeci">ICFGEdge * addIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode)</div><div class="ttdoc">Add control-flow edges for top level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00337">ICFG.cpp:337</a></div></div>
1710
- <div class="ttc" id="classSVF_1_1ICFG_html_a11a2c1f54747069b924ee2870163dc05"><div class="ttname"><a href="classSVF_1_1ICFG.html#a11a2c1f54747069b924ee2870163dc05">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryICFGNode * getFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Get/Add a function entry node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00203">ICFG.h:203</a></div></div>
1711
1711
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00063">LLVMUtil.h:63</a></div></div>
1712
1712
  </div><!-- fragment -->
1713
1713
  </div>