svf-tools 1.0.336 → 1.0.337

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 (167) hide show
  1. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  6. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
  7. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  10. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  12. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +4 -4
  13. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +5 -2
  15. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
  16. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +17 -17
  17. package/SVF-doxygen/html/html/ICFG_8h_source.html +38 -37
  18. package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +7 -7
  22. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +4 -4
  23. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +21 -24
  24. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +42 -43
  25. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  26. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +1 -0
  27. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -5
  28. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +40 -40
  29. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +6 -6
  30. package/SVF-doxygen/html/html/SVFIR_8h_source.html +6 -6
  31. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -21
  32. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +47 -47
  33. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
  34. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +2 -2
  37. package/SVF-doxygen/html/html/VFGNode_8h_source.html +4 -4
  38. package/SVF-doxygen/html/html/VFG_8cpp_source.html +9 -9
  39. package/SVF-doxygen/html/html/VFG_8h_source.html +8 -8
  40. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
  41. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
  43. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +7 -10
  44. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +160 -161
  45. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -5
  46. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +199 -200
  47. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
  48. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +202 -203
  49. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +0 -3
  50. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +195 -196
  51. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +0 -3
  52. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +196 -197
  53. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +0 -3
  54. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +205 -206
  55. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +0 -3
  56. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  57. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +193 -194
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +0 -3
  59. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +116 -117
  60. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -12
  61. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +18 -18
  62. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +32 -32
  63. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +4 -4
  64. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
  65. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +19 -19
  66. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +104 -105
  67. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +5 -8
  68. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
  69. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +182 -183
  70. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +11 -14
  71. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +5 -5
  72. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  73. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +219 -220
  74. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +0 -3
  75. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +180 -181
  76. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +9 -12
  77. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +212 -213
  78. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +17 -20
  79. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  80. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +244 -245
  81. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +5 -8
  82. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
  84. package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +27 -26
  85. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +183 -116
  86. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +10 -5
  87. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +9 -9
  88. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +26 -25
  89. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
  90. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  91. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
  94. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +2 -2
  95. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +37 -36
  97. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +27 -3
  98. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +78 -79
  99. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +104 -144
  100. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
  101. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  102. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +6 -6
  103. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +122 -115
  104. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
  105. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +171 -172
  107. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +0 -3
  108. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
  109. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +11 -11
  110. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +11 -11
  111. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +161 -162
  113. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -6
  114. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +2 -2
  115. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +25 -25
  116. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +11 -11
  117. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +2 -2
  118. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +254 -255
  119. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -5
  120. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  121. package/SVF-doxygen/html/html/functions_d.html +0 -3
  122. package/SVF-doxygen/html/html/functions_func_d.html +0 -3
  123. package/SVF-doxygen/html/html/functions_func_i.html +13 -10
  124. package/SVF-doxygen/html/html/functions_i.html +10 -6
  125. package/SVF-doxygen/html/html/functions_l.html +6 -6
  126. package/SVF-doxygen/html/html/functions_n.html +3 -3
  127. package/SVF-doxygen/html/html/functions_p.html +9 -9
  128. package/SVF-doxygen/html/html/functions_r.html +1 -1
  129. package/SVF-doxygen/html/html/functions_rela.html +3 -0
  130. package/SVF-doxygen/html/html/functions_s.html +14 -12
  131. package/SVF-doxygen/html/html/functions_t.html +7 -5
  132. package/SVF-doxygen/html/html/functions_v.html +6 -6
  133. package/SVF-doxygen/html/html/search/all_10.js +7 -7
  134. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  135. package/SVF-doxygen/html/html/search/all_13.js +10 -10
  136. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  137. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  138. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  139. package/SVF-doxygen/html/html/search/all_4.js +0 -1
  140. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  141. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  142. package/SVF-doxygen/html/html/search/all_d.js +3 -3
  143. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  144. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  145. package/SVF-doxygen/html/html/search/functions_3.js +0 -1
  146. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  147. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  148. package/SVF-doxygen/html/html/search/related_4.js +1 -0
  149. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  150. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  151. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  152. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  153. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
  154. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +1 -1
  155. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +1 -1
  156. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +2 -2
  157. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  158. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  159. package/include/Graphs/ICFG.h +5 -3
  160. package/include/MemoryModel/PointerAnalysis.h +0 -3
  161. package/include/MemoryModel/SVFStatements.h +5 -0
  162. package/lib/Graphs/ICFG.cpp +2 -2
  163. package/lib/MemoryModel/PointerAnalysis.cpp +1 -21
  164. package/lib/MemoryModel/SVFStatements.cpp +10 -1
  165. package/lib/SVF-FE/ICFGBuilder.cpp +17 -2
  166. package/lib/SVF-FE/SVFIRBuilder.cpp +13 -0
  167. package/package.json +1 -1
@@ -66,8 +66,10 @@ $(function() {
66
66
  <a href="#pub-types">Public Types</a> &#124;
67
67
  <a href="#pub-methods">Public Member Functions</a> &#124;
68
68
  <a href="#pub-attribs">Public Attributes</a> &#124;
69
+ <a href="#pro-methods">Protected Member Functions</a> &#124;
69
70
  <a href="#pri-methods">Private Member Functions</a> &#124;
70
71
  <a href="#pri-attribs">Private Attributes</a> &#124;
72
+ <a href="#friends">Friends</a> &#124;
71
73
  <a href="classSVF_1_1ICFG-members.html">List of all members</a> </div>
72
74
  <div class="headertitle">
73
75
  <div class="title">SVF::ICFG Class Reference</div> </div>
@@ -146,21 +148,6 @@ Public Member Functions</h2></td></tr>
146
148
  <tr class="memitem:a5a00682b75726cacc1b4d88bbf40c824"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">updateCallGraph</a> (<a class="el" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a> *callgraph)</td></tr>
147
149
  <tr class="memdesc:a5a00682b75726cacc1b4d88bbf40c824"><td class="mdescLeft">&#160;</td><td class="mdescRight">update <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> for indirect calls <a href="#a5a00682b75726cacc1b4d88bbf40c824">More...</a><br /></td></tr>
148
150
  <tr class="separator:a5a00682b75726cacc1b4d88bbf40c824"><td class="memSeparator" colspan="2">&#160;</td></tr>
149
- <tr class="memitem:a534625b10673efe5b0f344bfebf9b3cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a> (<a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge)</td></tr>
150
- <tr class="memdesc:a534625b10673efe5b0f344bfebf9b3cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge. <a href="#a534625b10673efe5b0f344bfebf9b3cf">More...</a><br /></td></tr>
151
- <tr class="separator:a534625b10673efe5b0f344bfebf9b3cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
152
- <tr class="memitem:a403cd10f7c01cc879d803a9759e729cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a403cd10f7c01cc879d803a9759e729cb">removeICFGNode</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</td></tr>
153
- <tr class="memdesc:a403cd10f7c01cc879d803a9759e729cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. <a href="#a403cd10f7c01cc879d803a9759e729cb">More...</a><br /></td></tr>
154
- <tr class="separator:a403cd10f7c01cc879d803a9759e729cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
- <tr class="memitem:a70421a19a494eb6131a9ae72ef1a64d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a> (const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode)</td></tr>
156
- <tr class="memdesc:a70421a19a494eb6131a9ae72ef1a64d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">sanitize Intra edges, verify that both nodes belong to the same function. <a href="#a70421a19a494eb6131a9ae72ef1a64d6">More...</a><br /></td></tr>
157
- <tr class="separator:a70421a19a494eb6131a9ae72ef1a64d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
- <tr class="memitem:a462f590c2604184d69e4efe3d85a7b5b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a> (<a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge)</td></tr>
159
- <tr class="memdesc:a462f590c2604184d69e4efe3d85a7b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> edge. <a href="#a462f590c2604184d69e4efe3d85a7b5b">More...</a><br /></td></tr>
160
- <tr class="separator:a462f590c2604184d69e4efe3d85a7b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
161
- <tr class="memitem:a15816a82d8c33a066009440dce6ee973"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</td></tr>
162
- <tr class="memdesc:a15816a82d8c33a066009440dce6ee973"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node. <a href="#a15816a82d8c33a066009440dce6ee973">More...</a><br /></td></tr>
163
- <tr class="separator:a15816a82d8c33a066009440dce6ee973"><td class="memSeparator" colspan="2">&#160;</td></tr>
164
151
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
165
152
  <tr class="memitem:aa662baae5682ef6ec5084fa4147c9709"><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#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</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>
166
153
  <tr class="memdesc:aa662baae5682ef6ec5084fa4147c9709"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether we has a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge. <a href="#aa662baae5682ef6ec5084fa4147c9709">More...</a><br /></td></tr>
@@ -170,16 +157,6 @@ Public Member Functions</h2></td></tr>
170
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>
171
158
  <tr class="separator:a29fb70d6638765ce291c5a8a11fbea64"><td class="memSeparator" colspan="2">&#160;</td></tr>
172
159
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
173
- <tr class="memitem:adafd8bbb91507a9a78a3f16305812afc"><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#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode)</td></tr>
174
- <tr class="memdesc:adafd8bbb91507a9a78a3f16305812afc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add control-flow edges for top level pointers. <a href="#adafd8bbb91507a9a78a3f16305812afc">More...</a><br /></td></tr>
175
- <tr class="separator:adafd8bbb91507a9a78a3f16305812afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
176
- <tr class="memitem:a8b038782880ae8950076e2c104bc4b18"><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#a8b038782880ae8950076e2c104bc4b18">addConditionalIntraEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode, const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *condition, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> branchID)</td></tr>
177
- <tr class="separator:a8b038782880ae8950076e2c104bc4b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
178
- <tr class="memitem:abde033687317d47909ee45db7501723f"><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#abde033687317d47909ee45db7501723f">addCallEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
179
- <tr class="separator:abde033687317d47909ee45db7501723f"><td class="memSeparator" colspan="2">&#160;</td></tr>
180
- <tr class="memitem:a4a44849b596c89ab14d2e5f18366e848"><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#a4a44849b596c89ab14d2e5f18366e848">addRetEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
181
- <tr class="separator:a4a44849b596c89ab14d2e5f18366e848"><td class="memSeparator" colspan="2">&#160;</td></tr>
182
- <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
183
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>
184
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>
185
162
  <tr class="separator:ab7b0b3088b46ad65451905cc4f567a7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -251,6 +228,34 @@ Public Attributes</h2></td></tr>
251
228
  <tr class="memdesc:a38122734cbe71551a420dfb7fee2012e inherit pub_attribs_classSVF_1_1GenericGraph"><td class="mdescLeft">&#160;</td><td class="mdescRight">total num of edge <a href="classSVF_1_1GenericGraph.html#a38122734cbe71551a420dfb7fee2012e">More...</a><br /></td></tr>
252
229
  <tr class="separator:a38122734cbe71551a420dfb7fee2012e inherit pub_attribs_classSVF_1_1GenericGraph"><td class="memSeparator" colspan="2">&#160;</td></tr>
253
230
  </table><table class="memberdecls">
231
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
232
+ Protected Member Functions</h2></td></tr>
233
+ <tr class="memitem:a534625b10673efe5b0f344bfebf9b3cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a534625b10673efe5b0f344bfebf9b3cf">removeICFGEdge</a> (<a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge)</td></tr>
234
+ <tr class="memdesc:a534625b10673efe5b0f344bfebf9b3cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge. <a href="#a534625b10673efe5b0f344bfebf9b3cf">More...</a><br /></td></tr>
235
+ <tr class="separator:a534625b10673efe5b0f344bfebf9b3cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
236
+ <tr class="memitem:a403cd10f7c01cc879d803a9759e729cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a403cd10f7c01cc879d803a9759e729cb">removeICFGNode</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</td></tr>
237
+ <tr class="memdesc:a403cd10f7c01cc879d803a9759e729cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. <a href="#a403cd10f7c01cc879d803a9759e729cb">More...</a><br /></td></tr>
238
+ <tr class="separator:a403cd10f7c01cc879d803a9759e729cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
239
+ <tr class="memitem:a70421a19a494eb6131a9ae72ef1a64d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a> (const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode)</td></tr>
240
+ <tr class="memdesc:a70421a19a494eb6131a9ae72ef1a64d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">sanitize Intra edges, verify that both nodes belong to the same function. <a href="#a70421a19a494eb6131a9ae72ef1a64d6">More...</a><br /></td></tr>
241
+ <tr class="separator:a70421a19a494eb6131a9ae72ef1a64d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
242
+ <tr class="memitem:a462f590c2604184d69e4efe3d85a7b5b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a> (<a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> *edge)</td></tr>
243
+ <tr class="memdesc:a462f590c2604184d69e4efe3d85a7b5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> edge. <a href="#a462f590c2604184d69e4efe3d85a7b5b">More...</a><br /></td></tr>
244
+ <tr class="separator:a462f590c2604184d69e4efe3d85a7b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
245
+ <tr class="memitem:a15816a82d8c33a066009440dce6ee973"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</td></tr>
246
+ <tr class="memdesc:a15816a82d8c33a066009440dce6ee973"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node. <a href="#a15816a82d8c33a066009440dce6ee973">More...</a><br /></td></tr>
247
+ <tr class="separator:a15816a82d8c33a066009440dce6ee973"><td class="memSeparator" colspan="2">&#160;</td></tr>
248
+ <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
249
+ <tr class="memitem:adafd8bbb91507a9a78a3f16305812afc"><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#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode)</td></tr>
250
+ <tr class="memdesc:adafd8bbb91507a9a78a3f16305812afc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add control-flow edges for top level pointers. <a href="#adafd8bbb91507a9a78a3f16305812afc">More...</a><br /></td></tr>
251
+ <tr class="separator:adafd8bbb91507a9a78a3f16305812afc"><td class="memSeparator" colspan="2">&#160;</td></tr>
252
+ <tr class="memitem:a8b038782880ae8950076e2c104bc4b18"><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#a8b038782880ae8950076e2c104bc4b18">addConditionalIntraEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode, const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *condition, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> branchID)</td></tr>
253
+ <tr class="separator:a8b038782880ae8950076e2c104bc4b18"><td class="memSeparator" colspan="2">&#160;</td></tr>
254
+ <tr class="memitem:abde033687317d47909ee45db7501723f"><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#abde033687317d47909ee45db7501723f">addCallEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
255
+ <tr class="separator:abde033687317d47909ee45db7501723f"><td class="memSeparator" colspan="2">&#160;</td></tr>
256
+ <tr class="memitem:a4a44849b596c89ab14d2e5f18366e848"><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#a4a44849b596c89ab14d2e5f18366e848">addRetEdge</a> (<a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *srcNode, <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *dstNode, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *cs)</td></tr>
257
+ <tr class="separator:a4a44849b596c89ab14d2e5f18366e848"><td class="memSeparator" colspan="2">&#160;</td></tr>
258
+ </table><table class="memberdecls">
254
259
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
255
260
  Private Member Functions</h2></td></tr>
256
261
  <tr class="memitem:a5f03c3befe1df9fa62221fc6989d387a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a5f03c3befe1df9fa62221fc6989d387a">getIntraBlockICFGNode</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
@@ -300,6 +305,11 @@ Private Attributes</h2></td></tr>
300
305
  <tr class="memdesc:a37ec47cd95cf25b18720c4267a9fd40c"><td class="mdescLeft">&#160;</td><td class="mdescRight">unique basic block for all globals <a href="#a37ec47cd95cf25b18720c4267a9fd40c">More...</a><br /></td></tr>
301
306
  <tr class="separator:a37ec47cd95cf25b18720c4267a9fd40c"><td class="memSeparator" colspan="2">&#160;</td></tr>
302
307
  </table><table class="memberdecls">
308
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
309
+ Friends</h2></td></tr>
310
+ <tr class="memitem:a0d2b8819e1a1375c3543b1cf202193fa"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ICFG.html#a0d2b8819e1a1375c3543b1cf202193fa">ICFGBuilder</a></td></tr>
311
+ <tr class="separator:a0d2b8819e1a1375c3543b1cf202193fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
312
+ </table><table class="memberdecls">
303
313
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
304
314
  Additional Inherited Members</h2></td></tr>
305
315
  <tr class="inherit_header pro_attribs_classSVF_1_1GenericGraph"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classSVF_1_1GenericGraph')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a></td></tr>
@@ -323,7 +333,7 @@ Additional Inherited Members</h2></td></tr>
323
333
  </table>
324
334
  </div><div class="memdoc">
325
335
 
326
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00054">54</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
336
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00056">56</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
327
337
 
328
338
  </div>
329
339
  </div>
@@ -339,7 +349,7 @@ Additional Inherited Members</h2></td></tr>
339
349
  </table>
340
350
  </div><div class="memdoc">
341
351
 
342
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00058">58</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
352
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00060">60</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
343
353
 
344
354
  </div>
345
355
  </div>
@@ -355,7 +365,7 @@ Additional Inherited Members</h2></td></tr>
355
365
  </table>
356
366
  </div><div class="memdoc">
357
367
 
358
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00059">59</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
368
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00061">61</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
359
369
 
360
370
  </div>
361
371
  </div>
@@ -371,7 +381,7 @@ Additional Inherited Members</h2></td></tr>
371
381
  </table>
372
382
  </div><div class="memdoc">
373
383
 
374
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00056">56</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
384
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00058">58</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
375
385
 
376
386
  </div>
377
387
  </div>
@@ -387,7 +397,7 @@ Additional Inherited Members</h2></td></tr>
387
397
  </table>
388
398
  </div><div class="memdoc">
389
399
 
390
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00057">57</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
400
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00059">59</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
391
401
 
392
402
  </div>
393
403
  </div>
@@ -403,7 +413,7 @@ Additional Inherited Members</h2></td></tr>
403
413
  </table>
404
414
  </div><div class="memdoc">
405
415
 
406
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00052">52</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
416
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00054">54</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
407
417
 
408
418
  </div>
409
419
  </div>
@@ -419,7 +429,7 @@ Additional Inherited Members</h2></td></tr>
419
429
  </table>
420
430
  </div><div class="memdoc">
421
431
 
422
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00051">51</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
432
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00053">53</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
423
433
 
424
434
  </div>
425
435
  </div>
@@ -435,7 +445,7 @@ Additional Inherited Members</h2></td></tr>
435
445
  </table>
436
446
  </div><div class="memdoc">
437
447
 
438
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00060">60</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
448
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00062">62</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
439
449
 
440
450
  </div>
441
451
  </div>
@@ -451,7 +461,7 @@ Additional Inherited Members</h2></td></tr>
451
461
  </table>
452
462
  </div><div class="memdoc">
453
463
 
454
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00053">53</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
464
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00055">55</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
455
465
 
456
466
  </div>
457
467
  </div>
@@ -478,10 +488,10 @@ Additional Inherited Members</h2></td></tr>
478
488
 
479
489
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00172">172</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
480
490
  <div class="fragment"><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; : <a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>(0)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">&quot;\tCreate ICFG ...\n&quot;</span>));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">globalBlockNode</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1GlobalBlockNode.html">GlobalBlockNode</a>(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(<a class="code" href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">globalBlockNode</a>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00101">SVFUtil.cpp:101</a></div></div>
481
- <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#l00062">ICFG.h:62</a></div></div>
491
+ <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>
482
492
  <div class="ttc" id="classSVF_1_1GlobalBlockNode_html"><div class="ttname"><a href="classSVF_1_1GlobalBlockNode.html">SVF::GlobalBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00142">ICFGNode.h:142</a></div></div>
483
- <div class="ttc" id="classSVF_1_1ICFG_html_a37ec47cd95cf25b18720c4267a9fd40c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">SVF::ICFG::globalBlockNode</a></div><div class="ttdeci">GlobalBlockNode * globalBlockNode</div><div class="ttdoc">unique basic block for all globals </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
484
- <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#l00155">ICFG.h:155</a></div></div>
493
+ <div class="ttc" id="classSVF_1_1ICFG_html_a37ec47cd95cf25b18720c4267a9fd40c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">SVF::ICFG::globalBlockNode</a></div><div class="ttdeci">GlobalBlockNode * globalBlockNode</div><div class="ttdoc">unique basic block for all globals </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00072">ICFG.h:72</a></div></div>
494
+ <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>
485
495
  <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>
486
496
  <div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00154">SVFBasicTypes.h:154</a></div></div>
487
497
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00149">SVFBasicTypes.h:149</a></div></div>
@@ -513,8 +523,8 @@ Additional Inherited Members</h2></td></tr>
513
523
 
514
524
  <p>Destructor. </p>
515
525
 
516
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00077">77</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
517
- <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div></div><!-- fragment -->
526
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00079">79</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
527
+ <div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div></div><!-- fragment -->
518
528
  </div>
519
529
  </div>
520
530
  <h2 class="groupheader">Member Function Documentation</h2>
@@ -523,6 +533,9 @@ Additional Inherited Members</h2></td></tr>
523
533
 
524
534
  <div class="memitem">
525
535
  <div class="memproto">
536
+ <table class="mlabels">
537
+ <tr>
538
+ <td class="mlabels-left">
526
539
  <table class="memname">
527
540
  <tr>
528
541
  <td class="memname"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * ICFG::addCallEdge </td>
@@ -548,6 +561,11 @@ Additional Inherited Members</h2></td></tr>
548
561
  <td></td><td></td>
549
562
  </tr>
550
563
  </table>
564
+ </td>
565
+ <td class="mlabels-right">
566
+ <span class="mlabels"><span class="mlabel">protected</span></span> </td>
567
+ </tr>
568
+ </table>
551
569
  </div><div class="memdoc">
552
570
  <p>Add interprocedural call edges between two nodes </p>
553
571
 
@@ -557,7 +575,7 @@ Additional Inherited Members</h2></td></tr>
557
575
  <div class="ttc" id="classSVF_1_1CallCFGEdge_html"><div class="ttname"><a href="classSVF_1_1CallCFGEdge.html">SVF::CallCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00162">ICFGEdge.h:162</a></div></div>
558
576
  <div class="ttc" id="classSVF_1_1ICFG_html_a86535e50d1feba706b19491d905baef1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">SVF::ICFG::hasInterICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasInterICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00268">ICFG.cpp:268</a></div></div>
559
577
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429a3486c9d9a182f2ba5d986fe74439ec2e">SVF::ICFGEdge::CallCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00052">ICFGEdge.h:52</a></div></div>
560
- <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00146">ICFG.h:146</a></div></div>
578
+ <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00148">ICFG.h:148</a></div></div>
561
579
  </div><!-- fragment -->
562
580
  </div>
563
581
  </div>
@@ -587,10 +605,10 @@ Additional Inherited Members</h2></td></tr>
587
605
 
588
606
  <p>Get/Add a call node. </p>
589
607
 
590
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00233">233</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
591
- <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; CallBlockNode* sNode = <span class="keyword">new</span> CallBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</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 CallBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
592
- <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#l00062">ICFG.h:62</a></div></div>
593
- <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#l00155">ICFG.h:155</a></div></div>
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; CallBlockNode* sNode = <span class="keyword">new</span> CallBlockNode(<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 CallBlockNode </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>
594
612
  </div><!-- fragment -->
595
613
  </div>
596
614
  </div>
@@ -599,6 +617,9 @@ Additional Inherited Members</h2></td></tr>
599
617
 
600
618
  <div class="memitem">
601
619
  <div class="memproto">
620
+ <table class="mlabels">
621
+ <tr>
622
+ <td class="mlabels-left">
602
623
  <table class="memname">
603
624
  <tr>
604
625
  <td class="memname"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * ICFG::addConditionalIntraEdge </td>
@@ -630,6 +651,11 @@ Additional Inherited Members</h2></td></tr>
630
651
  <td></td><td></td>
631
652
  </tr>
632
653
  </table>
654
+ </td>
655
+ <td class="mlabels-right">
656
+ <span class="mlabels"><span class="mlabel">protected</span></span> </td>
657
+ </tr>
658
+ </table>
633
659
  </div><div class="memdoc">
634
660
  <p>Add conditional intraprocedural edges between two nodes </p>
635
661
 
@@ -639,9 +665,9 @@ Additional Inherited Members</h2></td></tr>
639
665
  <div class="ttc" id="classSVF_1_1IntraCFGEdge_html_a97402e3c122618d5be189dce1b58cd8f"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#a97402e3c122618d5be189dce1b58cd8f">SVF::IntraCFGEdge::setBranchCondtion</a></div><div class="ttdeci">void setBranchCondtion(const Value *pNode, NodeID branchID)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00146">ICFGEdge.h:146</a></div></div>
640
666
  <div class="ttc" id="classSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00111">ICFGEdge.h:111</a></div></div>
641
667
  <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>
642
- <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00146">ICFG.h:146</a></div></div>
668
+ <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00148">ICFG.h:148</a></div></div>
643
669
  <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#l00251">ICFG.cpp:251</a></div></div>
644
- <div class="ttc" id="classSVF_1_1ICFG_html_a70421a19a494eb6131a9ae72ef1a64d6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">SVF::ICFG::checkIntraEdgeParents</a></div><div class="ttdeci">void checkIntraEdgeParents(const ICFGNode *srcNode, const ICFGNode *dstNode)</div><div class="ttdoc">sanitize Intra edges, verify that both nodes belong to the same function. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00135">ICFG.h:135</a></div></div>
670
+ <div class="ttc" id="classSVF_1_1ICFG_html_a70421a19a494eb6131a9ae72ef1a64d6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">SVF::ICFG::checkIntraEdgeParents</a></div><div class="ttdeci">void checkIntraEdgeParents(const ICFGNode *srcNode, const ICFGNode *dstNode)</div><div class="ttdoc">sanitize Intra edges, verify that both nodes belong to the same function. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00137">ICFG.h:137</a></div></div>
645
671
  </div><!-- fragment -->
646
672
  </div>
647
673
  </div>
@@ -669,10 +695,10 @@ Additional Inherited Members</h2></td></tr>
669
695
  </table>
670
696
  </div><div class="memdoc">
671
697
 
672
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00208">208</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
673
- <div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; FunEntryBlockNode* sNode = <span class="keyword">new</span> FunEntryBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,fun);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</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#l00062">ICFG.h:62</a></div></div>
674
- <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 FunExitBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00065">ICFG.h:65</a></div></div>
675
- <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#l00155">ICFG.h:155</a></div></div>
698
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00210">210</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
699
+ <div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; FunEntryBlockNode* sNode = <span class="keyword">new</span> FunEntryBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,fun);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</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>
700
+ <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 FunExitBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
701
+ <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>
676
702
  </div><!-- fragment -->
677
703
  </div>
678
704
  </div>
@@ -700,10 +726,10 @@ Additional Inherited Members</h2></td></tr>
700
726
  </table>
701
727
  </div><div class="memdoc">
702
728
 
703
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00224">224</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
704
- <div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; FunExitBlockNode* sNode = <span class="keyword">new</span> FunExitBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, fun);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</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#l00062">ICFG.h:62</a></div></div>
705
- <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#l00155">ICFG.h:155</a></div></div>
706
- <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 FunEntryBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00066">ICFG.h:66</a></div></div>
729
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00226">226</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
730
+ <div class="fragment"><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; FunExitBlockNode* sNode = <span class="keyword">new</span> FunExitBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, fun);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>[fun] = sNode;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</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>
731
+ <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>
732
+ <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 FunEntryBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00068">ICFG.h:68</a></div></div>
707
733
  </div><!-- fragment -->
708
734
  </div>
709
735
  </div>
@@ -726,15 +752,15 @@ Additional Inherited Members</h2></td></tr>
726
752
  </table>
727
753
  </td>
728
754
  <td class="mlabels-right">
729
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
755
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
730
756
  </tr>
731
757
  </table>
732
758
  </div><div class="memdoc">
733
759
 
734
760
  <p>Add <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> edge. </p>
735
761
 
736
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00146">146</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
737
- <div class="fragment"><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">bool</span> added1 = edge-&gt;getDstNode()-&gt;addIncomingEdge(edge);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">bool</span> added2 = edge-&gt;getSrcNode()-&gt;addOutgoingEdge(edge);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added1 &amp;&amp; added2 &amp;&amp; <span class="stringliteral">&quot;edge not added??&quot;</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><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>
762
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00148">148</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
763
+ <div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">bool</span> added1 = edge-&gt;getDstNode()-&gt;addIncomingEdge(edge);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">bool</span> added2 = edge-&gt;getSrcNode()-&gt;addOutgoingEdge(edge);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added1 &amp;&amp; added2 &amp;&amp; <span class="stringliteral">&quot;edge not added??&quot;</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><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>
738
764
  </div><!-- fragment -->
739
765
  </div>
740
766
  </div>
@@ -757,15 +783,15 @@ Additional Inherited Members</h2></td></tr>
757
783
  </table>
758
784
  </td>
759
785
  <td class="mlabels-right">
760
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
786
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
761
787
  </tr>
762
788
  </table>
763
789
  </div><div class="memdoc">
764
790
 
765
791
  <p>Add a <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node. </p>
766
792
 
767
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00155">155</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
768
- <div class="fragment"><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(node-&gt;getId(),node);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00380">GenericGraph.h:380</a></div></div>
793
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00157">157</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
794
+ <div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(node-&gt;getId(),node);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a0a8831a5429005ff9d71adbd6bf3994f"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">SVF::GenericGraph::addGNode</a></div><div class="ttdeci">void addGNode(NodeID id, NodeType *node)</div><div class="ttdoc">Add a Node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00380">GenericGraph.h:380</a></div></div>
769
795
  </div><!-- fragment -->
770
796
  </div>
771
797
  </div>
@@ -793,10 +819,10 @@ Additional Inherited Members</h2></td></tr>
793
819
  </table>
794
820
  </div><div class="memdoc">
795
821
 
796
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00192">192</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
797
- <div class="fragment"><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; IntraBlockNode* sNode = <span class="keyword">new</span> IntraBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,inst);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>[inst] = sNode;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</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#l00062">ICFG.h:62</a></div></div>
798
- <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#l00069">ICFG.h:69</a></div></div>
799
- <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#l00155">ICFG.h:155</a></div></div>
822
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00194">194</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
823
+ <div class="fragment"><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; IntraBlockNode* sNode = <span class="keyword">new</span> IntraBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++,inst);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>[inst] = sNode;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</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>
824
+ <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>
825
+ <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>
800
826
  </div><!-- fragment -->
801
827
  </div>
802
828
  </div>
@@ -805,6 +831,9 @@ Additional Inherited Members</h2></td></tr>
805
831
 
806
832
  <div class="memitem">
807
833
  <div class="memproto">
834
+ <table class="mlabels">
835
+ <tr>
836
+ <td class="mlabels-left">
808
837
  <table class="memname">
809
838
  <tr>
810
839
  <td class="memname"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * ICFG::addIntraEdge </td>
@@ -824,6 +853,11 @@ Additional Inherited Members</h2></td></tr>
824
853
  <td></td><td></td>
825
854
  </tr>
826
855
  </table>
856
+ </td>
857
+ <td class="mlabels-right">
858
+ <span class="mlabels"><span class="mlabel">protected</span></span> </td>
859
+ </tr>
860
+ </table>
827
861
  </div><div class="memdoc">
828
862
 
829
863
  <p>Add control-flow edges for top level pointers. </p>
@@ -834,9 +868,9 @@ Additional Inherited Members</h2></td></tr>
834
868
  <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>
835
869
  <div class="ttc" id="classSVF_1_1IntraCFGEdge_html"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html">SVF::IntraCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00111">ICFGEdge.h:111</a></div></div>
836
870
  <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>
837
- <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00146">ICFG.h:146</a></div></div>
871
+ <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00148">ICFG.h:148</a></div></div>
838
872
  <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#l00251">ICFG.cpp:251</a></div></div>
839
- <div class="ttc" id="classSVF_1_1ICFG_html_a70421a19a494eb6131a9ae72ef1a64d6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">SVF::ICFG::checkIntraEdgeParents</a></div><div class="ttdeci">void checkIntraEdgeParents(const ICFGNode *srcNode, const ICFGNode *dstNode)</div><div class="ttdoc">sanitize Intra edges, verify that both nodes belong to the same function. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00135">ICFG.h:135</a></div></div>
873
+ <div class="ttc" id="classSVF_1_1ICFG_html_a70421a19a494eb6131a9ae72ef1a64d6"><div class="ttname"><a href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">SVF::ICFG::checkIntraEdgeParents</a></div><div class="ttdeci">void checkIntraEdgeParents(const ICFGNode *srcNode, const ICFGNode *dstNode)</div><div class="ttdoc">sanitize Intra edges, verify that both nodes belong to the same function. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00137">ICFG.h:137</a></div></div>
840
874
  </div><!-- fragment -->
841
875
  </div>
842
876
  </div>
@@ -845,6 +879,9 @@ Additional Inherited Members</h2></td></tr>
845
879
 
846
880
  <div class="memitem">
847
881
  <div class="memproto">
882
+ <table class="mlabels">
883
+ <tr>
884
+ <td class="mlabels-left">
848
885
  <table class="memname">
849
886
  <tr>
850
887
  <td class="memname"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * ICFG::addRetEdge </td>
@@ -870,6 +907,11 @@ Additional Inherited Members</h2></td></tr>
870
907
  <td></td><td></td>
871
908
  </tr>
872
909
  </table>
910
+ </td>
911
+ <td class="mlabels-right">
912
+ <span class="mlabels"><span class="mlabel">protected</span></span> </td>
913
+ </tr>
914
+ </table>
873
915
  </div><div class="memdoc">
874
916
  <p>Add interprocedural return edges between two nodes </p>
875
917
 
@@ -878,7 +920,7 @@ Additional Inherited Members</h2></td></tr>
878
920
  <div class="ttc" id="classSVF_1_1ICFGEdge_html_a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429ad2370a77f6cc112b8c26efbcc36bf541">SVF::ICFGEdge::RetCF</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00053">ICFGEdge.h:53</a></div></div>
879
921
  <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>
880
922
  <div class="ttc" id="classSVF_1_1ICFG_html_a86535e50d1feba706b19491d905baef1"><div class="ttname"><a href="classSVF_1_1ICFG.html#a86535e50d1feba706b19491d905baef1">SVF::ICFG::hasInterICFGEdge</a></div><div class="ttdeci">ICFGEdge * hasInterICFGEdge(ICFGNode *src, ICFGNode *dst, ICFGEdge::ICFGEdgeK kind)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00268">ICFG.cpp:268</a></div></div>
881
- <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00146">ICFG.h:146</a></div></div>
923
+ <div class="ttc" id="classSVF_1_1ICFG_html_a462f590c2604184d69e4efe3d85a7b5b"><div class="ttname"><a href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">SVF::ICFG::addICFGEdge</a></div><div class="ttdeci">bool addICFGEdge(ICFGEdge *edge)</div><div class="ttdoc">Add ICFG edge. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00148">ICFG.h:148</a></div></div>
882
924
  <div class="ttc" id="classSVF_1_1RetCFGEdge_html"><div class="ttname"><a href="classSVF_1_1RetCFGEdge.html">SVF::RetCFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00199">ICFGEdge.h:199</a></div></div>
883
925
  </div><!-- fragment -->
884
926
  </div>
@@ -907,11 +949,11 @@ Additional Inherited Members</h2></td></tr>
907
949
  </table>
908
950
  </div><div class="memdoc">
909
951
 
910
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00256">256</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
911
- <div class="fragment"><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; CallBlockNode* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; RetBlockNode* sNode = <span class="keyword">new</span> RetBlockNode(<a class="code" href="classSVF_1_1ICFG.html#a5df6061b65d021cd73c66592ec79f052">totalICFGNode</a>++, cs, callBlockNode);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; callBlockNode-&gt;setRetBlockNode(sNode);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(sNode);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>[cs] = sNode;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
912
- <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#l00062">ICFG.h:62</a></div></div>
913
- <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#l00155">ICFG.h:155</a></div></div>
914
- <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 RetBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00068">ICFG.h:68</a></div></div>
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; CallBlockNode* callBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; RetBlockNode* sNode = <span class="keyword">new</span> RetBlockNode(<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;setRetBlockNode(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_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
954
+ <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>
955
+ <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>
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 RetBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
915
957
  </div><!-- fragment -->
916
958
  </div>
917
959
  </div>
@@ -944,15 +986,15 @@ Additional Inherited Members</h2></td></tr>
944
986
  </table>
945
987
  </td>
946
988
  <td class="mlabels-right">
947
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
989
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
948
990
  </tr>
949
991
  </table>
950
992
  </div><div class="memdoc">
951
993
 
952
994
  <p>sanitize Intra edges, verify that both nodes belong to the same function. </p>
953
995
 
954
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00135">135</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
955
- <div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">const</span> SVFFunction* srcfun = srcNode-&gt;getFun();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> SVFFunction* dstfun = dstNode-&gt;getFun();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(srcfun != <span class="keyword">nullptr</span> &amp;&amp; dstfun != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((srcfun == dstfun) &amp;&amp; <span class="stringliteral">&quot;src and dst nodes of an intra edge should in the same function!&quot;</span> );</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><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>
996
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00137">137</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
997
+ <div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">const</span> SVFFunction* srcfun = srcNode-&gt;getFun();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> SVFFunction* dstfun = dstNode-&gt;getFun();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(srcfun != <span class="keyword">nullptr</span> &amp;&amp; dstfun != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((srcfun == dstfun) &amp;&amp; <span class="stringliteral">&quot;src and dst nodes of an intra edge should in the same function!&quot;</span> );</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><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>
956
998
  </div><!-- fragment -->
957
999
  </div>
958
1000
  </div>
@@ -1039,11 +1081,11 @@ Additional Inherited Members</h2></td></tr>
1039
1081
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00197">197</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1040
1082
  <div class="fragment"><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) ==<span class="keyword">false</span>)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</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="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</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="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a288c5cc9fb6595d367f23d1c0c05a57a">getCallICFGNode</a>(inst);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#ac069357c3f5140fcb0d6163c944638fd">addCallICFGNode</a>(inst);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</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 CallBlockNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</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>
1041
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>
1042
- <div class="ttc" id="classSVF_1_1ICFG_html_a288c5cc9fb6595d367f23d1c0c05a57a"><div class="ttname"><a href="classSVF_1_1ICFG.html#a288c5cc9fb6595d367f23d1c0c05a57a">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallBlockNode * getCallICFGNode(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00240">ICFG.h:240</a></div></div>
1084
+ <div class="ttc" id="classSVF_1_1ICFG_html_a288c5cc9fb6595d367f23d1c0c05a57a"><div class="ttname"><a href="classSVF_1_1ICFG.html#a288c5cc9fb6595d367f23d1c0c05a57a">SVF::ICFG::getCallICFGNode</a></div><div class="ttdeci">CallBlockNode * getCallICFGNode(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00242">ICFG.h:242</a></div></div>
1043
1085
  <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>
1044
1086
  <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>
1045
1087
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
1046
- <div class="ttc" id="classSVF_1_1ICFG_html_ac069357c3f5140fcb0d6163c944638fd"><div class="ttname"><a href="classSVF_1_1ICFG.html#ac069357c3f5140fcb0d6163c944638fd">SVF::ICFG::addCallICFGNode</a></div><div class="ttdeci">CallBlockNode * 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#l00233">ICFG.h:233</a></div></div>
1088
+ <div class="ttc" id="classSVF_1_1ICFG_html_ac069357c3f5140fcb0d6163c944638fd"><div class="ttname"><a href="classSVF_1_1ICFG.html#ac069357c3f5140fcb0d6163c944638fd">SVF::ICFG::addCallICFGNode</a></div><div class="ttdeci">CallBlockNode * 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>
1047
1089
  </div><!-- fragment -->
1048
1090
  </div>
1049
1091
  </div>
@@ -1071,8 +1113,8 @@ Additional Inherited Members</h2></td></tr>
1071
1113
  </table>
1072
1114
  </div><div class="memdoc">
1073
1115
 
1074
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00240">240</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1075
- <div class="fragment"><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; CSToCallNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#af0434d6ffd247eeaf73b9294e659a3f9">CSToCallNodeMap</a>.find(cs);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</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="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</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 CallBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
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 CallBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00069">ICFG.h:69</a></div></div>
1076
1118
  </div><!-- fragment -->
1077
1119
  </div>
1078
1120
  </div>
@@ -1095,9 +1137,9 @@ Additional Inherited Members</h2></td></tr>
1095
1137
  <p>Add a function entry node. </p>
1096
1138
 
1097
1139
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00230">230</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1098
- <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1FunEntryBlockNode.html">FunEntryBlockNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#a5d75af18ed4228b89a4bb4e2b0b97925">getFunEntryICFGNode</a>(fun);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a37720720adf125ea4f8c12c4bdf41cdd">addFunEntryICFGNode</a>(fun);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a5d75af18ed4228b89a4bb4e2b0b97925"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5d75af18ed4228b89a4bb4e2b0b97925">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryBlockNode * 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#l00201">ICFG.h:201</a></div></div>
1140
+ <div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1FunEntryBlockNode.html">FunEntryBlockNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#a5d75af18ed4228b89a4bb4e2b0b97925">getFunEntryICFGNode</a>(fun);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a37720720adf125ea4f8c12c4bdf41cdd">addFunEntryICFGNode</a>(fun);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a5d75af18ed4228b89a4bb4e2b0b97925"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5d75af18ed4228b89a4bb4e2b0b97925">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryBlockNode * 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>
1099
1141
  <div class="ttc" id="classSVF_1_1FunEntryBlockNode_html"><div class="ttname"><a href="classSVF_1_1FunEntryBlockNode.html">SVF::FunEntryBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00251">ICFGNode.h:251</a></div></div>
1100
- <div class="ttc" id="classSVF_1_1ICFG_html_a37720720adf125ea4f8c12c4bdf41cdd"><div class="ttname"><a href="classSVF_1_1ICFG.html#a37720720adf125ea4f8c12c4bdf41cdd">SVF::ICFG::addFunEntryICFGNode</a></div><div class="ttdeci">FunEntryBlockNode * addFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00208">ICFG.h:208</a></div></div>
1142
+ <div class="ttc" id="classSVF_1_1ICFG_html_a37720720adf125ea4f8c12c4bdf41cdd"><div class="ttname"><a href="classSVF_1_1ICFG.html#a37720720adf125ea4f8c12c4bdf41cdd">SVF::ICFG::addFunEntryICFGNode</a></div><div class="ttdeci">FunEntryBlockNode * addFunEntryICFGNode(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00210">ICFG.h:210</a></div></div>
1101
1143
  </div><!-- fragment -->
1102
1144
  </div>
1103
1145
  </div>
@@ -1127,8 +1169,8 @@ Additional Inherited Members</h2></td></tr>
1127
1169
 
1128
1170
  <p>Get/Add a function entry node. </p>
1129
1171
 
1130
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00201">201</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1131
- <div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; FunToFunEntryNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a69076849bd256fb0ca59711a59a7c092">FunToFunEntryNodeMap</a>.find(fun);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</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="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</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 FunExitBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00065">ICFG.h:65</a></div></div>
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 FunExitBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00067">ICFG.h:67</a></div></div>
1132
1174
  </div><!-- fragment -->
1133
1175
  </div>
1134
1176
  </div>
@@ -1151,9 +1193,9 @@ Additional Inherited Members</h2></td></tr>
1151
1193
  <p>Add a function exit node. </p>
1152
1194
 
1153
1195
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00239">239</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1154
- <div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;{</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="classSVF_1_1FunExitBlockNode.html">FunExitBlockNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#a63479291b885344630ebf024d537ac19">getFunExitICFGNode</a>(fun);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a7874a7a92beb17fd5a4a9575cb183975">addFunExitICFGNode</a>(fun);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a7874a7a92beb17fd5a4a9575cb183975"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7874a7a92beb17fd5a4a9575cb183975">SVF::ICFG::addFunExitICFGNode</a></div><div class="ttdeci">FunExitBlockNode * addFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00224">ICFG.h:224</a></div></div>
1196
+ <div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;{</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="classSVF_1_1FunExitBlockNode.html">FunExitBlockNode</a>* b = <a class="code" href="classSVF_1_1ICFG.html#a63479291b885344630ebf024d537ac19">getFunExitICFGNode</a>(fun);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a7874a7a92beb17fd5a4a9575cb183975">addFunExitICFGNode</a>(fun);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a7874a7a92beb17fd5a4a9575cb183975"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7874a7a92beb17fd5a4a9575cb183975">SVF::ICFG::addFunExitICFGNode</a></div><div class="ttdeci">FunExitBlockNode * addFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00226">ICFG.h:226</a></div></div>
1155
1197
  <div class="ttc" id="classSVF_1_1FunExitBlockNode_html"><div class="ttname"><a href="classSVF_1_1FunExitBlockNode.html">SVF::FunExitBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
1156
- <div class="ttc" id="classSVF_1_1ICFG_html_a63479291b885344630ebf024d537ac19"><div class="ttname"><a href="classSVF_1_1ICFG.html#a63479291b885344630ebf024d537ac19">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitBlockNode * 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#l00217">ICFG.h:217</a></div></div>
1198
+ <div class="ttc" id="classSVF_1_1ICFG_html_a63479291b885344630ebf024d537ac19"><div class="ttname"><a href="classSVF_1_1ICFG.html#a63479291b885344630ebf024d537ac19">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitBlockNode * 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>
1157
1199
  </div><!-- fragment -->
1158
1200
  </div>
1159
1201
  </div>
@@ -1183,8 +1225,8 @@ Additional Inherited Members</h2></td></tr>
1183
1225
 
1184
1226
  <p>Get/Add a function exit node. </p>
1185
1227
 
1186
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00217">217</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1187
- <div class="fragment"><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; FunToFunExitNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#ab87a90adae3e9db06da7ecc0bd9d920f">FunToFunExitNodeMap</a>.find(fun);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</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="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</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 FunEntryBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00066">ICFG.h:66</a></div></div>
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 FunEntryBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00068">ICFG.h:68</a></div></div>
1188
1230
  </div><!-- fragment -->
1189
1231
  </div>
1190
1232
  </div>
@@ -1211,8 +1253,8 @@ Additional Inherited Members</h2></td></tr>
1211
1253
  </table>
1212
1254
  </div><div class="memdoc">
1213
1255
 
1214
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00175">175</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1215
- <div class="fragment"><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">globalBlockNode</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a37ec47cd95cf25b18720c4267a9fd40c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">SVF::ICFG::globalBlockNode</a></div><div class="ttdeci">GlobalBlockNode * globalBlockNode</div><div class="ttdoc">unique basic block for all globals </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
1256
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00178">178</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1257
+ <div class="fragment"><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">globalBlockNode</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="ttc" id="classSVF_1_1ICFG_html_a37ec47cd95cf25b18720c4267a9fd40c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a37ec47cd95cf25b18720c4267a9fd40c">SVF::ICFG::globalBlockNode</a></div><div class="ttdeci">GlobalBlockNode * globalBlockNode</div><div class="ttdoc">unique basic block for all globals </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00072">ICFG.h:72</a></div></div>
1216
1258
  </div><!-- fragment -->
1217
1259
  </div>
1218
1260
  </div>
@@ -1287,8 +1329,8 @@ Additional Inherited Members</h2></td></tr>
1287
1329
 
1288
1330
  <p>Get a <a class="el" href="classSVF_1_1ICFG.html">ICFG</a> node. </p>
1289
1331
 
1290
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00082">82</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1291
- <div class="fragment"><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
1332
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00084">84</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1333
+ <div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00387">GenericGraph.h:387</a></div></div>
1292
1334
  </div><!-- fragment -->
1293
1335
  </div>
1294
1336
  </div>
@@ -1318,8 +1360,8 @@ Additional Inherited Members</h2></td></tr>
1318
1360
 
1319
1361
  <p>Get/Add IntraBlock <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1320
1362
 
1321
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00185">185</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1322
- <div class="fragment"><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; InstToBlockNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a23f905d849553d7ad652e9a8f1bfacd1">InstToBlockNodeMap</a>.find(inst);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</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="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</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#l00069">ICFG.h:69</a></div></div>
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>
1323
1365
  </div><!-- fragment -->
1324
1366
  </div>
1325
1367
  </div>
@@ -1340,8 +1382,8 @@ Additional Inherited Members</h2></td></tr>
1340
1382
  </div><div class="memdoc">
1341
1383
 
1342
1384
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00221">221</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1343
- <div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a5f03c3befe1df9fa62221fc6989d387a">getIntraBlockICFGNode</a>(inst);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a9c9984f07859c7b0a4cc05ef7acf28af">addIntraBlockICFGNode</a>(inst);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a5f03c3befe1df9fa62221fc6989d387a"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f03c3befe1df9fa62221fc6989d387a">SVF::ICFG::getIntraBlockICFGNode</a></div><div class="ttdeci">IntraBlockNode * 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#l00185">ICFG.h:185</a></div></div>
1344
- <div class="ttc" id="classSVF_1_1ICFG_html_a9c9984f07859c7b0a4cc05ef7acf28af"><div class="ttname"><a href="classSVF_1_1ICFG.html#a9c9984f07859c7b0a4cc05ef7acf28af">SVF::ICFG::addIntraBlockICFGNode</a></div><div class="ttdeci">IntraBlockNode * addIntraBlockICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00192">ICFG.h:192</a></div></div>
1385
+ <div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="classSVF_1_1IntraBlockNode.html">IntraBlockNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#a5f03c3befe1df9fa62221fc6989d387a">getIntraBlockICFGNode</a>(inst);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a9c9984f07859c7b0a4cc05ef7acf28af">addIntraBlockICFGNode</a>(inst);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="ttc" id="classSVF_1_1ICFG_html_a5f03c3befe1df9fa62221fc6989d387a"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5f03c3befe1df9fa62221fc6989d387a">SVF::ICFG::getIntraBlockICFGNode</a></div><div class="ttdeci">IntraBlockNode * 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>
1386
+ <div class="ttc" id="classSVF_1_1ICFG_html_a9c9984f07859c7b0a4cc05ef7acf28af"><div class="ttname"><a href="classSVF_1_1ICFG.html#a9c9984f07859c7b0a4cc05ef7acf28af">SVF::ICFG::addIntraBlockICFGNode</a></div><div class="ttdeci">IntraBlockNode * addIntraBlockICFGNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00194">ICFG.h:194</a></div></div>
1345
1387
  <div class="ttc" id="classSVF_1_1IntraBlockNode_html"><div class="ttname"><a href="classSVF_1_1IntraBlockNode.html">SVF::IntraBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
1346
1388
  </div><!-- fragment -->
1347
1389
  </div>
@@ -1365,9 +1407,9 @@ Additional Inherited Members</h2></td></tr>
1365
1407
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00210">210</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1366
1408
  <div class="fragment"><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</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="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#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="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* node = <a class="code" href="classSVF_1_1ICFG.html#ae3bd3bf29b3dac286b93be22cbb60b2c">getRetICFGNode</a>(inst);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; node = <a class="code" href="classSVF_1_1ICFG.html#a45891a968511d4779288a1a0aa089619">addRetICFGNode</a>(inst);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</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 RetBlockNode for this instruction?&quot;</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</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>
1367
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>
1368
- <div class="ttc" id="classSVF_1_1ICFG_html_ae3bd3bf29b3dac286b93be22cbb60b2c"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae3bd3bf29b3dac286b93be22cbb60b2c">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetBlockNode * 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#l00249">ICFG.h:249</a></div></div>
1410
+ <div class="ttc" id="classSVF_1_1ICFG_html_ae3bd3bf29b3dac286b93be22cbb60b2c"><div class="ttname"><a href="classSVF_1_1ICFG.html#ae3bd3bf29b3dac286b93be22cbb60b2c">SVF::ICFG::getRetICFGNode</a></div><div class="ttdeci">RetBlockNode * 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>
1369
1411
  <div class="ttc" id="classSVF_1_1RetBlockNode_html"><div class="ttname"><a href="classSVF_1_1RetBlockNode.html">SVF::RetBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
1370
- <div class="ttc" id="classSVF_1_1ICFG_html_a45891a968511d4779288a1a0aa089619"><div class="ttname"><a href="classSVF_1_1ICFG.html#a45891a968511d4779288a1a0aa089619">SVF::ICFG::addRetICFGNode</a></div><div class="ttdeci">RetBlockNode * addRetICFGNode(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00256">ICFG.h:256</a></div></div>
1412
+ <div class="ttc" id="classSVF_1_1ICFG_html_a45891a968511d4779288a1a0aa089619"><div class="ttname"><a href="classSVF_1_1ICFG.html#a45891a968511d4779288a1a0aa089619">SVF::ICFG::addRetICFGNode</a></div><div class="ttdeci">RetBlockNode * addRetICFGNode(const Instruction *cs)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00258">ICFG.h:258</a></div></div>
1371
1413
  <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>
1372
1414
  </div><!-- fragment -->
1373
1415
  </div>
@@ -1398,8 +1440,8 @@ Additional Inherited Members</h2></td></tr>
1398
1440
 
1399
1441
  <p>Get/Add a return node. </p>
1400
1442
 
1401
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00249">249</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1402
- <div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; CSToRetNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.find(cs);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.end())</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><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 RetBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00068">ICFG.h:68</a></div></div>
1443
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00251">251</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1444
+ <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; CSToRetNodeMapTy::const_iterator it = <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.find(cs);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span> (it == <a class="code" href="classSVF_1_1ICFG.html#a0e43308038663c10667177238b23ab3e">CSToRetNodeMap</a>.end())</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><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 RetBlockNode </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00070">ICFG.h:70</a></div></div>
1403
1445
  </div><!-- fragment -->
1404
1446
  </div>
1405
1447
  </div>
@@ -1429,8 +1471,8 @@ Additional Inherited Members</h2></td></tr>
1429
1471
 
1430
1472
  <p>Whether has the <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1431
1473
 
1432
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00088">88</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1433
- <div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
1474
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00090">90</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1475
+ <div class="fragment"><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">hasGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a6885064afa211958af7b73f0233284e5"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a6885064afa211958af7b73f0233284e5">SVF::GenericGraph::hasGNode</a></div><div class="ttdeci">bool hasGNode(NodeID id) const</div><div class="ttdoc">Has a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00395">GenericGraph.h:395</a></div></div>
1434
1476
  </div><!-- fragment -->
1435
1477
  </div>
1436
1478
  </div>
@@ -1578,15 +1620,15 @@ Additional Inherited Members</h2></td></tr>
1578
1620
  </table>
1579
1621
  </td>
1580
1622
  <td class="mlabels-right">
1581
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
1623
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
1582
1624
  </tr>
1583
1625
  </table>
1584
1626
  </div><div class="memdoc">
1585
1627
 
1586
1628
  <p>Remove a <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> edge. </p>
1587
1629
 
1588
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00114">114</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1589
- <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; edge-&gt;getDstNode()-&gt;removeIncomingEdge(edge);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; edge-&gt;getSrcNode()-&gt;removeOutgoingEdge(edge);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div></div><!-- fragment -->
1630
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00116">116</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1631
+ <div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; edge-&gt;getDstNode()-&gt;removeIncomingEdge(edge);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; edge-&gt;getSrcNode()-&gt;removeOutgoingEdge(edge);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div></div><!-- fragment -->
1590
1632
  </div>
1591
1633
  </div>
1592
1634
  <a id="a403cd10f7c01cc879d803a9759e729cb"></a>
@@ -1608,15 +1650,15 @@ Additional Inherited Members</h2></td></tr>
1608
1650
  </table>
1609
1651
  </td>
1610
1652
  <td class="mlabels-right">
1611
- <span class="mlabels"><span class="mlabel">inline</span></span> </td>
1653
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td>
1612
1654
  </tr>
1613
1655
  </table>
1614
1656
  </div><div class="memdoc">
1615
1657
 
1616
1658
  <p>Remove a <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a>. </p>
1617
1659
 
1618
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00121">121</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1619
- <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">removeGNode</a>(node);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a1817b65e76052f11e36a67d6b9efd915"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">SVF::GenericGraph::removeGNode</a></div><div class="ttdeci">void removeGNode(NodeType *node)</div><div class="ttdoc">Delete a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00402">GenericGraph.h:402</a></div></div>
1660
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00123">123</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1661
+ <div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">removeGNode</a>(node);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="ttc" id="classSVF_1_1GenericGraph_html_a1817b65e76052f11e36a67d6b9efd915"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a1817b65e76052f11e36a67d6b9efd915">SVF::GenericGraph::removeGNode</a></div><div class="ttdeci">void removeGNode(NodeType *node)</div><div class="ttdoc">Delete a node. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00402">GenericGraph.h:402</a></div></div>
1620
1662
  </div><!-- fragment -->
1621
1663
  </div>
1622
1664
  </div>
@@ -1641,7 +1683,7 @@ Additional Inherited Members</h2></td></tr>
1641
1683
 
1642
1684
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00414">414</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1643
1685
  <div class="fragment"><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;{</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</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="l00417"></a><span class="lineno"> 417</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="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlock = iter-&gt;first;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</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_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>();</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(callBlock-&gt;<a class="code" href="classSVF_1_1CallBlockNode.html#a285c517dfd7fee5467606663a0fdd035">isIndirectCall</a>() &amp;&amp; <span class="stringliteral">&quot;this is not an indirect call?&quot;</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</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="l00424"></a><span class="lineno"> 424</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="l00425"></a><span class="lineno"> 425</span>&#160; {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</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="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> = <a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(cs);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</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="l00429"></a><span class="lineno"> 429</span>&#160; {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="classSVF_1_1FunEntryBlockNode.html">FunEntryBlockNode</a>* calleeEntryNode = <a class="code" href="classSVF_1_1ICFG.html#a5d75af18ed4228b89a4bb4e2b0b97925">getFunEntryICFGNode</a>(callee);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">addCallEdge</a>(CallBlockNode, calleeEntryNode, cs);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a>* retBlockNode = <a class="code" href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">getRetBlockNode</a>(cs);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="classSVF_1_1FunExitBlockNode.html">FunExitBlockNode</a>* calleeExitNode = <a class="code" href="classSVF_1_1ICFG.html#a63479291b885344630ebf024d537ac19">getFunExitICFGNode</a>(callee);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="classSVF_1_1ICFG.html#a4a44849b596c89ab14d2e5f18366e848">addRetEdge</a>(calleeExitNode, retBlockNode, cs);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</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;}</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#l00363">ICFG.cpp:363</a></div></div>
1644
- <div class="ttc" id="classSVF_1_1ICFG_html_a5d75af18ed4228b89a4bb4e2b0b97925"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5d75af18ed4228b89a4bb4e2b0b97925">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryBlockNode * 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#l00201">ICFG.h:201</a></div></div>
1686
+ <div class="ttc" id="classSVF_1_1ICFG_html_a5d75af18ed4228b89a4bb4e2b0b97925"><div class="ttname"><a href="classSVF_1_1ICFG.html#a5d75af18ed4228b89a4bb4e2b0b97925">SVF::ICFG::getFunEntryICFGNode</a></div><div class="ttdeci">FunEntryBlockNode * 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>
1645
1687
  <div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
1646
1688
  <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>
1647
1689
  <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>
@@ -1653,7 +1695,7 @@ Additional Inherited Members</h2></td></tr>
1653
1695
  <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#l00380">ICFG.cpp:380</a></div></div>
1654
1696
  <div class="ttc" id="classSVF_1_1FunExitBlockNode_html"><div class="ttname"><a href="classSVF_1_1FunExitBlockNode.html">SVF::FunExitBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
1655
1697
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_a285c517dfd7fee5467606663a0fdd035"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#a285c517dfd7fee5467606663a0fdd035">SVF::CallBlockNode::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>
1656
- <div class="ttc" id="classSVF_1_1ICFG_html_a63479291b885344630ebf024d537ac19"><div class="ttname"><a href="classSVF_1_1ICFG.html#a63479291b885344630ebf024d537ac19">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitBlockNode * 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#l00217">ICFG.h:217</a></div></div>
1698
+ <div class="ttc" id="classSVF_1_1ICFG_html_a63479291b885344630ebf024d537ac19"><div class="ttname"><a href="classSVF_1_1ICFG.html#a63479291b885344630ebf024d537ac19">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitBlockNode * 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>
1657
1699
  <div class="ttc" id="classSVF_1_1CallBlockNode_html_ad3d50024efcfa94b1246c982b43aff2f"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">SVF::CallBlockNode::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>
1658
1700
  <div class="ttc" id="classSVF_1_1ICFG_html_a6d66c83cb1656d0f8ec8b8b65a9e9c41"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6d66c83cb1656d0f8ec8b8b65a9e9c41">SVF::ICFG::getRetBlockNode</a></div><div class="ttdeci">RetBlockNode * getRetBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00210">ICFG.cpp:210</a></div></div>
1659
1701
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
@@ -1681,6 +1723,31 @@ Additional Inherited Members</h2></td></tr>
1681
1723
 
1682
1724
  <p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00406">406</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
1683
1725
  <div class="fragment"><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">&quot;Interprocedural Control-Flow Graph&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;}</div></div><!-- fragment -->
1726
+ </div>
1727
+ </div>
1728
+ <h2 class="groupheader">Friends And Related Function Documentation</h2>
1729
+ <a id="a0d2b8819e1a1375c3543b1cf202193fa"></a>
1730
+ <h2 class="memtitle"><span class="permalink"><a href="#a0d2b8819e1a1375c3543b1cf202193fa">&#9670;&nbsp;</a></span>ICFGBuilder</h2>
1731
+
1732
+ <div class="memitem">
1733
+ <div class="memproto">
1734
+ <table class="mlabels">
1735
+ <tr>
1736
+ <td class="mlabels-left">
1737
+ <table class="memname">
1738
+ <tr>
1739
+ <td class="memname">friend class <a class="el" href="classSVF_1_1ICFGBuilder.html">ICFGBuilder</a></td>
1740
+ </tr>
1741
+ </table>
1742
+ </td>
1743
+ <td class="mlabels-right">
1744
+ <span class="mlabels"><span class="mlabel">friend</span></span> </td>
1745
+ </tr>
1746
+ </table>
1747
+ </div><div class="memdoc">
1748
+
1749
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00049">49</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1750
+
1684
1751
  </div>
1685
1752
  </div>
1686
1753
  <h2 class="groupheader">Member Data Documentation</h2>
@@ -1706,7 +1773,7 @@ Additional Inherited Members</h2></td></tr>
1706
1773
 
1707
1774
  <p>map a callsite to its <a class="el" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a> </p>
1708
1775
 
1709
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00067">67</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1776
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00069">69</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1710
1777
 
1711
1778
  </div>
1712
1779
  </div>
@@ -1732,7 +1799,7 @@ Additional Inherited Members</h2></td></tr>
1732
1799
 
1733
1800
  <p>map a callsite to its <a class="el" href="classSVF_1_1RetBlockNode.html">RetBlockNode</a> </p>
1734
1801
 
1735
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00068">68</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1802
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00070">70</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1736
1803
 
1737
1804
  </div>
1738
1805
  </div>
@@ -1758,7 +1825,7 @@ Additional Inherited Members</h2></td></tr>
1758
1825
 
1759
1826
  <p>map a function to its <a class="el" href="classSVF_1_1FunExitBlockNode.html">FunExitBlockNode</a> </p>
1760
1827
 
1761
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00065">65</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1828
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00067">67</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1762
1829
 
1763
1830
  </div>
1764
1831
  </div>
@@ -1784,7 +1851,7 @@ Additional Inherited Members</h2></td></tr>
1784
1851
 
1785
1852
  <p>map a function to its <a class="el" href="classSVF_1_1FunEntryBlockNode.html">FunEntryBlockNode</a> </p>
1786
1853
 
1787
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00066">66</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1854
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00068">68</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1788
1855
 
1789
1856
  </div>
1790
1857
  </div>
@@ -1810,7 +1877,7 @@ Additional Inherited Members</h2></td></tr>
1810
1877
 
1811
1878
  <p>unique basic block for all globals </p>
1812
1879
 
1813
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00070">70</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1880
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00072">72</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1814
1881
 
1815
1882
  </div>
1816
1883
  </div>
@@ -1836,7 +1903,7 @@ Additional Inherited Members</h2></td></tr>
1836
1903
 
1837
1904
  <p>map a basic block to its <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> </p>
1838
1905
 
1839
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00069">69</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1906
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00071">71</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1840
1907
 
1841
1908
  </div>
1842
1909
  </div>
@@ -1852,7 +1919,7 @@ Additional Inherited Members</h2></td></tr>
1852
1919
  </table>
1853
1920
  </div><div class="memdoc">
1854
1921
 
1855
- <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00062">62</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1922
+ <p class="definition">Definition at line <a class="el" href="ICFG_8h_source.html#l00064">64</a> of file <a class="el" href="ICFG_8h_source.html">ICFG.h</a>.</p>
1856
1923
 
1857
1924
  </div>
1858
1925
  </div>