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.
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +5 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/ICFG_8h_source.html +38 -37
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +21 -24
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +42 -43
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp.html +1 -0
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +6 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +40 -40
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +22 -21
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +47 -47
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/VFG_8h_source.html +8 -8
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +187 -188
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +7 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +160 -161
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +199 -200
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +202 -203
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +195 -196
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +196 -197
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +205 -206
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +193 -194
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +116 -117
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +9 -12
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +104 -105
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +5 -8
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +182 -183
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +11 -14
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +219 -220
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +180 -181
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +9 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +212 -213
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +17 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +244 -245
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +5 -8
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +27 -26
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +183 -116
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +10 -5
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +26 -25
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +37 -36
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +27 -3
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +78 -79
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +104 -144
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +122 -115
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +171 -172
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +0 -3
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +161 -162
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -6
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +254 -255
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -5
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
- package/SVF-doxygen/html/html/functions_d.html +0 -3
- package/SVF-doxygen/html/html/functions_func_d.html +0 -3
- package/SVF-doxygen/html/html/functions_func_i.html +13 -10
- package/SVF-doxygen/html/html/functions_i.html +10 -6
- package/SVF-doxygen/html/html/functions_l.html +6 -6
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +9 -9
- package/SVF-doxygen/html/html/functions_r.html +1 -1
- package/SVF-doxygen/html/html/functions_rela.html +3 -0
- package/SVF-doxygen/html/html/functions_s.html +14 -12
- package/SVF-doxygen/html/html/functions_t.html +7 -5
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/search/all_10.js +7 -7
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +10 -10
- package/SVF-doxygen/html/html/search/all_14.js +3 -3
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_4.js +0 -1
- package/SVF-doxygen/html/html/search/all_9.js +2 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_d.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_3.js +0 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/related_4.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/Graphs/ICFG.h +5 -3
- package/include/MemoryModel/PointerAnalysis.h +0 -3
- package/include/MemoryModel/SVFStatements.h +5 -0
- package/lib/Graphs/ICFG.cpp +2 -2
- package/lib/MemoryModel/PointerAnalysis.cpp +1 -21
- package/lib/MemoryModel/SVFStatements.cpp +10 -1
- package/lib/SVF-FE/ICFGBuilder.cpp +17 -2
- package/lib/SVF-FE/SVFIRBuilder.cpp +13 -0
- package/package.json +1 -1
|
@@ -66,8 +66,10 @@ $(function() {
|
|
|
66
66
|
<a href="#pub-types">Public Types</a> |
|
|
67
67
|
<a href="#pub-methods">Public Member Functions</a> |
|
|
68
68
|
<a href="#pub-attribs">Public Attributes</a> |
|
|
69
|
+
<a href="#pro-methods">Protected Member Functions</a> |
|
|
69
70
|
<a href="#pri-methods">Private Member Functions</a> |
|
|
70
71
|
<a href="#pri-attribs">Private Attributes</a> |
|
|
72
|
+
<a href="#friends">Friends</a> |
|
|
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 </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"> </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"> </td></tr>
|
|
149
|
-
<tr class="memitem:a534625b10673efe5b0f344bfebf9b3cf"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr>
|
|
152
|
-
<tr class="memitem:a403cd10f7c01cc879d803a9759e729cb"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr>
|
|
155
|
-
<tr class="memitem:a70421a19a494eb6131a9ae72ef1a64d6"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr>
|
|
158
|
-
<tr class="memitem:a462f590c2604184d69e4efe3d85a7b5b"><td class="memItemLeft" align="right" valign="top">bool </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"> </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"> </td></tr>
|
|
161
|
-
<tr class="memitem:a15816a82d8c33a066009440dce6ee973"><td class="memItemLeft" align="right" valign="top">virtual void </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"> </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"> </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> * </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"> </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> * </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"> </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> * </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"> </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"> </td></tr>
|
|
176
|
-
<tr class="memitem:a8b038782880ae8950076e2c104bc4b18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * </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"> </td></tr>
|
|
178
|
-
<tr class="memitem:abde033687317d47909ee45db7501723f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * </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"> </td></tr>
|
|
180
|
-
<tr class="memitem:a4a44849b596c89ab14d2e5f18366e848"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * </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"> </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> * </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"> </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"> </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"> </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"> </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 </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"> </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"> </td></tr>
|
|
236
|
+
<tr class="memitem:a403cd10f7c01cc879d803a9759e729cb"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr>
|
|
239
|
+
<tr class="memitem:a70421a19a494eb6131a9ae72ef1a64d6"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr>
|
|
242
|
+
<tr class="memitem:a462f590c2604184d69e4efe3d85a7b5b"><td class="memItemLeft" align="right" valign="top">bool </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"> </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"> </td></tr>
|
|
245
|
+
<tr class="memitem:a15816a82d8c33a066009440dce6ee973"><td class="memItemLeft" align="right" valign="top">virtual void </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"> </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"> </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> * </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"> </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"> </td></tr>
|
|
252
|
+
<tr class="memitem:a8b038782880ae8950076e2c104bc4b18"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * </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"> </td></tr>
|
|
254
|
+
<tr class="memitem:abde033687317d47909ee45db7501723f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * </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"> </td></tr>
|
|
256
|
+
<tr class="memitem:a4a44849b596c89ab14d2e5f18366e848"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a> * </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"> </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> * </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"> </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"> </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 </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"> </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="-"/> Protected Attributes inherited from <a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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>  : <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> {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <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>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<span class="stringliteral">"\tCreate ICFG ...\n"</span>));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <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>  <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> }</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#
|
|
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#
|
|
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#
|
|
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 & 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#
|
|
517
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</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#
|
|
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#
|
|
591
|
-
<div class="fragment"><div class="line"><a name="
|
|
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#
|
|
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#
|
|
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>  {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  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>  <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>  <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>  <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</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#
|
|
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#
|
|
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#
|
|
673
|
-
<div class="fragment"><div class="line"><a name="
|
|
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#
|
|
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#
|
|
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>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  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>  <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>  <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>  <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</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#
|
|
704
|
-
<div class="fragment"><div class="line"><a name="
|
|
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#
|
|
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#
|
|
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>  {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  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>  <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>  <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>  <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</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#
|
|
737
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordtype">bool</span> added1 = edge->getDstNode()->addIncomingEdge(edge);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">bool</span> added2 = edge->getSrcNode()->addOutgoingEdge(edge);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(added1 && added2 && <span class="stringliteral">"edge not added??"</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</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#
|
|
768
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(node->getId(),node);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</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#
|
|
797
|
-
<div class="fragment"><div class="line"><a name="
|
|
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#
|
|
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#
|
|
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>  {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  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>  <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>  <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>  <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</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#
|
|
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#
|
|
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#
|
|
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#
|
|
911
|
-
<div class="fragment"><div class="line"><a name="
|
|
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#
|
|
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#
|
|
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#
|
|
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>  {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  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>  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>  callBlockNode->setRetBlockNode(sNode);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <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>  <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>  <span class="keywordflow">return</span> sNode;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</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#
|
|
955
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">const</span> SVFFunction* srcfun = srcNode->getFun();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> SVFFunction* dstfun = dstNode->getFun();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span>(srcfun != <span class="keyword">nullptr</span> && dstfun != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((srcfun == dstfun) && <span class="stringliteral">"src and dst nodes of an intra edge should in the same function!"</span> );</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</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> {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <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>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() << *inst << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) && <span class="stringliteral">"not a call instruction?"</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) && <span class="stringliteral">"associating an intrinsic debug instruction with an ICFGNode!"</span>);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <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>  <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  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>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> && <span class="stringliteral">"no CallBlockNode for this instruction?"</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> }</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#
|
|
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 & 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#
|
|
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#
|
|
1075
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  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>  <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>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</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> {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <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>  <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> }</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#
|
|
1140
|
+
<div class="fragment"><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <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>  <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> }</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#
|
|
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#
|
|
1131
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  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>  <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>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</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> {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <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>  <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> }</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#
|
|
1196
|
+
<div class="fragment"><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <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>  <span class="keywordflow">if</span> (b == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">return</span> b;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> }</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#
|
|
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#
|
|
1187
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  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>  <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>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</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#
|
|
1215
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <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>  }</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#
|
|
1291
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <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>  }</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#
|
|
1322
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  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>  <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>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</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> {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <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>  <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  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>  <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> }</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#
|
|
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#
|
|
1385
|
+
<div class="fragment"><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <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>  <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  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>  <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> }</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> {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst) && <span class="stringliteral">"not a call instruction?"</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst) && <span class="stringliteral">"associating an intrinsic debug instruction with an ICFGNode!"</span>);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <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>  <span class="keywordflow">if</span>(node==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  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>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a> (node!=<span class="keyword">nullptr</span> && <span class="stringliteral">"no RetBlockNode for this instruction?"</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span> node;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> }</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#
|
|
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#
|
|
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#
|
|
1402
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  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>  <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>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</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#
|
|
1433
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <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>  }</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#
|
|
1589
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  edge->getDstNode()->removeIncomingEdge(edge);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  edge->getSrcNode()->removeOutgoingEdge(edge);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">delete</span> edge;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</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#
|
|
1619
|
-
<div class="fragment"><div class="line"><a name="
|
|
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>  {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <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>  }</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> {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  PTACallGraph::CallEdgeMap::const_iterator iter = callgraph-><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>  PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph-><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>  <span class="keywordflow">for</span> (; iter != eiter; iter++)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlock = iter->first;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* cs = callBlock-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>();</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(callBlock-><a class="code" href="classSVF_1_1CallBlockNode.html#a285c517dfd7fee5467606663a0fdd035">isIndirectCall</a>() && <span class="stringliteral">"this is not an indirect call?"</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PTACallGraph.html#a5f5a5ec7e707a21994d301cc07d32a5a">PTACallGraph::FunctionSet</a> & functions = iter->second;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <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>  {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <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>  <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>  <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>  {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <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>  <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>  <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>  <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>  <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>  }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> }</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#
|
|
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 & 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#
|
|
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> {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  llvm::ViewGraph(<span class="keyword">this</span>, <span class="stringliteral">"Interprocedural Control-Flow Graph"</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> }</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">◆ </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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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#
|
|
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>
|