svf-tools 1.0.404 → 1.0.405
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/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CHG_8h_source.html +5 -6
- package/SVF-doxygen/html/html/CPPUtil_8cpp.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -3
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CSC-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +48 -48
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/functions_a.html +6 -6
- package/SVF-doxygen/html/html/functions_b.html +1 -1
- package/SVF-doxygen/html/html/functions_f.html +2 -2
- package/SVF-doxygen/html/html/functions_func.html +6 -6
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +9 -9
- package/SVF-doxygen/html/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_func_v.html +1 -1
- package/SVF-doxygen/html/html/functions_g.html +9 -9
- package/SVF-doxygen/html/html/functions_i.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +3 -3
- package/SVF-doxygen/html/html/functions_type_n.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_v.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +2 -2
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_13.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +5 -5
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +4 -4
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +5 -5
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/functions_a.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_16.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +2 -2
- package/include/Graphs/CHG.h +6 -6
- package/include/Graphs/ConsGEdge.h +1 -1
- package/include/Graphs/ICFG.h +1 -1
- package/include/Graphs/ICFGEdge.h +3 -3
- package/include/MemoryModel/LocationSet.h +5 -5
- package/include/MemoryModel/PAGBuilderFromFile.h +1 -1
- package/include/MemoryModel/SVFIR.h +1 -1
- package/include/MemoryModel/SVFStatements.h +4 -4
- package/include/MemoryModel/SVFVariables.h +2 -2
- package/include/MemoryModel/SymbolTableInfo.h +1 -1
- package/include/SVF-FE/SVFIRBuilder.h +2 -2
- package/include/Util/IRAnnotator.h +2 -2
- package/include/WPA/AndersenSFR.h +1 -1
- package/include/WPA/CSC.h +1 -1
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/MTA/MHP.cpp +2 -2
- package/lib/MemoryModel/LocationSet.cpp +3 -3
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +2 -2
- package/lib/MemoryModel/SVFIR.cpp +1 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +3 -3
- package/lib/SVF-FE/CPPUtil.cpp +4 -4
- package/lib/SVF-FE/ICFGBuilder.cpp +1 -1
- package/lib/SVF-FE/LLVMUtil.cpp +1 -1
- package/lib/SVF-FE/SVFIRBuilder.cpp +9 -9
- package/lib/SVF-FE/SymbolTableBuilder.cpp +1 -1
- package/lib/Util/Conditions.cpp +1 -1
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/AndersenSFR.cpp +6 -6
- package/lib/WPA/CSC.cpp +5 -5
- package/lib/WPA/TypeAnalysis.cpp +3 -3
- package/package.json +1 -1
|
@@ -89,9 +89,9 @@ Public Member Functions</h2></td></tr>
|
|
|
89
89
|
<tr class="memitem:af4fd4a194f00d5cc76c2aeb9e316f768"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GepValVar.html#af4fd4a194f00d5cc76c2aeb9e316f768">GepValVar</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val, <a class="el" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> i, const <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> &l, const <a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *ty)</td></tr>
|
|
90
90
|
<tr class="memdesc:af4fd4a194f00d5cc76c2aeb9e316f768"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#af4fd4a194f00d5cc76c2aeb9e316f768">More...</a><br /></td></tr>
|
|
91
91
|
<tr class="separator:af4fd4a194f00d5cc76c2aeb9e316f768"><td class="memSeparator" colspan="2"> </td></tr>
|
|
92
|
-
<tr class="memitem:
|
|
93
|
-
<tr class="memdesc:
|
|
94
|
-
<tr class="separator:
|
|
92
|
+
<tr class="memitem:a0e5084d3fc54a70ace07075f846395ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">getConstantFieldIdx</a> () const</td></tr>
|
|
93
|
+
<tr class="memdesc:a0e5084d3fc54a70ace07075f846395ef"><td class="mdescLeft"> </td><td class="mdescRight">offset of the base value variable <a href="#a0e5084d3fc54a70ace07075f846395ef">More...</a><br /></td></tr>
|
|
94
|
+
<tr class="separator:a0e5084d3fc54a70ace07075f846395ef"><td class="memSeparator" colspan="2"> </td></tr>
|
|
95
95
|
<tr class="memitem:ae89482e674768298f49e51df4ebe63e3"><td class="memItemLeft" align="right" valign="top">const std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1GepValVar.html#ae89482e674768298f49e51df4ebe63e3">getValueName</a> () const</td></tr>
|
|
96
96
|
<tr class="memdesc:ae89482e674768298f49e51df4ebe63e3"><td class="mdescLeft"> </td><td class="mdescRight">Return name of a LLVM value. <a href="#ae89482e674768298f49e51df4ebe63e3">More...</a><br /></td></tr>
|
|
97
97
|
<tr class="separator:ae89482e674768298f49e51df4ebe63e3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
@@ -477,8 +477,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
477
477
|
</div><!-- fragment -->
|
|
478
478
|
</div>
|
|
479
479
|
</div>
|
|
480
|
-
<a id="
|
|
481
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
480
|
+
<a id="a0e5084d3fc54a70ace07075f846395ef"></a>
|
|
481
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a0e5084d3fc54a70ace07075f846395ef">◆ </a></span>getConstantFieldIdx()</h2>
|
|
482
482
|
|
|
483
483
|
<div class="memitem">
|
|
484
484
|
<div class="memproto">
|
|
@@ -487,7 +487,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
487
487
|
<td class="mlabels-left">
|
|
488
488
|
<table class="memname">
|
|
489
489
|
<tr>
|
|
490
|
-
<td class="memname"><a class="el" href="namespaceSVF.html#
|
|
490
|
+
<td class="memname"><a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> SVF::GepValVar::getConstantFieldIdx </td>
|
|
491
491
|
<td>(</td>
|
|
492
492
|
<td class="paramname"></td><td>)</td>
|
|
493
493
|
<td> const</td>
|
|
@@ -503,8 +503,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
503
503
|
<p>offset of the base value variable </p>
|
|
504
504
|
|
|
505
505
|
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00416">416</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
506
|
-
<div class="fragment"><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6">ls</a>.<a class="code" href="classSVF_1_1LocationSet.html#
|
|
507
|
-
<div class="ttc" id="
|
|
506
|
+
<div class="fragment"><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6">ls</a>.<a class="code" href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">accumulateConstantFieldIdx</a>();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div><div class="ttc" id="classSVF_1_1GepValVar_html_a2ee5e9a2e5a92b32fd81fda09b560ad6"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a2ee5e9a2e5a92b32fd81fda09b560ad6">SVF::GepValVar::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00385">SVFVariables.h:385</a></div></div>
|
|
507
|
+
<div class="ttc" id="classSVF_1_1LocationSet_html_a63c5c8e03b35e0d0cea94137d309c853"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a63c5c8e03b35e0d0cea94137d309c853">SVF::LocationSet::accumulateConstantFieldIdx</a></div><div class="ttdeci">s32_t accumulateConstantFieldIdx() const</div><div class="ttdoc">Get methods. </div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00090">LocationSet.h:90</a></div></div>
|
|
508
508
|
</div><!-- fragment -->
|
|
509
509
|
</div>
|
|
510
510
|
</div>
|
|
@@ -568,7 +568,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
568
568
|
<p>Reimplemented from <a class="el" href="classSVF_1_1ValVar.html#aeaccfd3bf5f968ad12d7e1a2426e5faa">SVF::ValVar</a>.</p>
|
|
569
569
|
|
|
570
570
|
<p class="definition">Definition at line <a class="el" href="SVFVariables_8h_source.html#l00422">422</a> of file <a class="el" href="SVFVariables_8h_source.html">SVFVariables.h</a>.</p>
|
|
571
|
-
<div class="fragment"><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> && <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>->hasName())</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>->getName().str() + <span class="stringliteral">"_"</span> + llvm::utostr(<a class="code" href="classSVF_1_1GepValVar.html#
|
|
571
|
+
<div class="fragment"><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a> && <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>->hasName())</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>->getName().str() + <span class="stringliteral">"_"</span> + llvm::utostr(<a class="code" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">getConstantFieldIdx</a>());</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keywordflow">return</span> <span class="stringliteral">"offset_"</span> + llvm::utostr(<a class="code" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">getConstantFieldIdx</a>());</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div><div class="ttc" id="classSVF_1_1GepValVar_html_a0e5084d3fc54a70ace07075f846395ef"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">SVF::GepValVar::getConstantFieldIdx</a></div><div class="ttdeci">s32_t getConstantFieldIdx() const</div><div class="ttdoc">offset of the base value variable </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00416">SVFVariables.h:416</a></div></div>
|
|
572
572
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a7deb494ac20ed56fca31a4f1fd92deea"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">SVF::SVFVar::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">value of this SVFIR node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00081">SVFVariables.h:81</a></div></div>
|
|
573
573
|
</div><!-- fragment -->
|
|
574
574
|
</div>
|
|
@@ -599,10 +599,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
599
599
|
<p>Reimplemented from <a class="el" href="classSVF_1_1ValVar.html#a4591213dd266efd380fd916fee73c1fd">SVF::ValVar</a>.</p>
|
|
600
600
|
|
|
601
601
|
<p class="definition">Definition at line <a class="el" href="SVFVariables_8cpp_source.html#l00126">126</a> of file <a class="el" href="SVFVariables_8cpp_source.html">SVFVariables.cpp</a>.</p>
|
|
602
|
-
<div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  std::string str;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  rawstr << <span class="stringliteral">"GepValVar ID: "</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" with offset_"</span> + llvm::utostr(<a class="code" href="classSVF_1_1GepValVar.html#
|
|
602
|
+
<div class="fragment"><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  std::string str;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  rawstr << <span class="stringliteral">"GepValVar ID: "</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" with offset_"</span> + llvm::utostr(<a class="code" href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">getConstantFieldIdx</a>());</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">Options::ShowSVFIRValue</a>) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  rawstr << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  rawstr << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<a class="code" href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">value</a>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> }</div><div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
|
|
603
603
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00390">SVFUtil.cpp:390</a></div></div>
|
|
604
|
+
<div class="ttc" id="classSVF_1_1GepValVar_html_a0e5084d3fc54a70ace07075f846395ef"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a0e5084d3fc54a70ace07075f846395ef">SVF::GepValVar::getConstantFieldIdx</a></div><div class="ttdeci">s32_t getConstantFieldIdx() const</div><div class="ttdoc">offset of the base value variable </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00416">SVFVariables.h:416</a></div></div>
|
|
604
605
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
|
|
605
|
-
<div class="ttc" id="classSVF_1_1GepValVar_html_a911472d25ea95f2625d2f09470e3ffb2"><div class="ttname"><a href="classSVF_1_1GepValVar.html#a911472d25ea95f2625d2f09470e3ffb2">SVF::GepValVar::getConstantFieldIdx</a></div><div class="ttdeci">s64_t getConstantFieldIdx() const</div><div class="ttdoc">offset of the base value variable </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00416">SVFVariables.h:416</a></div></div>
|
|
606
606
|
<div class="ttc" id="classSVF_1_1SVFVar_html_a7deb494ac20ed56fca31a4f1fd92deea"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a7deb494ac20ed56fca31a4f1fd92deea">SVF::SVFVar::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">value of this SVFIR node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00081">SVFVariables.h:81</a></div></div>
|
|
607
607
|
<div class="ttc" id="classSVF_1_1Options_html_a63c2ff1420867ea4ef0a94d28b3f0558"><div class="ttname"><a href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options::ShowSVFIRValue</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ShowSVFIRValue</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
|
|
608
608
|
</div><!-- fragment -->
|
|
@@ -71,7 +71,7 @@ $(function() {
|
|
|
71
71
|
<table class="directory">
|
|
72
72
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#af6dc72c9ba19d41cc11439a7c632af48">addCallBlock</a>(const Instruction *cs)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
|
|
73
73
|
<tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">addCallEdge</a>(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
|
74
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#
|
|
74
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#aa4517b497891823eccbad2e790e2a440">addConditionalIntraEdge</a>(ICFGNode *srcNode, ICFGNode *dstNode, const Value *condition, s32_t branchCondVal)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
|
75
75
|
<tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a1af9ae1c2efb4cb7897d5234d035c06b">addFunEntryBlock</a>(const SVFFunction *fun)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
|
|
76
76
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a6b716225b38638d6a34703995b749ad2">addFunExitBlock</a>(const SVFFunction *fun)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">private</span></td></tr>
|
|
77
77
|
<tr><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(NodeID id, NodeType *node)</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
@@ -249,8 +249,8 @@ Protected Member Functions</h2></td></tr>
|
|
|
249
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
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
251
|
<tr class="separator:adafd8bbb91507a9a78a3f16305812afc"><td class="memSeparator" colspan="2"> </td></tr>
|
|
252
|
-
<tr class="memitem:
|
|
253
|
-
<tr class="separator:
|
|
252
|
+
<tr class="memitem:aa4517b497891823eccbad2e790e2a440"><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#aa4517b497891823eccbad2e790e2a440">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#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> branchCondVal)</td></tr>
|
|
253
|
+
<tr class="separator:aa4517b497891823eccbad2e790e2a440"><td class="memSeparator" colspan="2"> </td></tr>
|
|
254
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
255
|
<tr class="separator:abde033687317d47909ee45db7501723f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
256
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>
|
|
@@ -612,8 +612,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
612
612
|
</div><!-- fragment -->
|
|
613
613
|
</div>
|
|
614
614
|
</div>
|
|
615
|
-
<a id="
|
|
616
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
615
|
+
<a id="aa4517b497891823eccbad2e790e2a440"></a>
|
|
616
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aa4517b497891823eccbad2e790e2a440">◆ </a></span>addConditionalIntraEdge()</h2>
|
|
617
617
|
|
|
618
618
|
<div class="memitem">
|
|
619
619
|
<div class="memproto">
|
|
@@ -642,7 +642,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
642
642
|
<tr>
|
|
643
643
|
<td class="paramkey"></td>
|
|
644
644
|
<td></td>
|
|
645
|
-
<td class="paramtype"><a class="el" href="namespaceSVF.html#
|
|
645
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> </td>
|
|
646
646
|
<td class="paramname"><em>branchCondVal</em> </td>
|
|
647
647
|
</tr>
|
|
648
648
|
<tr>
|
|
@@ -660,10 +660,10 @@ Additional Inherited Members</h2></td></tr>
|
|
|
660
660
|
<p>Add conditional intraprocedural edges between two nodes </p>
|
|
661
661
|
|
|
662
662
|
<p class="definition">Definition at line <a class="el" href="ICFG_8cpp_source.html#l00355">355</a> of file <a class="el" href="ICFG_8cpp_source.html">ICFG.cpp</a>.</p>
|
|
663
|
-
<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge->isIntraCFGEdge() && <span class="stringliteral">"this should be an intra CFG edge!"</span>);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  intraEdge-><a class="code" href="classSVF_1_1IntraCFGEdge.html#
|
|
663
|
+
<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="classSVF_1_1ICFG.html#a70421a19a494eb6131a9ae72ef1a64d6">checkIntraEdgeParents</a>(srcNode, dstNode);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = <a class="code" href="classSVF_1_1ICFG.html#aa662baae5682ef6ec5084fa4147c9709">hasIntraICFGEdge</a>(srcNode,dstNode, <a class="code" href="classSVF_1_1ICFGEdge.html#a395c34788e98950bc43e8cb44313e429acb8fba7c61b08ec952f1b65643d7a84b">ICFGEdge::IntraCF</a>))</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(edge->isIntraCFGEdge() && <span class="stringliteral">"this should be an intra CFG edge!"</span>);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>* intraEdge = <span class="keyword">new</span> <a class="code" href="classSVF_1_1IntraCFGEdge.html">IntraCFGEdge</a>(srcNode,dstNode);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  intraEdge-><a class="code" href="classSVF_1_1IntraCFGEdge.html#ab2b93e36ccce4bf1fde9a58b547fd1de">setBranchCondition</a>(condition,branchCondVal);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(intraEdge) ? intraEdge : <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> }</div><div class="ttc" id="classSVF_1_1ICFGEdge_html"><div class="ttname"><a href="classSVF_1_1ICFGEdge.html">SVF::ICFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00044">ICFGEdge.h:44</a></div></div>
|
|
664
664
|
<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>
|
|
665
665
|
<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#l00113">ICFGEdge.h:113</a></div></div>
|
|
666
|
-
<div class="ttc" id="
|
|
666
|
+
<div class="ttc" id="classSVF_1_1IntraCFGEdge_html_ab2b93e36ccce4bf1fde9a58b547fd1de"><div class="ttname"><a href="classSVF_1_1IntraCFGEdge.html#ab2b93e36ccce4bf1fde9a58b547fd1de">SVF::IntraCFGEdge::setBranchCondition</a></div><div class="ttdeci">void setBranchCondition(const Value *c, s32_t bVal)</div><div class="ttdef"><b>Definition:</b> <a href="ICFGEdge_8h_source.html#l00146">ICFGEdge.h:146</a></div></div>
|
|
667
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#l00053">ICFGEdge.h:53</a></div></div>
|
|
668
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>
|
|
669
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#l00263">ICFG.cpp:263</a></div></div>
|
|
@@ -532,18 +532,19 @@ Private Attributes</h2></td></tr>
|
|
|
532
532
|
<p>default case is set to -1; </p>
|
|
533
533
|
|
|
534
534
|
<p class="definition">Definition at line <a class="el" href="ICFGBuilder_8cpp_source.html#l00080">80</a> of file <a class="el" href="ICFGBuilder_8cpp_source.html">ICFGBuilder.cpp</a>.</p>
|
|
535
|
-
<div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#abb7144bcc587e236fd22f6c8896117f5">BBSet</a> visited;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">while</span> (!worklist.empty())</div><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="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = worklist.pop();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (visited.find(inst) == visited.end())</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  visited.insert(inst);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* srcNode = <a class="code" href="classSVF_1_1ICFGBuilder.html#a42f190f697284e6da7a6211ce7adecfe">getOrAddBlockICFGNode</a>(inst);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#abd525a2e3b7b9167b61b2304cc2cbdf2">isReturn</a>(inst))</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = inst->getFunction();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> = <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">getFunExitICFGNode</a>(svfFun);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(srcNode, FunExitICFGNode);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#a57af1044422b3c3860aa6fb033f8111e">InstVec</a> nextInsts;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">getNextInsts</a>(inst, nextInsts);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> branchID = 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">for</span> (InstVec::const_iterator nit = nextInsts.begin(), enit =</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  nextInsts.end(); nit != enit; ++nit)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* succ = *nit;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dstNode = <a class="code" href="classSVF_1_1ICFGBuilder.html#a42f190f697284e6da7a6211ce7adecfe">getOrAddBlockICFGNode</a>(succ);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retICFGNode = <a class="code" href="classSVF_1_1ICFGBuilder.html#a7c1125c992eec20e118e6bfc12cb8bfb">getRetICFGNode</a>(inst);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  srcNode = retICFGNode;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>* br = SVFUtil::dyn_cast<BranchInst>(inst))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(branchID <= 2 && <span class="stringliteral">"if/else has more than two branches?"</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span>(br->isConditional())</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#a6436c2e6ab117007db80b9936fd4b5fe">addConditionalIntraEdge</a>(srcNode, dstNode, br->getCondition(), 1 - branchID);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(srcNode, dstNode);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a>* si = SVFUtil::dyn_cast<SwitchInst>(inst))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* condVal = <span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a>*<span class="keyword">></span>(si)->findCaseDest(const_cast<BasicBlock*>(succ->getParent()));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> val = condVal ? condVal->getSExtValue() : -1;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#a6436c2e6ab117007db80b9936fd4b5fe">addConditionalIntraEdge</a>(srcNode, dstNode, si->getCondition(),val);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(srcNode, dstNode);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  worklist.push(succ);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  branchID++;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div><div class="ttc" id="classSVF_1_1ICFGBuilder_html_a7c1125c992eec20e118e6bfc12cb8bfb"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html#a7c1125c992eec20e118e6bfc12cb8bfb">SVF::ICFGBuilder::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const Instruction *cs)</div><div class="ttdoc">Add a return node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8h_source.html#l00092">ICFGBuilder.h:92</a></div></div>
|
|
535
|
+
<div class="fragment"><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#abb7144bcc587e236fd22f6c8896117f5">BBSet</a> visited;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">while</span> (!worklist.empty())</div><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="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = worklist.pop();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (visited.find(inst) == visited.end())</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  visited.insert(inst);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* srcNode = <a class="code" href="classSVF_1_1ICFGBuilder.html#a42f190f697284e6da7a6211ce7adecfe">getOrAddBlockICFGNode</a>(inst);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#abd525a2e3b7b9167b61b2304cc2cbdf2">isReturn</a>(inst))</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = inst->getFunction();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a> = <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">getFunExitICFGNode</a>(svfFun);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(srcNode, FunExitICFGNode);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#a57af1044422b3c3860aa6fb033f8111e">InstVec</a> nextInsts;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">getNextInsts</a>(inst, nextInsts);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> branchID = 0;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">for</span> (InstVec::const_iterator nit = nextInsts.begin(), enit =</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  nextInsts.end(); nit != enit; ++nit)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* succ = *nit;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* dstNode = <a class="code" href="classSVF_1_1ICFGBuilder.html#a42f190f697284e6da7a6211ce7adecfe">getOrAddBlockICFGNode</a>(succ);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1RetICFGNode.html">RetICFGNode</a>* retICFGNode = <a class="code" href="classSVF_1_1ICFGBuilder.html#a7c1125c992eec20e118e6bfc12cb8bfb">getRetICFGNode</a>(inst);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  srcNode = retICFGNode;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">BranchInst</a>* br = SVFUtil::dyn_cast<BranchInst>(inst))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(branchID <= 2 && <span class="stringliteral">"if/else has more than two branches?"</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span>(br->isConditional())</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#aa4517b497891823eccbad2e790e2a440">addConditionalIntraEdge</a>(srcNode, dstNode, br->getCondition(), 1 - branchID);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">else</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(srcNode, dstNode);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a>* si = SVFUtil::dyn_cast<SwitchInst>(inst))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* condVal = <span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a412280b134578905248ce0122c5db7c9">SwitchInst</a>*<span class="keyword">></span>(si)->findCaseDest(const_cast<BasicBlock*>(succ->getParent()));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> val = condVal ? condVal->getSExtValue() : -1;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#aa4517b497891823eccbad2e790e2a440">addConditionalIntraEdge</a>(srcNode, dstNode, si->getCondition(),val);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">addIntraEdge</a>(srcNode, dstNode);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  worklist.push(succ);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  branchID++;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div><div class="ttc" id="classSVF_1_1ICFGBuilder_html_a7c1125c992eec20e118e6bfc12cb8bfb"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html#a7c1125c992eec20e118e6bfc12cb8bfb">SVF::ICFGBuilder::getRetICFGNode</a></div><div class="ttdeci">RetICFGNode * getRetICFGNode(const Instruction *cs)</div><div class="ttdoc">Add a return node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8h_source.html#l00092">ICFGBuilder.h:92</a></div></div>
|
|
536
536
|
<div class="ttc" id="namespaceSVF_html_ac9a05dd7ab16e998625037aa242cd30f"><div class="ttname"><a href="namespaceSVF.html#ac9a05dd7ab16e998625037aa242cd30f">SVF::BranchInst</a></div><div class="ttdeci">llvm::BranchInst BranchInst</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00149">BasicTypes.h:149</a></div></div>
|
|
537
|
-
<div class="ttc" id="classSVF_1_1ICFG_html_a6436c2e6ab117007db80b9936fd4b5fe"><div class="ttname"><a href="classSVF_1_1ICFG.html#a6436c2e6ab117007db80b9936fd4b5fe">SVF::ICFG::addConditionalIntraEdge</a></div><div class="ttdeci">ICFGEdge * addConditionalIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Value *condition, s64_t branchCondVal)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00355">ICFG.cpp:355</a></div></div>
|
|
538
537
|
<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>
|
|
539
538
|
<div class="ttc" id="classSVF_1_1ICFGBuilder_html_abb7144bcc587e236fd22f6c8896117f5"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html#abb7144bcc587e236fd22f6c8896117f5">SVF::ICFGBuilder::BBSet</a></div><div class="ttdeci">Set< const Instruction * > BBSet</div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8h_source.html#l00045">ICFGBuilder.h:45</a></div></div>
|
|
540
539
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00219">BasicTypes.h:219</a></div></div>
|
|
540
|
+
<div class="ttc" id="namespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
|
|
541
541
|
<div class="ttc" id="classSVF_1_1ICFG_html_af1b2d2839f811a00103df87342dfc919"><div class="ttname"><a href="classSVF_1_1ICFG.html#af1b2d2839f811a00103df87342dfc919">SVF::ICFG::getFunExitICFGNode</a></div><div class="ttdeci">FunExitICFGNode * getFunExitICFGNode(const SVFFunction *fun)</div><div class="ttdoc">Add a function exit node. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00251">ICFG.cpp:251</a></div></div>
|
|
542
542
|
<div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
|
|
543
543
|
<div class="ttc" id="classSVF_1_1ICFGBuilder_html_a57af1044422b3c3860aa6fb033f8111e"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html#a57af1044422b3c3860aa6fb033f8111e">SVF::ICFGBuilder::InstVec</a></div><div class="ttdeci">std::vector< const Instruction * > InstVec</div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8h_source.html#l00044">ICFGBuilder.h:44</a></div></div>
|
|
544
544
|
<div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
545
545
|
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00077">SVFBasicTypes.h:77</a></div></div>
|
|
546
546
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2f9959fa23ab4bdc65ca36fbda8c1b70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2f9959fa23ab4bdc65ca36fbda8c1b70">SVF::SVFUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const Instruction *> &instList)</div><div class="ttdoc">Get the next instructions following control flow. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00214">LLVMUtil.cpp:214</a></div></div>
|
|
547
|
+
<div class="ttc" id="classSVF_1_1ICFG_html_aa4517b497891823eccbad2e790e2a440"><div class="ttname"><a href="classSVF_1_1ICFG.html#aa4517b497891823eccbad2e790e2a440">SVF::ICFG::addConditionalIntraEdge</a></div><div class="ttdeci">ICFGEdge * addConditionalIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode, const Value *condition, s32_t branchCondVal)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00355">ICFG.cpp:355</a></div></div>
|
|
547
548
|
<div class="ttc" id="classSVF_1_1RetICFGNode_html"><div class="ttname"><a href="classSVF_1_1RetICFGNode.html">SVF::RetICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00459">ICFGNode.h:459</a></div></div>
|
|
548
549
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00074">BasicTypes.h:74</a></div></div>
|
|
549
550
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
|
|
@@ -554,7 +555,6 @@ Private Attributes</h2></td></tr>
|
|
|
554
555
|
<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>
|
|
555
556
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_abd525a2e3b7b9167b61b2304cc2cbdf2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#abd525a2e3b7b9167b61b2304cc2cbdf2">SVF::SVFUtil::isReturn</a></div><div class="ttdeci">bool isReturn(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a return instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00213">SVFUtil.h:213</a></div></div>
|
|
556
557
|
<div class="ttc" id="classSVF_1_1ICFGBuilder_html_adefeaad9c02000f263430dfee7149ea6"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html#adefeaad9c02000f263430dfee7149ea6">SVF::ICFGBuilder::icfg</a></div><div class="ttdeci">ICFG * icfg</div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8h_source.html#l00048">ICFGBuilder.h:48</a></div></div>
|
|
557
|
-
<div class="ttc" id="namespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00080">SVFBasicTypes.h:80</a></div></div>
|
|
558
558
|
<div class="ttc" id="classSVF_1_1ICFG_html_adafd8bbb91507a9a78a3f16305812afc"><div class="ttname"><a href="classSVF_1_1ICFG.html#adafd8bbb91507a9a78a3f16305812afc">SVF::ICFG::addIntraEdge</a></div><div class="ttdeci">ICFGEdge * addIntraEdge(ICFGNode *srcNode, ICFGNode *dstNode)</div><div class="ttdoc">Add control-flow edges for top level pointers. </div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00337">ICFG.cpp:337</a></div></div>
|
|
559
559
|
<div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a547b3bc62de65b9dbfc6dee55c063dd7"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">const SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00112">LLVMModule.h:112</a></div></div>
|
|
560
560
|
</div><!-- fragment -->
|
|
@@ -70,7 +70,7 @@ $(function() {
|
|
|
70
70
|
<p>This is the complete list of members for <a class="el" href="classSVF_1_1ICFGPrinter.html">SVF::ICFGPrinter</a>, including all inherited members.</p>
|
|
71
71
|
<table class="directory">
|
|
72
72
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#abde033687317d47909ee45db7501723f">addCallEdge</a>(ICFGNode *srcNode, ICFGNode *dstNode, const Instruction *cs)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
|
73
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#
|
|
73
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#aa4517b497891823eccbad2e790e2a440">addConditionalIntraEdge</a>(ICFGNode *srcNode, ICFGNode *dstNode, const Value *condition, s32_t branchCondVal)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
|
74
74
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html#a0a8831a5429005ff9d71adbd6bf3994f">addGNode</a>(NodeID id, NodeType *node)</td><td class="entry"><a class="el" href="classSVF_1_1GenericGraph.html">SVF::GenericGraph< NodeTy, EdgeTy ></a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
75
75
|
<tr><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a462f590c2604184d69e4efe3d85a7b5b">addICFGEdge</a>(ICFGEdge *edge)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
|
|
76
76
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1ICFG.html#a15816a82d8c33a066009440dce6ee973">addICFGNode</a>(ICFGNode *node)</td><td class="entry"><a class="el" href="classSVF_1_1ICFG.html">SVF::ICFG</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
|