svf-tools 1.0.367 → 1.0.371
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 +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +9 -7
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +51 -41
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +22 -19
- package/SVF-doxygen/html/html/ICFG_8h_source.html +6 -5
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +10 -6
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +40 -40
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +40 -40
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +38 -38
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +73 -75
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +5 -5
- 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/classSVF_1_1AndersenStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +42 -43
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +15 -18
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge-members.html +28 -25
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +108 -15
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +42 -43
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +16 -19
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +30 -26
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +22 -17
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +27 -26
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +121 -82
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +45 -46
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +8 -46
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +47 -48
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +32 -33
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge-members.html +23 -20
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +110 -15
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +87 -86
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +87 -76
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt-members.html +44 -45
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +21 -24
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/functions_a.html +12 -10
- package/SVF-doxygen/html/html/functions_b.html +7 -12
- package/SVF-doxygen/html/html/functions_c.html +22 -18
- package/SVF-doxygen/html/html/functions_f.html +3 -3
- package/SVF-doxygen/html/html/functions_func.html +13 -11
- package/SVF-doxygen/html/html/functions_func_g.html +19 -17
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_g.html +20 -18
- package/SVF-doxygen/html/html/functions_n.html +6 -6
- package/SVF-doxygen/html/html/functions_p.html +15 -15
- package/SVF-doxygen/html/html/functions_r.html +5 -2
- package/SVF-doxygen/html/html/functions_s.html +11 -11
- package/SVF-doxygen/html/html/functions_type_b.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_c.html +5 -1
- package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +3 -3
- package/SVF-doxygen/html/html/search/all_10.js +7 -7
- package/SVF-doxygen/html/html/search/all_12.js +3 -3
- package/SVF-doxygen/html/html/search/all_13.js +8 -8
- package/SVF-doxygen/html/html/search/all_14.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_2.js +2 -3
- package/SVF-doxygen/html/html/search/all_3.js +2 -1
- package/SVF-doxygen/html/html/search/all_6.js +1 -1
- package/SVF-doxygen/html/html/search/all_7.js +7 -7
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +6 -6
- package/SVF-doxygen/html/html/search/functions_0.js +3 -3
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_6.js +7 -7
- package/SVF-doxygen/html/html/search/typedefs_1.js +0 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +2 -1
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +18 -18
- 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 +1 -1
- package/include/Graphs/ICFGEdge.h +39 -17
- package/include/Graphs/ICFGNode.h +1 -1
- package/include/MemoryModel/SVFStatements.h +2 -11
- package/include/SVF-FE/SVFIRBuilder.h +3 -1
- package/include/Util/ExtAPI.h +1 -1
- package/lib/Graphs/ICFG.cpp +22 -7
- package/lib/MemoryModel/SVFIR.cpp +2 -1
- package/lib/MemoryModel/SVFStatements.cpp +6 -6
- package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
- package/lib/SVF-FE/ICFGBuilder.cpp +8 -3
- package/lib/SVF-FE/SVFIRBuilder.cpp +15 -3
- package/lib/Util/ExtAPI.cpp +0 -1
- package/package.json +1 -1
|
@@ -66,203 +66,201 @@ $(function() {
|
|
|
66
66
|
<div class="title">SVFStatements.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="SVFStatements_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- SVFStatements.h -- SVF statements-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * SVFStatements.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Created on: Nov 10, 2013</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef PAGEDGE_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define PAGEDGE_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="ICFGNode_8h.html">Graphs/ICFGNode.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971"> 41</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * SVFIR program statements (PAGEdges)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> */</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge<SVFVar></a> <a class="code" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> : <span class="keyword">public</span> GenericPAGEdgeTy</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9"> 54</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688"> 56</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">Ret</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17"> 60</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36"> 61</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71"> 62</a></span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060"> 63</a></span>  <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9"> 65</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9">totalEdgeNum</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k);</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0"> 70</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">~SVFStmt</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50"> 76</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>*)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3"> 80</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><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>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a> ||</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a> ||</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a> ||</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491"> 98</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491">getEdgeID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db"> 107</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">getInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>>(<a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0"> 111</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">setValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</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>  value = val;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882"> 115</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623"> 119</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">setBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb)</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>  basicBlock = bb;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495"> 123</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">getBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c"> 127</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</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>  icfgNode = node;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b"> 131</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">getICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b"> 138</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  Var2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.find(var);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.end()) ?</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>++;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</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="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00"> 147</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(cs);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>++;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18"> 157</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* store)</div><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>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(store);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>++;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead"> 170</a></span>  <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>& <a class="code" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">operator<< </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> &edge)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  o << edge.<a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4"> 177</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">GenericNode<SVFVar,SVFStmt>::GEdgeSetTy</a> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmtSetTy</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa"> 178</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<EdgeID, SVFStmtSetTy></a> <a class="code" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">PAGEdgeToSetMapTy</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66"> 179</a></span>  <span class="keyword">typedef</span> PAGEdgeToSetMapTy <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">KindToSVFStmtMapTy</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2"> 180</a></span>  <span class="keyword">typedef</span> SVFStmtSetTy <a class="code" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">PAGEdgeSetTy</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228"> 183</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const ICFGNode*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">Inst2LabelMap</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb"> 184</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFVar*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">Var2LabelMap</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c"> 185</a></span>  <span class="keyword">static</span> Inst2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>; </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007"> 186</a></span>  <span class="keyword">static</span> Var2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>; </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4"> 187</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27"> 188</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>; </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed"> 189</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>; </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> };</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">/*</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"> Parent class of Addr, Copy, Store, Load, Call, Ret, NormalGep, VariantGep, ThreadFork, ThreadJoin</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> connecting RHS expression and LHS expression with an assignment (e.g., LHSExpr = RHSExpr)</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> Only one operand on the right handside of an assignment</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">*/</span></div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html"> 197</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><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="keyword">private</span>:</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(); </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620"> 210</a></span>  <a class="code" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,k)</div><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>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7"> 217</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0"> 221</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><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>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245"> 233</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28"> 247</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  } </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7"> 250</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  } </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d"> 253</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVFStmt::getSrcID</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  } </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840"> 256</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVFStmt::getDstID</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  } </div><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>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> };</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html"> 266</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(); </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f"> 276</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad"> 280</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c"> 284</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c"> 291</a></span>  <a class="code" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">AddrStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> };</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html"> 302</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(); </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4"> 311</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848"> 315</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68"> 319</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389"> 326</a></span>  <a class="code" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">CopyStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> };</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html"> 336</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(); </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67"> 346</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9"> 350</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2"> 354</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><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>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae"> 361</a></span>  <a class="code" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae">StoreStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* st) :</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s, d, <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, st))</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</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> </div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</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="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html"> 373</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(); </div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560"> 383</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40"> 387</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826"> 391</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2"> 398</a></span>  <a class="code" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">LoadStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> };</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html"> 409</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(); </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7"> 416</a></span>  <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">ls</a>; </div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757"> 417</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757">variantField</a>; </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176"> 421</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20"> 425</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f"> 429</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8"> 435</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& <a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVariantFieldGep()==<span class="keyword">false</span> && <span class="stringliteral">"Can't retrieve the LocationSet if using a variable field index (pointer arithmetic) for struct field access "</span>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904"> 440</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">LocationSet::OffsetValueVec</a>& <a class="code" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904">getOffsetValueVec</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> getLocationSet().getOffsetValueVec();</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4"> 445</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> getLocationSet().isConstantOffset();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf"> 449</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf">accumulateConstantOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantOffset();</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602"> 454</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantFieldIdx();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788"> 459</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">return</span> variantField;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  } </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3"> 465</a></span>  <a class="code" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3">GepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& l, <span class="keywordtype">bool</span> varfld=<span class="keyword">false</span>) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>), ls(l), variantField(varfld)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> };</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html"> 477</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallPE.html">CallPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(); </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#ace0704c65aa3637c50ff880f68808bba"> 484</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ace0704c65aa3637c50ff880f68808bba">call</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a88e420e259b8d7d34c9850ddde53d372"> 485</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a88e420e259b8d7d34c9850ddde53d372">entry</a>; </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73"> 489</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *)</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5"> 493</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa"> 498</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6b907624482ae697680c747e9b41fdab"> 506</a></span>  <a class="code" href="classSVF_1_1CallPE.html#a6b907624482ae697680c747e9b41fdab">CallPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* e, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>) :</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), call(i), entry(e)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f"> 513</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div><div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09"> 517</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a9c9821c4e7dd031e3f82f2b29427e53e"> 521</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a9c9821c4e7dd031e3f82f2b29427e53e">getFunEntryICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a936a27e51e66afb57c2b3a12d78a238e">entry</a>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> };</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html"> 534</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1RetPE.html">RetPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(); </div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#aa2d42edfce9d5a8c025c0bb529aee0f2"> 541</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#aa2d42edfce9d5a8c025c0bb529aee0f2">call</a>; </div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a6f6ccda153150b6acdd81550e45f640f"> 542</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a6f6ccda153150b6acdd81550e45f640f">exit</a>; </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21"> 546</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *)</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div><div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471"> 550</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119"> 555</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div><div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8"> 563</a></span>  <a class="code" href="classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8">RetPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* e, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>) :</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), call(i), exit(e)</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42"> 570</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  }</div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d"> 574</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a274adbd91750d8d6de8ba997285c1c49"> 578</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a274adbd91750d8d6de8ba997285c1c49">getFunExitICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">return</span> <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span> };</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="comment">/*</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="comment">* Program statements with multiple operands including BinaryOPStmt, CmpStmt and PhiStmt</span></div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="comment">*/</span></div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html"> 590</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007"> 592</a></span>  <span class="keyword">typedef</span> std::vector<SVFVar*> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(); </div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880"> 603</a></span>  OPVars <a class="code" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">opVars</a>;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c"> 605</a></span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">MultiOpndStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* r, <span class="keyword">const</span> OPVars& opnds, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k): <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(opnds.at(0), r, k), opVars(opnds)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9"> 611</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *)</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470"> 615</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *node)</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  {</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a> ||</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678"> 622</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *node)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a> ||</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getOpVar(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">return</span> opVars.at(pos);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601"> 638</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  }</div><div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af3c4989a458a1e5f7a5e0ba8e5c8b6ae"> 643</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af3c4989a458a1e5f7a5e0ba8e5c8b6ae">getOpPos</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op)<span class="keyword"> const</span>{</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < getOpVarNum(); i++){</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">if</span>(getOpVar(i)==op)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">return</span> i;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  }</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"this operand not found!"</span>);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  }</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos) <span class="keyword">const</span>;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span> </div><div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3"> 655</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">return</span> opVars.size();</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  }</div><div class="line"><a name="l00659"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b"> 659</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> OPVars& <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">return</span> opVars;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  }</div><div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9"> 662</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">opVarBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">return</span> opVars.begin();</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  }</div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c"> 666</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">return</span> opVars.end();</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span> };</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html"> 677</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4"> 680</a></span>  <span class="keyword">typedef</span> std::vector<const ICFGNode* > <a class="code" href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4">OpICFGNodeVec</a>;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(); </div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span> </div><div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5"> 687</a></span>  OpICFGNodeVec <a class="code" href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5">opICFGNodes</a>;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span> </div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9"> 691</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *)</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  {</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  }</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139"> 695</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  }</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354"> 699</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  }</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3"> 703</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3"> 710</a></span>  <a class="code" href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3">PhiStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <span class="keyword">const</span> OpICFGNodeVec& icfgNodes) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>), opICFGNodes(icfgNodes)</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opnds.size()==icfgNodes.size() && <span class="stringliteral">"Numbers of operands and their ICFGNodes are not consistent?"</span>);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  }</div><div class="line"><a name="l00714"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37"> 714</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37">addOpVar</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inode){</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  opVars.push_back(op);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  opICFGNodes.push_back(inode);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opVars.size()==opICFGNodes.size() && <span class="stringliteral">"Numbers of operands and their ICFGNodes are not consistent?"</span>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  }</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#af7e57da55f80c53a6f483976202e4c5c"> 721</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1PhiStmt.html#af7e57da55f80c53a6f483976202e4c5c">getOpICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op)<span class="keyword"> const</span>{</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keywordflow">return</span> opICFGNodes.at(getOpPos(op));</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordtype">bool</span> isFunctionRetPhi() <span class="keyword">const</span>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span> };</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span> </div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html"> 735</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>(); </div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> &); </div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> &); </div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span> </div><div class="line"><a name="l00742"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2"> 742</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2">condition</a>;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span> </div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e"> 746</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *)</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  }</div><div class="line"><a name="l00750"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be"> 750</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div><div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce"> 754</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  }</div><div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1"> 758</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div><div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b"> 765</a></span>  <a class="code" href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b">SelectStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* cond) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a>), condition(cond)</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opnds.size()==2 && <span class="stringliteral">"SelectStmt can only have two operands!"</span>);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  }</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span> </div><div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c"> 771</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">return</span> condition;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  }</div><div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568"> 774</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">return</span> getOpVar(0);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  }</div><div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad"> 777</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">return</span> getOpVar(1);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  }</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span> };</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span> </div><div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html"> 785</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span> {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(); </div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span> </div><div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328"> 792</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">predicate</a>;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span> </div><div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61"> 796</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *)</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  {</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  }</div><div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5"> 800</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  {</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  }</div><div class="line"><a name="l00804"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61"> 804</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  }</div><div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd"> 808</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span> </div><div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a"> 815</a></span>  <a class="code" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">CmpStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pre) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>), predicate(pre)</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  }</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div><div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632"> 819</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">return</span> predicate;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  }</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  </div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span> };</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span> </div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span> </div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html"> 831</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span> {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(); </div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a"> 837</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">opcode</a>;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span> </div><div class="line"><a name="l00842"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5"> 842</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *)</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  {</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  }</div><div class="line"><a name="l00846"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63"> 846</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  {</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  }</div><div class="line"><a name="l00850"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d"> 850</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  {</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  }</div><div class="line"><a name="l00854"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd"> 854</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  {</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span> </div><div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1"> 861</a></span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">BinaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>), opcode(oc)</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  }</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span> </div><div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f"> 865</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  }</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span> </div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span> };</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span> </div><div class="line"><a name="l00876"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html"> 876</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span> {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(); </div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> </div><div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6"> 887</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">opcode</a>;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span> </div><div class="line"><a name="l00891"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95"> 891</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> *)</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  {</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  }</div><div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7"> 895</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  {</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div><div class="line"><a name="l00899"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896"> 899</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  }</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span> </div><div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba"> 906</a></span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">UnaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>), opcode(oc)</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  {</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span> </div><div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6"> 910</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  }</div><div class="line"><a name="l00914"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b"> 914</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">getOpVar</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  }</div><div class="line"><a name="l00917"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1"> 917</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">getRes</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  }</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID() <span class="keyword">const</span>;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> </div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span> };</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span> </div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span> </div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html"> 930</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> {</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00933"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890"> 933</a></span>  <span class="keyword">typedef</span> std::vector<std::pair<const ICFGNode*, s64_t> > <a class="code" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SuccAndCondPairVec</a>;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(); </div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span> </div><div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5"> 943</a></span>  SuccAndCondPairVec <a class="code" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">successors</a>;</div><div class="line"><a name="l00944"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f"> 944</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">cond</a>;</div><div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a"> 945</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">brInst</a>;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span> </div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> </div><div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847"> 950</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *)</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  {</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  }</div><div class="line"><a name="l00954"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647"> 954</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  }</div><div class="line"><a name="l00958"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82"> 958</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  {</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span> </div><div class="line"><a name="l00965"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2"> 965</a></span>  <a class="code" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">BranchStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* inst, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* c, <span class="keyword">const</span> SuccAndCondPairVec& succs) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(c,inst,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>), successors(succs), cond(c), brInst(inst)</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  }</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span> </div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  <span class="keywordtype">bool</span> isUnconditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <span class="keywordtype">bool</span> isConditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getCondition() <span class="keyword">const</span>;</div><div class="line"><a name="l00975"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b"> 975</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">getBranchInst</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">return</span> brInst;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  }</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  </div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span> </div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span> </div><div class="line"><a name="l00990"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b"> 990</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">return</span> successors.size();</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  }</div><div class="line"><a name="l00993"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd"> 993</a></span>  <span class="keyword">const</span> SuccAndCondPairVec& <a class="code" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">getSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">return</span> successors;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  }</div><div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8"> 996</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keywordflow">return</span> successors.at(i).first;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  }</div><div class="line"><a name="l00999"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556"> 999</a></span>  <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556">getSuccessorCondValue</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{ </div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keywordflow">return</span> successors.at(i).second;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> };</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> </div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> </div><div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html"> 1010</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a></div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(); </div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> </div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> </div><div class="line"><a name="l01020"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d"> 1020</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *)</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  {</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  }</div><div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c"> 1024</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  {</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  }</div><div class="line"><a name="l01028"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018"> 1028</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  {</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  }</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div><div class="line"><a name="l01035"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#ae28fa8ad500a11208410adbfd0d19ea5"> 1035</a></span>  <a class="code" href="classSVF_1_1TDForkPE.html#ae28fa8ad500a11208410adbfd0d19ea5">TDForkPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="cuddInt_8c.html#a936a27e51e66afb57c2b3a12d78a238e">entry</a>) :</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(s,d,i,entry,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>)</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  {</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  }</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span> </div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> };</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> </div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span> </div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> </div><div class="line"><a name="l01048"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html"> 1048</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a></div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> {</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(); </div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> </div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> </div><div class="line"><a name="l01058"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2"> 1058</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *)</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  }</div><div class="line"><a name="l01062"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d"> 1062</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  {</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  }</div><div class="line"><a name="l01066"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b"> 1066</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  {</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div><div class="line"><a name="l01073"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ad836475c24cb395175291df3f1ddfee0"> 1073</a></span>  <a class="code" href="classSVF_1_1TDJoinPE.html#ad836475c24cb395175291df3f1ddfee0">TDJoinPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* e) :</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(s,d,i,e, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a>)</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  {</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  }</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> </div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> };</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> </div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> </div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> <span class="preprocessor">#endif </span><span class="comment">/* PAGEDGE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CmpStmt_html_a16a5fddf61f6a13ee34dde0c4267d0e5"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00800">SVFStatements.h:800</a></div></div>
|
|
69
|
+
<a href="SVFStatements_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- SVFStatements.h -- SVF statements-------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> * SVFStatements.h</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Created on: Nov 10, 2013</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifndef PAGEDGE_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#define PAGEDGE_H_</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="GenericGraph_8h.html">Graphs/GenericGraph.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="LocationSet_8h.html">MemoryModel/LocationSet.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="ICFGNode_8h.html">Graphs/ICFGNode.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971"> 41</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">/*</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment"> * SVFIR program statements (PAGEdges)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment"> */</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericEdge.html">GenericEdge<SVFVar></a> <a class="code" href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">GenericPAGEdgeTy</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> : <span class="keyword">public</span> GenericPAGEdgeTy</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9"> 54</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">PEDGEK</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688"> 56</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">Call</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">Ret</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>, <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17"> 60</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>; </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36"> 61</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>; </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71"> 62</a></span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *<a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>; </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060"> 63</a></span>  <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9"> 65</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9">totalEdgeNum</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVFStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k);</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0"> 70</a></span>  <a class="code" href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">~SVFStmt</a>()</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50"> 76</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>*)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3"> 80</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><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>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a> ||</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a> ||</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a> ||</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491"> 98</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">EdgeID</a> <a class="code" href="classSVF_1_1SVFStmt.html#af7bb0d687fc61cae1de639c88e472491">getEdgeID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">edgeId</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">isPTAEdge</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db"> 107</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">getInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>>(<a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0"> 111</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">setValue</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</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>  value = val;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882"> 115</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">value</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623"> 119</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">setBB</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb)</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>  basicBlock = bb;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495"> 123</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">getBB</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">basicBlock</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c"> 127</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">setICFGNode</a>(<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</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>  icfgNode = node;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b"> 131</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">getICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFStmt.html#a50046a1500ec6e2819ef55162e70cc71">icfgNode</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b"> 138</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">makeEdgeFlagWithAddionalOpnd</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  Var2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.find(var);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>.end()) ?</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>++;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</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="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00"> 147</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* cs)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(cs);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>++;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18"> 157</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* store)</div><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>  Inst2LabelMap::const_iterator iter = <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.find(store);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> label = (iter != <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>.end()) ?</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  iter->second : <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>++;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  return (label << <a class="code" href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">EdgeKindMaskBits</a>) | k;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead"> 170</a></span>  <span class="keyword">friend</span> <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a>& <a class="code" href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">operator<< </a>(<a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> &edge)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  o << edge.<a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> o;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4"> 177</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">GenericNode<SVFVar,SVFStmt>::GEdgeSetTy</a> <a class="code" href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVFStmtSetTy</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa"> 178</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<EdgeID, SVFStmtSetTy></a> <a class="code" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">PAGEdgeToSetMapTy</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66"> 179</a></span>  <span class="keyword">typedef</span> PAGEdgeToSetMapTy <a class="code" href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">KindToSVFStmtMapTy</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2"> 180</a></span>  <span class="keyword">typedef</span> SVFStmtSetTy <a class="code" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">PAGEdgeSetTy</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228"> 183</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const ICFGNode*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">Inst2LabelMap</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb"> 184</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFVar*, u32_t></a> <a class="code" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">Var2LabelMap</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c"> 185</a></span>  <span class="keyword">static</span> Inst2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">inst2LabelMap</a>; </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007"> 186</a></span>  <span class="keyword">static</span> Var2LabelMap <a class="code" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">var2LabelMap</a>; </div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4"> 187</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">callEdgeLabelCounter</a>; </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27"> 188</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">storeEdgeLabelCounter</a>; </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed"> 189</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> <a class="code" href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">multiOpndLabelCounter</a>; </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> };</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">/*</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment"> Parent class of Addr, Copy, Store, Load, Call, Ret, NormalGep, VariantGep, ThreadFork, ThreadJoin</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment"> connecting RHS expression and LHS expression with an assignment (e.g., LHSExpr = RHSExpr)</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment"> Only one operand on the right handside of an assignment</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">*/</span></div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html"> 197</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><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="keyword">private</span>:</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(); </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> &); </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620"> 210</a></span>  <a class="code" href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">AssignStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,k)</div><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>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7"> 217</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a> *)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0"> 221</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><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>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245"> 233</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a> ||</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a> ||</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a> ||</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a> ||</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a> ||</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a> ||</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a> ||</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a> ||</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28"> 247</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  } </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7"> 250</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">getLHSVar</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  } </div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d"> 253</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVFStmt::getSrcID</a>();</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  } </div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840"> 256</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVFStmt::getDstID</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  } </div><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>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> };</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html"> 266</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(); </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> &); </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f"> 276</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad"> 280</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c"> 284</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVFStmt::Addr</a>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c"> 291</a></span>  <a class="code" href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">AddrStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">Addr</a>)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> };</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html"> 302</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(); </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> &); </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4"> 311</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848"> 315</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68"> 319</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVFStmt::Copy</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389"> 326</a></span>  <a class="code" href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">CopyStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">Copy</a>)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> };</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html"> 336</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(); </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> &); </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67"> 346</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9"> 350</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2"> 354</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><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>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae"> 361</a></span>  <a class="code" href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae">StoreStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntraICFGNode.html">IntraICFGNode</a>* st) :</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s, d, <a class="code" href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">makeEdgeFlagWithStoreInst</a>(<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">Store</a>, st))</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</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> </div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</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="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html"> 373</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(); </div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> &); </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560"> 383</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40"> 387</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826"> 391</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVFStmt::Load</a>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2"> 398</a></span>  <a class="code" href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">LoadStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">Load</a>)</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> };</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html"> 409</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(); </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> &); </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7"> 416</a></span>  <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">ls</a>; </div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757"> 417</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757">variantField</a>; </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176"> 421</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *)</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20"> 425</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f"> 429</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVFStmt::Gep</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8"> 435</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& <a class="code" href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">getLocationSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(isVariantFieldGep()==<span class="keyword">false</span> && <span class="stringliteral">"Can't retrieve the LocationSet if using a variable field index (pointer arithmetic) for struct field access "</span>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> ls;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904"> 440</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">LocationSet::OffsetValueVec</a>& <a class="code" href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904">getOffsetValueVec</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">return</span> getLocationSet().getOffsetValueVec();</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4"> 445</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keywordflow">return</span> getLocationSet().isConstantOffset();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  }</div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf"> 449</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf">accumulateConstantOffset</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantOffset();</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602"> 454</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602">getConstantFieldIdx</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">return</span> getLocationSet().accumulateConstantFieldIdx();</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788"> 459</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">isVariantFieldGep</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">return</span> variantField;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  } </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3"> 465</a></span>  <a class="code" href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3">GepStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& l, <span class="keywordtype">bool</span> varfld=<span class="keyword">false</span>) : <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">Gep</a>), ls(l), variantField(varfld)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> };</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html"> 477</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallPE.html">CallPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(); </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> &); </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#ace0704c65aa3637c50ff880f68808bba"> 484</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ace0704c65aa3637c50ff880f68808bba">call</a>; </div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a88e420e259b8d7d34c9850ddde53d372"> 485</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a88e420e259b8d7d34c9850ddde53d372">entry</a>; </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73"> 489</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *)</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5"> 493</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div><div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa"> 498</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a6b907624482ae697680c747e9b41fdab"> 506</a></span>  <a class="code" href="classSVF_1_1CallPE.html#a6b907624482ae697680c747e9b41fdab">CallPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* e, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVFStmt::Call</a>) :</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), call(i), entry(e)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> </div><div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f"> 513</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div><div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09"> 517</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1CallPE.html#a9c9821c4e7dd031e3f82f2b29427e53e"> 521</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="classSVF_1_1CallPE.html#a9c9821c4e7dd031e3f82f2b29427e53e">getFunEntryICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">return</span> <a class="code" href="cuddInt_8c.html#a936a27e51e66afb57c2b3a12d78a238e">entry</a>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> };</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html"> 534</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1RetPE.html">RetPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(); </div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> &); </div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#aa2d42edfce9d5a8c025c0bb529aee0f2"> 541</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#aa2d42edfce9d5a8c025c0bb529aee0f2">call</a>; </div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a6f6ccda153150b6acdd81550e45f640f"> 542</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a6f6ccda153150b6acdd81550e45f640f">exit</a>; </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21"> 546</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *)</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div><div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471"> 550</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119"> 555</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetPE.html#a2f0121f26e79fe3766cba93b42dc1119">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  || edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> </div><div class="line"><a name="l00563"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8"> 563</a></span>  <a class="code" href="classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8">RetPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* e, <a class="code" href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">GEdgeKind</a> k = <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVFStmt::Ret</a>) :</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="classSVF_1_1AssignStmt.html">AssignStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">makeEdgeFlagWithCallInst</a>(k,i)), call(i), exit(e)</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span> </div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42"> 570</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42">getCallInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  }</div><div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d"> 574</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">return</span> call;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classSVF_1_1RetPE.html#a274adbd91750d8d6de8ba997285c1c49"> 578</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* <a class="code" href="classSVF_1_1RetPE.html#a274adbd91750d8d6de8ba997285c1c49">getFunExitICFGNode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keywordflow">return</span> <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> </div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span> };</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span> </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="comment">/*</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> <span class="comment">* Program statements with multiple operands including BinaryOPStmt, CmpStmt and PhiStmt</span></div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span> <span class="comment">*/</span></div><div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html"> 590</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>{</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007"> 592</a></span>  <span class="keyword">typedef</span> std::vector<SVFVar*> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(); </div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> &); </div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880"> 603</a></span>  OPVars <a class="code" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">opVars</a>;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c"> 605</a></span>  <a class="code" href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">MultiOpndStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* r, <span class="keyword">const</span> OPVars& opnds, <a class="code" href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">GEdgeFlag</a> k): <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(opnds.at(0), r, k), opVars(opnds)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> </div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9"> 611</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *)</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div><div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470"> 615</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *node)</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  {</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a> ||</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  }</div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678"> 622</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *node)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">return</span> node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a> ||</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a> ||</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a> ||</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  node-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span> </div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getOpVar(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">return</span> opVars.at(pos);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div><div class="line"><a name="l00638"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601"> 638</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">getRes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  }</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> </div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos) <span class="keyword">const</span>;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div><div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3"> 646</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">return</span> opVars.size();</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  }</div><div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b"> 650</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> OPVars& <a class="code" href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">getOpndVars</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">return</span> opVars;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  }</div><div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9"> 653</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">opVarBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">return</span> opVars.begin();</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c"> 657</a></span>  <span class="keyword">inline</span> OPVars::const_iterator <a class="code" href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">return</span> opVars.end();</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  }</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span> };</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html"> 668</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span> {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4"> 671</a></span>  <span class="keyword">typedef</span> std::vector<const ICFGNode* > <a class="code" href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4">OpICFGNodeVec</a>;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(); </div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> &); </div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span> </div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5"> 678</a></span>  OpICFGNodeVec <a class="code" href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5">opICFGNodes</a>;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> </div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9"> 682</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *)</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139"> 686</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  {</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354"> 690</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  {</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3"> 694</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVFStmt::Phi</a>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  }</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span> </div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3"> 701</a></span>  <a class="code" href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3">PhiStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <span class="keyword">const</span> OpICFGNodeVec& icfgNodes) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">Phi</a>), opICFGNodes(icfgNodes)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opnds.size()==icfgNodes.size() && <span class="stringliteral">"Numbers of operands and their ICFGNodes are not consistent?"</span>);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  }</div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37"> 705</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37">addOpVar</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* op, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* inode){</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  opVars.push_back(op);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  opICFGNodes.push_back(inode);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opVars.size()==opICFGNodes.size() && <span class="stringliteral">"Numbers of operands and their ICFGNodes are not consistent?"</span>);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classSVF_1_1PhiStmt.html#a0b97394bc1946c0185d2c11fbc2181f4"> 712</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1PhiStmt.html#a0b97394bc1946c0185d2c11fbc2181f4">getOpICFGNode</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op_idx)<span class="keyword"> const</span>{</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">return</span> opICFGNodes.at(op_idx);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span> </div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordtype">bool</span> isFunctionRetPhi() <span class="keyword">const</span>;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> };</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div><div class="line"><a name="l00726"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html"> 726</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span> {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>(); </div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> &); </div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> &); </div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span> </div><div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2"> 733</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2">condition</a>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> </div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e"> 737</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *)</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  {</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be"> 741</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  {</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce"> 745</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  }</div><div class="line"><a name="l00749"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1"> 749</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVFStmt::Select</a>;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  }</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div><div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b"> 756</a></span>  <a class="code" href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b">SelectStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* cond) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">Select</a>), condition(cond)</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opnds.size()==2 && <span class="stringliteral">"SelectStmt can only have two operands!"</span>);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span> </div><div class="line"><a name="l00762"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c"> 762</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">return</span> condition;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  }</div><div class="line"><a name="l00765"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568"> 765</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">return</span> getOpVar(0);</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  }</div><div class="line"><a name="l00768"></a><span class="lineno"><a class="line" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad"> 768</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">return</span> getOpVar(1);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  }</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span> };</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span> </div><div class="line"><a name="l00776"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html"> 776</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span> {</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(); </div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> &); </div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span> </div><div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328"> 783</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">predicate</a>;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span> </div><div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61"> 787</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *)</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  }</div><div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5"> 791</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  }</div><div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61"> 795</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div><div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd"> 799</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVFStmt::Cmp</a>;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  }</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span> </div><div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a"> 806</a></span>  <a class="code" href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">CmpStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pre) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">Cmp</a>), predicate(pre)</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  {</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span> </div><div class="line"><a name="l00810"></a><span class="lineno"><a class="line" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632"> 810</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">return</span> predicate;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  </div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span> };</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div><div class="line"><a name="l00822"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html"> 822</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a></div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span> {</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(); </div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> &); </div><div class="line"><a name="l00828"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a"> 828</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">opcode</a>;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span> </div><div class="line"><a name="l00833"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5"> 833</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *)</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div><div class="line"><a name="l00837"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63"> 837</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div><div class="line"><a name="l00841"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d"> 841</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a> *edge)</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  }</div><div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd"> 845</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  {</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVFStmt::BinaryOp</a>;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  }</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span> </div><div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1"> 852</a></span>  <a class="code" href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">BinaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">OPVars</a>& opnds, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1MultiOpndStmt.html">MultiOpndStmt</a>(s,opnds,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">BinaryOp</a>), opcode(oc)</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  {</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  }</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span> </div><div class="line"><a name="l00856"></a><span class="lineno"><a class="line" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f"> 856</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  }</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span> </div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span> };</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span> </div><div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html"> 867</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span> {</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(); </div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> &); </div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span> </div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6"> 878</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">opcode</a>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div><div class="line"><a name="l00882"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95"> 882</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html">UnaryOPStmt</a> *)</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  {</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  }</div><div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7"> 886</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  {</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  }</div><div class="line"><a name="l00890"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896"> 890</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  {</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVFStmt::UnaryOp</a>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  }</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span> </div><div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba"> 897</a></span>  <a class="code" href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">UnaryOPStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> oc) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(s,d,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">UnaryOp</a>), opcode(oc)</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  {</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  }</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span> </div><div class="line"><a name="l00901"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6"> 901</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">getOpcode</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <span class="keywordflow">return</span> opcode;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  }</div><div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b"> 905</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">getOpVar</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVFStmt::getSrcNode</a>();</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  }</div><div class="line"><a name="l00908"></a><span class="lineno"><a class="line" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1"> 908</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">getRes</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVFStmt::getDstNode</a>();</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getOpVarID() <span class="keyword">const</span>;</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> getResID() <span class="keyword">const</span>;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span> </div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span> };</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span> </div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span> </div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html"> 921</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a></div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span> {</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00924"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890"> 924</a></span>  <span class="keyword">typedef</span> std::vector<std::pair<const ICFGNode*, s64_t> > <a class="code" href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SuccAndCondPairVec</a>;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(); </div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> &); </div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">getSrcNode</a>(); </div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>(); </div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>(); </div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>(); </div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span> </div><div class="line"><a name="l00934"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5"> 934</a></span>  SuccAndCondPairVec <a class="code" href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">successors</a>;</div><div class="line"><a name="l00935"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f"> 935</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">cond</a>;</div><div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a"> 936</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">brInst</a>;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span> </div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span> </div><div class="line"><a name="l00941"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847"> 941</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *)</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  {</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  }</div><div class="line"><a name="l00945"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647"> 945</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  {</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  }</div><div class="line"><a name="l00949"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82"> 949</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  {</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVFStmt::Branch</a>;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  }</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span> </div><div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2"> 956</a></span>  <a class="code" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">BranchStmt</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* inst, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* c, <span class="keyword">const</span> SuccAndCondPairVec& succs) : <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>(c,inst,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">Branch</a>), successors(succs), cond(c), brInst(inst)</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  {</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span> </div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordtype">bool</span> isUnconditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  <span class="keywordtype">bool</span> isConditional() <span class="keyword">const</span>;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* getCondition() <span class="keyword">const</span>;</div><div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b"> 966</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">getBranchInst</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">return</span> brInst;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  }</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  </div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span> </div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span> </div><div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b"> 981</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <span class="keywordflow">return</span> successors.size();</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  }</div><div class="line"><a name="l00984"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd"> 984</a></span>  <span class="keyword">const</span> SuccAndCondPairVec& <a class="code" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">getSuccessors</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">return</span> successors;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  }</div><div class="line"><a name="l00987"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8"> 987</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* <a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <span class="keywordflow">return</span> successors.at(i).first;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div><div class="line"><a name="l00990"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556"> 990</a></span>  <a class="code" href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">s64_t</a> <a class="code" href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556">getSuccessorCondValue</a> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)<span class="keyword"> const</span>{ </div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  <span class="keywordflow">return</span> successors.at(i).second;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  }</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const override</span>;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span> };</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span> </div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span> </div><div class="line"><a name="l01001"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html"> 1001</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a></div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> {</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(); </div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> &); </div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> </div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> </div><div class="line"><a name="l01011"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d"> 1011</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDForkPE.html">TDForkPE</a> *)</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  }</div><div class="line"><a name="l01015"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c"> 1015</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  }</div><div class="line"><a name="l01019"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018"> 1019</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  {</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVFStmt::ThreadFork</a>;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  }</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> </div><div class="line"><a name="l01026"></a><span class="lineno"><a class="line" href="classSVF_1_1TDForkPE.html#ae28fa8ad500a11208410adbfd0d19ea5"> 1026</a></span>  <a class="code" href="classSVF_1_1TDForkPE.html#ae28fa8ad500a11208410adbfd0d19ea5">TDForkPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunEntryICFGNode.html">FunEntryICFGNode</a>* <a class="code" href="cuddInt_8c.html#a936a27e51e66afb57c2b3a12d78a238e">entry</a>) :</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(s,d,i,entry,<a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">ThreadFork</a>)</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  {</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  }</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> </div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> };</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> </div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> </div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> </div><div class="line"><a name="l01039"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html"> 1039</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a></div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> {</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> <span class="keyword">private</span>:</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(); </div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> &); </div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> </div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> <span class="keyword">public</span>:</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span> </div><div class="line"><a name="l01049"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2"> 1049</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1TDJoinPE.html">TDJoinPE</a> *)</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  {</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  }</div><div class="line"><a name="l01053"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d"> 1053</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *edge)</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  {</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  }</div><div class="line"><a name="l01057"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b"> 1057</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">classof</a>(<span class="keyword">const</span> GenericPAGEdgeTy *edge)</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  {</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  <span class="keywordflow">return</span> edge-><a class="code" href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">getEdgeKind</a>() == <a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVFStmt::ThreadJoin</a>;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  }</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> </div><div class="line"><a name="l01064"></a><span class="lineno"><a class="line" href="classSVF_1_1TDJoinPE.html#ad836475c24cb395175291df3f1ddfee0"> 1064</a></span>  <a class="code" href="classSVF_1_1TDJoinPE.html#ad836475c24cb395175291df3f1ddfee0">TDJoinPE</a>(<a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* s, <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* d, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1FunExitICFGNode.html">FunExitICFGNode</a>* e) :</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(s,d,i,e, <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>::<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">ThreadJoin</a>)</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  }</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> </div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> };</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span> </div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> </div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> <span class="preprocessor">#endif </span><span class="comment">/* PAGEDGE_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CmpStmt_html_a16a5fddf61f6a13ee34dde0c4267d0e5"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a16a5fddf61f6a13ee34dde0c4267d0e5">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00791">SVFStatements.h:791</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a793c53e0b4f9a58099c096f0a0856495"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a793c53e0b4f9a58099c096f0a0856495">SVF::SVFStmt::getBB</a></div><div class="ttdeci">const BasicBlock * getBB() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00123">SVFStatements.h:123</a></div></div>
|
|
71
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a0c4f900cf7321e8385b4f45e5cba3d1a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">SVF::BinaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
71
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a0c4f900cf7321e8385b4f45e5cba3d1a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a0c4f900cf7321e8385b4f45e5cba3d1a">SVF::BinaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00828">SVFStatements.h:828</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00266">SVFStatements.h:266</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1CallPE_html_a188c51f3e378c451d34e90c96cca0cf5"><div class="ttname"><a href="classSVF_1_1CallPE.html#a188c51f3e378c451d34e90c96cca0cf5">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00493">SVFStatements.h:493</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a5de8ff8363cb3f0b1427b69aa1058470"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a5de8ff8363cb3f0b1427b69aa1058470">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00615">SVFStatements.h:615</a></div></div>
|
|
75
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac3541a25f83ce8465d7b35010ba50b37"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37">SVF::PhiStmt::addOpVar</a></div><div class="ttdeci">void addOpVar(SVFVar *op, const ICFGNode *inode)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
75
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac3541a25f83ce8465d7b35010ba50b37"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac3541a25f83ce8465d7b35010ba50b37">SVF::PhiStmt::addOpVar</a></div><div class="ttdeci">void addOpVar(SVFVar *op, const ICFGNode *inode)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00705">SVFStatements.h:705</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_adb92a92f5c878576dff26cb38eab8c8c"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#adb92a92f5c878576dff26cb38eab8c8c">SVF::SVFStmt::setICFGNode</a></div><div class="ttdeci">void setICFGNode(ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00127">SVFStatements.h:127</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a4f94b6731f324e44fc4d4e06d7acdbf7"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4f94b6731f324e44fc4d4e06d7acdbf7">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const AssignStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00217">SVFStatements.h:217</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1CallPE_html_ab548c22dfbfeeaeb8ffe83417b396c09"><div class="ttname"><a href="classSVF_1_1CallPE.html#ab548c22dfbfeeaeb8ffe83417b396c09">SVF::CallPE::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00517">SVFStatements.h:517</a></div></div>
|
|
80
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_a904591799ce401e8d3ee6aa634325ba3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
80
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_a904591799ce401e8d3ee6aa634325ba3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a904591799ce401e8d3ee6aa634325ba3">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00694">SVFStatements.h:694</a></div></div>
|
|
81
81
|
<div class="ttc" id="util_8h_html_a43b6ea6be735bb828bc062c70cadeff8"><div class="ttname"><a href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a></div><div class="ttdeci">VOID_OR_INT exit()</div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1RetPE_html_a6f6ccda153150b6acdd81550e45f640f"><div class="ttname"><a href="classSVF_1_1RetPE.html#a6f6ccda153150b6acdd81550e45f640f">SVF::RetPE::exit</a></div><div class="ttdeci">const FunExitICFGNode * exit</div><div class="ttdoc">the callsite statement returning to </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00542">SVFStatements.h:542</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a2bdfa37167b5496629e5cae62705d5f2"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">SVF::SVFStmt::PAGEdgeSetTy</a></div><div class="ttdeci">SVFStmtSetTy PAGEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00180">SVFStatements.h:180</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00534">SVFStatements.h:534</a></div></div>
|
|
85
85
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad2a5e6fe0f2b5fefb53abb9e91c57688">SVF::SVFStmt::UnaryOp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
86
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars & getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
86
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a0441f2646fed28830439c41a0704ed4b"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a0441f2646fed28830439c41a0704ed4b">SVF::MultiOpndStmt::getOpndVars</a></div><div class="ttdeci">const OPVars & getOpndVars() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00650">SVFStatements.h:650</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a97ca16eba4c5f92e16388f0cdbcfcc00">SVF::SVFStmt::Call</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
88
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_adcf5cabe6e0a87cded5ef1fdf7273f3f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">SVF::BranchStmt::cond</a></div><div class="ttdeci">const SVFVar * cond</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
89
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_af29723d5e777b10d53d48263a786f5b6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">SVF::UnaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
88
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_adcf5cabe6e0a87cded5ef1fdf7273f3f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adcf5cabe6e0a87cded5ef1fdf7273f3f">SVF::BranchStmt::cond</a></div><div class="ttdeci">const SVFVar * cond</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00935">SVFStatements.h:935</a></div></div>
|
|
89
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_af29723d5e777b10d53d48263a786f5b6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#af29723d5e777b10d53d48263a786f5b6">SVF::UnaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00901">SVFStatements.h:901</a></div></div>
|
|
90
90
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_ab30f370a8a2a3e63765c1e4843f07826"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#ab30f370a8a2a3e63765c1e4843f07826">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00391">SVFStatements.h:391</a></div></div>
|
|
91
91
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a37811e62495493454405cb33e4a2b904"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a37811e62495493454405cb33e4a2b904">SVF::GepStmt::getOffsetValueVec</a></div><div class="ttdeci">const LocationSet::OffsetValueVec & getOffsetValueVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00440">SVFStatements.h:440</a></div></div>
|
|
92
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_aa9d3eeb27fee7084bcd2921c98be1bd1"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
93
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac2374acf4477a4bc5d188797ea9baaf3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3">SVF::PhiStmt::PhiStmt</a></div><div class="ttdeci">PhiStmt(SVFVar *s, const OPVars &opnds, const OpICFGNodeVec &icfgNodes)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
92
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_aa9d3eeb27fee7084bcd2921c98be1bd1"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#aa9d3eeb27fee7084bcd2921c98be1bd1">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00749">SVFStatements.h:749</a></div></div>
|
|
93
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac2374acf4477a4bc5d188797ea9baaf3"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac2374acf4477a4bc5d188797ea9baaf3">SVF::PhiStmt::PhiStmt</a></div><div class="ttdeci">PhiStmt(SVFVar *s, const OPVars &opnds, const OpICFGNodeVec &icfgNodes)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00701">SVFStatements.h:701</a></div></div>
|
|
94
94
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a20d960c19118d1ed319e0dbea94405e8">SVF::SVFStmt::Gep</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
95
95
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a6b3cd98eeb47c8475e7ee64480dcdee9">SVF::SVFStmt::Phi</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
96
96
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_a32e129c9f7aa16be8c5c8569989f691f"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a32e129c9f7aa16be8c5c8569989f691f">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const AddrStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00276">SVFStatements.h:276</a></div></div>
|
|
97
97
|
<div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
|
|
98
98
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a62ac8480c43fcc657c631ec0003b15d5">SVF::SVFStmt::Load</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
99
99
|
<div class="ttc" id="namespaceSVF_html_a424cc053c29ad7303699c529d1a2cc71"><div class="ttname"><a href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">SVF::raw_ostream</a></div><div class="ttdeci">llvm::raw_ostream raw_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
|
|
100
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7cae2a90a33225c90eb035cf9e663d3d"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
100
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7cae2a90a33225c90eb035cf9e663d3d"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7cae2a90a33225c90eb035cf9e663d3d">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00841">SVFStatements.h:841</a></div></div>
|
|
101
101
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
102
102
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
|
|
103
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_ac486fb3a118e6153892b998b0ef46890"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SVF::BranchStmt::SuccAndCondPairVec</a></div><div class="ttdeci">std::vector< std::pair< const ICFGNode *, s64_t > > SuccAndCondPairVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
103
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_ac486fb3a118e6153892b998b0ef46890"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#ac486fb3a118e6153892b998b0ef46890">SVF::BranchStmt::SuccAndCondPairVec</a></div><div class="ttdeci">std::vector< std::pair< const ICFGNode *, s64_t > > SuccAndCondPairVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00924">SVFStatements.h:924</a></div></div>
|
|
104
104
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_aa809a57c8cdaaa35dfc3cc0f3b33b52b"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#aa809a57c8cdaaa35dfc3cc0f3b33b52b">SVF::SVFStmt::getICFGNode</a></div><div class="ttdeci">ICFGNode * getICFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00131">SVFStatements.h:131</a></div></div>
|
|
105
105
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9">SVF::SVFStmt::PEDGEK</a></div><div class="ttdeci">PEDGEK</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00054">SVFStatements.h:54</a></div></div>
|
|
106
106
|
<div class="ttc" id="classSVF_1_1RetPE_html_a60cb8a19e352547b22f197f4ca8e19d8"><div class="ttname"><a href="classSVF_1_1RetPE.html#a60cb8a19e352547b22f197f4ca8e19d8">SVF::RetPE::RetPE</a></div><div class="ttdeci">RetPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunExitICFGNode *e, GEdgeKind k=SVFStmt::Ret)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00563">SVFStatements.h:563</a></div></div>
|
|
107
107
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a53b7e0d8666e37c23dc2c7d0fc931f27"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a53b7e0d8666e37c23dc2c7d0fc931f27">SVF::SVFStmt::storeEdgeLabelCounter</a></div><div class="ttdeci">static u64_t storeEdgeLabelCounter</div><div class="ttdoc">Store Instruction counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00188">SVFStatements.h:188</a></div></div>
|
|
108
108
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a00a14ad8f49912b876fd9d729fea4601"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a00a14ad8f49912b876fd9d729fea4601">SVF::MultiOpndStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdoc">Result SVFVar. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00638">SVFStatements.h:638</a></div></div>
|
|
109
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_ae654d9036e291e723a3f1f7eab5b018b"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b">SVF::SelectStmt::SelectStmt</a></div><div class="ttdeci">SelectStmt(SVFVar *s, const OPVars &opnds, const SVFVar *cond)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
110
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html_a22303af690086961b8d2356b345f882b"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
109
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_ae654d9036e291e723a3f1f7eab5b018b"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ae654d9036e291e723a3f1f7eab5b018b">SVF::SelectStmt::SelectStmt</a></div><div class="ttdeci">SelectStmt(SVFVar *s, const OPVars &opnds, const SVFVar *cond)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00756">SVFStatements.h:756</a></div></div>
|
|
110
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_a22303af690086961b8d2356b345f882b"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a22303af690086961b8d2356b345f882b">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01057">SVFStatements.h:1057</a></div></div>
|
|
111
111
|
<div class="ttc" id="classSVF_1_1LocationSet_html_a9bb7e08f7cfb2859d25b0e68e21fec89"><div class="ttname"><a href="classSVF_1_1LocationSet.html#a9bb7e08f7cfb2859d25b0e68e21fec89">SVF::LocationSet::OffsetValueVec</a></div><div class="ttdeci">std::vector< std::pair< const Value *, const Type * > > OffsetValueVec</div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00081">LocationSet.h:81</a></div></div>
|
|
112
112
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a973a2b79da223275ed6a1831837b89c7"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a973a2b79da223275ed6a1831837b89c7">SVF::AssignStmt::getLHSVar</a></div><div class="ttdeci">SVFVar * getLHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00250">SVFStatements.h:250</a></div></div>
|
|
113
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_ae28fa8ad500a11208410adbfd0d19ea5"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#ae28fa8ad500a11208410adbfd0d19ea5">SVF::TDForkPE::TDForkPE</a></div><div class="ttdeci">TDForkPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunEntryICFGNode *entry)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
114
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
113
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_ae28fa8ad500a11208410adbfd0d19ea5"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#ae28fa8ad500a11208410adbfd0d19ea5">SVF::TDForkPE::TDForkPE</a></div><div class="ttdeci">TDForkPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunEntryICFGNode *entry)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01026">SVFStatements.h:1026</a></div></div>
|
|
114
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00768">SVFStatements.h:768</a></div></div>
|
|
115
115
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a610d6662d1814cffbf23db29e7e620c0">SVF::SVFStmt::Cmp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
116
116
|
<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>
|
|
117
117
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a24227d7f1dd472f47bf94cb5db8505c4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24227d7f1dd472f47bf94cb5db8505c4">SVF::SVFStmt::callEdgeLabelCounter</a></div><div class="ttdeci">static u64_t callEdgeLabelCounter</div><div class="ttdoc">Call site Instruction counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00187">SVFStatements.h:187</a></div></div>
|
|
118
118
|
<div class="ttc" id="classSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00409">SVFStatements.h:409</a></div></div>
|
|
119
119
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a5a3db6b1335b4adc55b961a6f480f228"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a5a3db6b1335b4adc55b961a6f480f228">SVF::SVFStmt::Inst2LabelMap</a></div><div class="ttdeci">Map< const ICFGNode *, u32_t > Inst2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00183">SVFStatements.h:183</a></div></div>
|
|
120
120
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a65ee8b43a3a4999eb112a197d1a9f882"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a65ee8b43a3a4999eb112a197d1a9f882">SVF::SVFStmt::getValue</a></div><div class="ttdeci">const Value * getValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00115">SVFStatements.h:115</a></div></div>
|
|
121
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
121
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00810">SVFStatements.h:810</a></div></div>
|
|
122
122
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a0a9a0f650e864e89b7cbb3dc8c8aa197">SVF::SVFStmt::Addr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
123
123
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_ab71bf959fce0e702556dd753636298b2"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#ab71bf959fce0e702556dd753636298b2">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00354">SVFStatements.h:354</a></div></div>
|
|
124
124
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
|
|
125
125
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a12e960569a9f4beae99195a0fe2d3b68"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a12e960569a9f4beae99195a0fe2d3b68">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00319">SVFStatements.h:319</a></div></div>
|
|
126
126
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a4513c6e66b46c36219ba6d7403f3eb00"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a4513c6e66b46c36219ba6d7403f3eb00">SVF::SVFStmt::makeEdgeFlagWithCallInst</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithCallInst(GEdgeKind k, const ICFGNode *cs)</div><div class="ttdoc">Compute the unique edgeFlag value from edge kind and call site Instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00147">SVFStatements.h:147</a></div></div>
|
|
127
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html_ace17257476d0ee089a9f9cb8dc63e3f2"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const TDJoinPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
128
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_a4c75a8f8430621aaec62a5189db136b5"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5">SVF::PhiStmt::opICFGNodes</a></div><div class="ttdeci">OpICFGNodeVec opICFGNodes</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
127
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_ace17257476d0ee089a9f9cb8dc63e3f2"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#ace17257476d0ee089a9f9cb8dc63e3f2">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const TDJoinPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01049">SVFStatements.h:1049</a></div></div>
|
|
128
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_a4c75a8f8430621aaec62a5189db136b5"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a4c75a8f8430621aaec62a5189db136b5">SVF::PhiStmt::opICFGNodes</a></div><div class="ttdeci">OpICFGNodeVec opICFGNodes</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00678">SVFStatements.h:678</a></div></div>
|
|
129
129
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00253">SVFStatements.h:253</a></div></div>
|
|
130
130
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a8cd7b6c6fd8b030b1421d95a086359f4"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a8cd7b6c6fd8b030b1421d95a086359f4">SVF::SVFStmt::SVFStmtSetTy</a></div><div class="ttdeci">GenericNode< SVFVar, SVFStmt >::GEdgeSetTy SVFStmtSetTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00177">SVFStatements.h:177</a></div></div>
|
|
131
131
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_a6876ffc2c97c5ba64155891b55a7884c"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a6876ffc2c97c5ba64155891b55a7884c">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00284">SVFStatements.h:284</a></div></div>
|
|
132
132
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_a172025849492f4de8f87564ef08f5880"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">SVF::MultiOpndStmt::opVars</a></div><div class="ttdeci">OPVars opVars</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00603">SVFStatements.h:603</a></div></div>
|
|
133
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_a79317f2ac92ace129a1ccf802406498d"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const TDForkPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
133
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_a79317f2ac92ace129a1ccf802406498d"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a79317f2ac92ace129a1ccf802406498d">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const TDForkPE *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01011">SVFStatements.h:1011</a></div></div>
|
|
134
134
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_aa0d9a26d3ad17432505b1f5bb36368d9"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#aa0d9a26d3ad17432505b1f5bb36368d9">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00611">SVFStatements.h:611</a></div></div>
|
|
135
135
|
<div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00046">SVFVariables.h:46</a></div></div>
|
|
136
136
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad0b4dbe87e009518f22360c48b0d0c22"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad0b4dbe87e009518f22360c48b0d0c22">SVF::SVFStmt::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00061">SVFStatements.cpp:61</a></div></div>
|
|
137
137
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a33b3b9ef0cf7e2ea6400aef74a399adf"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a33b3b9ef0cf7e2ea6400aef74a399adf">SVF::GepStmt::accumulateConstantOffset</a></div><div class="ttdeci">s64_t accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset (when accessing array or struct) if this offset is a constant...</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00449">SVFStatements.h:449</a></div></div>
|
|
138
138
|
<div class="ttc" id="classSVF_1_1CallPE_html_a9c9821c4e7dd031e3f82f2b29427e53e"><div class="ttname"><a href="classSVF_1_1CallPE.html#a9c9821c4e7dd031e3f82f2b29427e53e">SVF::CallPE::getFunEntryICFGNode</a></div><div class="ttdeci">const FunEntryICFGNode * getFunEntryICFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00521">SVFStatements.h:521</a></div></div>
|
|
139
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_a68f16df5a9b44dd2492c33fb0a1b5f0c"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
139
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_a68f16df5a9b44dd2492c33fb0a1b5f0c"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a68f16df5a9b44dd2492c33fb0a1b5f0c">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01015">SVFStatements.h:1015</a></div></div>
|
|
140
140
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a00339663741d9f581d2f3ecae5a3e7e3"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a00339663741d9f581d2f3ecae5a3e7e3">SVF::SVFStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00080">SVFStatements.h:80</a></div></div>
|
|
141
141
|
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00100">SVFBasicTypes.h:100</a></div></div>
|
|
142
142
|
<div class="ttc" id="classSVF_1_1RetPE_html_a9bbf558ffc8e3c1136e20d18d4c95f42"><div class="ttname"><a href="classSVF_1_1RetPE.html#a9bbf558ffc8e3c1136e20d18d4c95f42">SVF::RetPE::getCallInst</a></div><div class="ttdeci">const CallICFGNode * getCallInst() const</div><div class="ttdoc">Get method for call instruction at caller. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00570">SVFStatements.h:570</a></div></div>
|
|
143
143
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html">SVF::MultiOpndStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00590">SVFStatements.h:590</a></div></div>
|
|
144
144
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_abb83549118bcd7216a053d82f7180d1c"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#abb83549118bcd7216a053d82f7180d1c">SVF::SVFStmt::inst2LabelMap</a></div><div class="ttdeci">static Inst2LabelMap inst2LabelMap</div><div class="ttdoc">Call site Instruction to label map. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00185">SVFStatements.h:185</a></div></div>
|
|
145
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_af3c4989a458a1e5f7a5e0ba8e5c8b6ae"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af3c4989a458a1e5f7a5e0ba8e5c8b6ae">SVF::MultiOpndStmt::getOpPos</a></div><div class="ttdeci">const u32_t getOpPos(const SVFVar *op) const</div><div class="ttdoc">Return the position of this op. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00643">SVFStatements.h:643</a></div></div>
|
|
146
145
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_aad0c81aeb48e5d94dd8c60d87b41714c"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#aad0c81aeb48e5d94dd8c60d87b41714c">SVF::MultiOpndStmt::MultiOpndStmt</a></div><div class="ttdeci">MultiOpndStmt(SVFVar *r, const OPVars &opnds, GEdgeFlag k)</div><div class="ttdoc">Constructor, only used by subclassess but not external users. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00605">SVFStatements.h:605</a></div></div>
|
|
147
146
|
<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>
|
|
148
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
147
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00762">SVFStatements.h:762</a></div></div>
|
|
149
148
|
<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#l00075">SVFBasicTypes.h:75</a></div></div>
|
|
150
149
|
<div class="ttc" id="namespaceSVF_html_abe09d99af006554a5c00803e9a89f9a6"><div class="ttname"><a href="namespaceSVF.html#abe09d99af006554a5c00803e9a89f9a6">SVF::s64_t</a></div><div class="ttdeci">signed s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
|
|
151
150
|
<div class="ttc" id="classSVF_1_1CallPE_html_aa50cca8bd91ffb135a7998b58ad7966f"><div class="ttname"><a href="classSVF_1_1CallPE.html#aa50cca8bd91ffb135a7998b58ad7966f">SVF::CallPE::getCallInst</a></div><div class="ttdeci">const CallICFGNode * getCallInst() const</div><div class="ttdoc">Get method for the call instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00513">SVFStatements.h:513</a></div></div>
|
|
152
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
151
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html">SVF::TDJoinPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01039">SVFStatements.h:1039</a></div></div>
|
|
153
152
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ac517a3166a3afe45d04480534ac3bb50"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ac517a3166a3afe45d04480534ac3bb50">SVF::SVFStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *)</div><div class="ttdoc">ClassOf. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00076">SVFStatements.h:76</a></div></div>
|
|
154
153
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a93fc6c4c991931c78c48500c2db50f66"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a93fc6c4c991931c78c48500c2db50f66">SVF::SVFStmt::KindToSVFStmtMapTy</a></div><div class="ttdeci">PAGEdgeToSetMapTy KindToSVFStmtMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00179">SVFStatements.h:179</a></div></div>
|
|
155
154
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a9ea22adbfc307dddee42ffec07cc88ed"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a9ea22adbfc307dddee42ffec07cc88ed">SVF::SVFStmt::multiOpndLabelCounter</a></div><div class="ttdeci">static u64_t multiOpndLabelCounter</div><div class="ttdoc">MultiOpndStmt counter. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00189">SVFStatements.h:189</a></div></div>
|
|
156
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a919db9b8c9287c3802f563840b56c4f1"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">SVF::UnaryOPStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
155
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a919db9b8c9287c3802f563840b56c4f1"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a919db9b8c9287c3802f563840b56c4f1">SVF::UnaryOPStmt::getRes</a></div><div class="ttdeci">const SVFVar * getRes() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00908">SVFStatements.h:908</a></div></div>
|
|
157
156
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a24c64109d27ef7549d1c7a07c391e007"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">SVF::SVFStmt::var2LabelMap</a></div><div class="ttdeci">static Var2LabelMap var2LabelMap</div><div class="ttdoc">Second operand of MultiOpndStmt to label map. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00186">SVFStatements.h:186</a></div></div>
|
|
158
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a40854cd95fbae16ef8e370255d0e3cf5"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">SVF::BranchStmt::successors</a></div><div class="ttdeci">SuccAndCondPairVec successors</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
157
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a40854cd95fbae16ef8e370255d0e3cf5"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a40854cd95fbae16ef8e370255d0e3cf5">SVF::BranchStmt::successors</a></div><div class="ttdeci">SuccAndCondPairVec successors</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00934">SVFStatements.h:934</a></div></div>
|
|
159
158
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad3469cdfb64f05163b5310b731b221da">SVF::SVFStmt::Copy</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
160
159
|
<div class="ttc" id="classSVF_1_1GenericEdge_html"><div class="ttname"><a href="classSVF_1_1GenericEdge.html">SVF::GenericEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00042">GenericGraph.h:42</a></div></div>
|
|
161
160
|
<div class="ttc" id="classSVF_1_1RetPE_html_a43c6965616d67e77087b486265139d21"><div class="ttname"><a href="classSVF_1_1RetPE.html#a43c6965616d67e77087b486265139d21">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const RetPE *)</div><div class="ttdoc">the function exit statement returned from </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00546">SVFStatements.h:546</a></div></div>
|
|
162
161
|
<div class="ttc" id="classSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00477">SVFStatements.h:477</a></div></div>
|
|
163
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
162
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html">SVF::UnaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00867">SVFStatements.h:867</a></div></div>
|
|
164
163
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a8d269a45adf13e69468f0357222ab2af">SVF::SVFStmt::Ret</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
165
164
|
<div class="ttc" id="classSVF_1_1RetPE_html_ab03f10c0375846a733f3257736a84f9d"><div class="ttname"><a href="classSVF_1_1RetPE.html#ab03f10c0375846a733f3257736a84f9d">SVF::RetPE::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00574">SVFStatements.h:574</a></div></div>
|
|
166
165
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_af1a9c2a18805560e46425bd98a35dea9"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#af1a9c2a18805560e46425bd98a35dea9">SVF::SVFStmt::totalEdgeNum</a></div><div class="ttdeci">static u32_t totalEdgeNum</div><div class="ttdoc">Total edge number. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00065">SVFStatements.h:65</a></div></div>
|
|
167
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
166
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00856">SVFStatements.h:856</a></div></div>
|
|
168
167
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a253c81c922bef6e2d520262c2f7793c4"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a253c81c922bef6e2d520262c2f7793c4">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const CopyStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00311">SVFStatements.h:311</a></div></div>
|
|
169
168
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_ae3c219e8af92e222f55c930009db6e67"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#ae3c219e8af92e222f55c930009db6e67">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const StoreStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00346">SVFStatements.h:346</a></div></div>
|
|
170
169
|
<div class="ttc" id="classSVF_1_1GepStmt_html_ac47064e21e2afdf7bd85c6acba44367f"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ac47064e21e2afdf7bd85c6acba44367f">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00429">SVFStatements.h:429</a></div></div>
|
|
171
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_abebed8985cb4d4d1361c42e5454c90b9"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">SVF::MultiOpndStmt::opVarBegin</a></div><div class="ttdeci">OPVars::const_iterator opVarBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
170
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_abebed8985cb4d4d1361c42e5454c90b9"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">SVF::MultiOpndStmt::opVarBegin</a></div><div class="ttdeci">OPVars::const_iterator opVarBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00653">SVFStatements.h:653</a></div></div>
|
|
172
171
|
<div class="ttc" id="classSVF_1_1FunEntryICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunEntryICFGNode.html">SVF::FunEntryICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00251">ICFGNode.h:251</a></div></div>
|
|
173
172
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad75e4c84f7d37824eb096aacca930ead"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad75e4c84f7d37824eb096aacca930ead">SVF::SVFStmt::operator<<</a></div><div class="ttdeci">friend raw_ostream & operator<<(raw_ostream &o, const SVFStmt &edge)</div><div class="ttdoc">Overloading operator << for dumping SVFVar value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00170">SVFStatements.h:170</a></div></div>
|
|
174
173
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a441cd8487b320ceff9d62884b4f28176"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a441cd8487b320ceff9d62884b4f28176">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const GepStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00421">SVFStatements.h:421</a></div></div>
|
|
175
174
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad52703e3ec09b6a4f565e5d82279b6a3">SVF::SVFStmt::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
176
175
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a6a689f62af301bd6ac09d7019aba1c17"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a6a689f62af301bd6ac09d7019aba1c17">SVF::SVFStmt::value</a></div><div class="ttdeci">const Value * value</div><div class="ttdoc">LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00060">SVFStatements.h:60</a></div></div>
|
|
177
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_a89f27a20f9c2acc66c4c6152e79ee30e"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const SelectStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
178
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
176
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a89f27a20f9c2acc66c4c6152e79ee30e"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a89f27a20f9c2acc66c4c6152e79ee30e">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const SelectStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00737">SVFStatements.h:737</a></div></div>
|
|
177
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00987">SVFStatements.h:987</a></div></div>
|
|
179
178
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a229c78147511f2a581c761552179b6fa"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">SVF::SVFStmt::PAGEdgeToSetMapTy</a></div><div class="ttdeci">Map< EdgeID, SVFStmtSetTy > PAGEdgeToSetMapTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00178">SVFStatements.h:178</a></div></div>
|
|
180
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abb10688145fa76629916ec3df61b6c95"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const UnaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
179
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abb10688145fa76629916ec3df61b6c95"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abb10688145fa76629916ec3df61b6c95">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const UnaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00882">SVFStatements.h:882</a></div></div>
|
|
181
180
|
<div class="ttc" id="classSVF_1_1GenericNode_html_a03c6da4a73c47f84f5c5b47252bc339a"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a03c6da4a73c47f84f5c5b47252bc339a">SVF::GenericNode::GEdgeSetTy</a></div><div class="ttdeci">OrderedSet< EdgeType *, typename EdgeType::equalGEdge > GEdgeSetTy</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00136">GenericGraph.h:136</a></div></div>
|
|
182
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_a679ec89e3fa17a17dcc8fafeb30d3a61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
181
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_a679ec89e3fa17a17dcc8fafeb30d3a61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a679ec89e3fa17a17dcc8fafeb30d3a61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00795">SVFStatements.h:795</a></div></div>
|
|
183
182
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
184
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a33887345c00ffda9ca7dca59d61e184a"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">SVF::BranchStmt::brInst</a></div><div class="ttdeci">const SVFVar * brInst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
183
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a33887345c00ffda9ca7dca59d61e184a"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a33887345c00ffda9ca7dca59d61e184a">SVF::BranchStmt::brInst</a></div><div class="ttdeci">const SVFVar * brInst</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00936">SVFStatements.h:936</a></div></div>
|
|
185
184
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_aeec83dc4e79ee62c92c75aa778a475ad"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#aeec83dc4e79ee62c92c75aa778a475ad">SVF::AddrStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00280">SVFStatements.h:280</a></div></div>
|
|
186
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abde2b32d5bbd37df0e194b1a4e78483b"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">SVF::UnaryOPStmt::getOpVar</a></div><div class="ttdeci">const SVFVar * getOpVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
185
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_abde2b32d5bbd37df0e194b1a4e78483b"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#abde2b32d5bbd37df0e194b1a4e78483b">SVF::UnaryOPStmt::getOpVar</a></div><div class="ttdeci">const SVFVar * getOpVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00905">SVFStatements.h:905</a></div></div>
|
|
187
186
|
<div class="ttc" id="namespaceSVF_html_ab502ff5e204678640c1081d104f60971"><div class="ttname"><a href="namespaceSVF.html#ab502ff5e204678640c1081d104f60971">SVF::GenericPAGEdgeTy</a></div><div class="ttdeci">GenericEdge< SVFVar > GenericPAGEdgeTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00041">SVFStatements.h:41</a></div></div>
|
|
188
187
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
|
|
189
188
|
<div class="ttc" id="GenericGraph_8h_html"><div class="ttname"><a href="GenericGraph_8h.html">GenericGraph.h</a></div></div>
|
|
190
189
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a852730edf374d18a3fb3985211ed7623"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a852730edf374d18a3fb3985211ed7623">SVF::SVFStmt::setBB</a></div><div class="ttdeci">void setBB(const BasicBlock *bb)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00119">SVFStatements.h:119</a></div></div>
|
|
191
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_adf97a239f15b635580cef475980e8d82"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
190
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_adf97a239f15b635580cef475980e8d82"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#adf97a239f15b635580cef475980e8d82">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00949">SVFStatements.h:949</a></div></div>
|
|
192
191
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aab8892b73370c32b48621cd1d0cce614"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aab8892b73370c32b48621cd1d0cce614">SVF::GenericEdge::GEdgeFlag</a></div><div class="ttdeci">u64_t GEdgeFlag</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00052">GenericGraph.h:52</a></div></div>
|
|
193
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_a2d6e9d7131bc69a0e88b703c2c03d7e2"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2">SVF::SelectStmt::condition</a></div><div class="ttdeci">const SVFVar * condition</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
194
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_a0b73ca0dedc4b7c718585577424fa0ce"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
192
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a2d6e9d7131bc69a0e88b703c2c03d7e2"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a2d6e9d7131bc69a0e88b703c2c03d7e2">SVF::SelectStmt::condition</a></div><div class="ttdeci">const SVFVar * condition</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00733">SVFStatements.h:733</a></div></div>
|
|
193
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a0b73ca0dedc4b7c718585577424fa0ce"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a0b73ca0dedc4b7c718585577424fa0ce">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00745">SVFStatements.h:745</a></div></div>
|
|
195
194
|
<div class="ttc" id="classSVF_1_1AssignStmt_html"><div class="ttname"><a href="classSVF_1_1AssignStmt.html">SVF::AssignStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00197">SVFStatements.h:197</a></div></div>
|
|
196
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ab5a0f41455474643e8dd97aaab0aaab5"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const BinaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
195
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ab5a0f41455474643e8dd97aaab0aaab5"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ab5a0f41455474643e8dd97aaab0aaab5">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const BinaryOPStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00833">SVFStatements.h:833</a></div></div>
|
|
197
196
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_a92c5817abfaa1f6fbc9ee911f458dfb2"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#a92c5817abfaa1f6fbc9ee911f458dfb2">SVF::LoadStmt::LoadStmt</a></div><div class="ttdeci">LoadStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00398">SVFStatements.h:398</a></div></div>
|
|
198
197
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_a03d6f1ee2f52b34d905b204eb53d6560"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#a03d6f1ee2f52b34d905b204eb53d6560">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const LoadStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00383">SVFStatements.h:383</a></div></div>
|
|
199
198
|
<div class="ttc" id="classSVF_1_1RetPE_html_aa2d42edfce9d5a8c025c0bb529aee0f2"><div class="ttname"><a href="classSVF_1_1RetPE.html#aa2d42edfce9d5a8c025c0bb529aee0f2">SVF::RetPE::call</a></div><div class="ttdeci">const CallICFGNode * call</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00541">SVFStatements.h:541</a></div></div>
|
|
200
199
|
<div class="ttc" id="classSVF_1_1RetPE_html_a9cd78a723ed55ed6f334a329576a7471"><div class="ttname"><a href="classSVF_1_1RetPE.html#a9cd78a723ed55ed6f334a329576a7471">SVF::RetPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00550">SVFStatements.h:550</a></div></div>
|
|
201
200
|
<div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00373">SVFStatements.h:373</a></div></div>
|
|
202
201
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a3b20523aed66ac8943d7d00ff777137b"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a3b20523aed66ac8943d7d00ff777137b">SVF::SVFStmt::makeEdgeFlagWithAddionalOpnd</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithAddionalOpnd(GEdgeKind k, const SVFVar *var)</div><div class="ttdoc">Compute the unique edgeFlag value from edge kind and second variable operand for MultiOpndStmt. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00138">SVFStatements.h:138</a></div></div>
|
|
203
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
202
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00921">SVFStatements.h:921</a></div></div>
|
|
204
203
|
<div class="ttc" id="classSVF_1_1CallPE_html_a88e420e259b8d7d34c9850ddde53d372"><div class="ttname"><a href="classSVF_1_1CallPE.html#a88e420e259b8d7d34c9850ddde53d372">SVF::CallPE::entry</a></div><div class="ttdeci">const FunEntryICFGNode * entry</div><div class="ttdoc">the callsite statement calling from </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00485">SVFStatements.h:485</a></div></div>
|
|
205
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_adec661dd23b7806b35abba2d44aebc61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const CmpStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
206
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ae547394a731d29b44565d3e56a326354"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
207
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a93040c884df211ac62d53ceafdd9c4dd"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const SuccAndCondPairVec & getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
208
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
209
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a2c6fe09027838f9e0ad9ab8193ce8e9b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">SVF::BranchStmt::getBranchInst</a></div><div class="ttdeci">const SVFVar * getBranchInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
204
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_adec661dd23b7806b35abba2d44aebc61"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#adec661dd23b7806b35abba2d44aebc61">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const CmpStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00787">SVFStatements.h:787</a></div></div>
|
|
205
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ae547394a731d29b44565d3e56a326354"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ae547394a731d29b44565d3e56a326354">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const MultiOpndStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00690">SVFStatements.h:690</a></div></div>
|
|
206
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a93040c884df211ac62d53ceafdd9c4dd"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const SuccAndCondPairVec & getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00984">SVFStatements.h:984</a></div></div>
|
|
207
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00668">SVFStatements.h:668</a></div></div>
|
|
208
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a2c6fe09027838f9e0ad9ab8193ce8e9b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a2c6fe09027838f9e0ad9ab8193ce8e9b">SVF::BranchStmt::getBranchInst</a></div><div class="ttdeci">const SVFVar * getBranchInst() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00966">SVFStatements.h:966</a></div></div>
|
|
210
209
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a69b179ef052408034786d32a52c52389"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a69b179ef052408034786d32a52c52389">SVF::CopyStmt::CopyStmt</a></div><div class="ttdeci">CopyStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00326">SVFStatements.h:326</a></div></div>
|
|
211
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_a26fc263da6ab3fee40a335d367419328"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">SVF::CmpStmt::predicate</a></div><div class="ttdeci">u32_t predicate</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
210
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_a26fc263da6ab3fee40a335d367419328"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a26fc263da6ab3fee40a335d367419328">SVF::CmpStmt::predicate</a></div><div class="ttdeci">u32_t predicate</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00783">SVFStatements.h:783</a></div></div>
|
|
212
211
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00256">SVFStatements.h:256</a></div></div>
|
|
213
212
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_a31f69e402887eff60e2055799ed561b9"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#a31f69e402887eff60e2055799ed561b9">SVF::StoreStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00350">SVFStatements.h:350</a></div></div>
|
|
214
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_af7e57da55f80c53a6f483976202e4c5c"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#af7e57da55f80c53a6f483976202e4c5c">SVF::PhiStmt::getOpICFGNode</a></div><div class="ttdeci">const ICFGNode * getOpICFGNode(const SVFVar *op) const</div><div class="ttdoc">Return the corresponding ICFGNode of this operand. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00721">SVFStatements.h:721</a></div></div>
|
|
215
213
|
<div class="ttc" id="classSVF_1_1LoadStmt_html_ac252b1e9b7c01108d1aff602fbe1ef40"><div class="ttname"><a href="classSVF_1_1LoadStmt.html#ac252b1e9b7c01108d1aff602fbe1ef40">SVF::LoadStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
|
|
216
214
|
<div class="ttc" id="classSVF_1_1CallPE_html_a6b907624482ae697680c747e9b41fdab"><div class="ttname"><a href="classSVF_1_1CallPE.html#a6b907624482ae697680c747e9b41fdab">SVF::CallPE::CallPE</a></div><div class="ttdeci">CallPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunEntryICFGNode *e, GEdgeKind k=SVFStmt::Call)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00506">SVFStatements.h:506</a></div></div>
|
|
217
215
|
<div class="ttc" id="classSVF_1_1GepStmt_html_adf6912f8ddae4f765b685a4f9d3be602"><div class="ttname"><a href="classSVF_1_1GepStmt.html#adf6912f8ddae4f765b685a4f9d3be602">SVF::GepStmt::getConstantFieldIdx</a></div><div class="ttdeci">s64_t getConstantFieldIdx() const</div><div class="ttdoc">Field index of the gep statement if it access the field of a struct. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00454">SVFStatements.h:454</a></div></div>
|
|
218
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_a02c4846269bd28bd4e8b127532cb737a"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">SVF::CmpStmt::CmpStmt</a></div><div class="ttdeci">CmpStmt(SVFVar *s, const OPVars &opnds, u32_t pre)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
219
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a55b867cd85dbbe43e2f7c1bad5dce647"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
216
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_a02c4846269bd28bd4e8b127532cb737a"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#a02c4846269bd28bd4e8b127532cb737a">SVF::CmpStmt::CmpStmt</a></div><div class="ttdeci">CmpStmt(SVFVar *s, const OPVars &opnds, u32_t pre)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00806">SVFStatements.h:806</a></div></div>
|
|
217
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a55b867cd85dbbe43e2f7c1bad5dce647"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a55b867cd85dbbe43e2f7c1bad5dce647">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00945">SVFStatements.h:945</a></div></div>
|
|
218
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_a0b97394bc1946c0185d2c11fbc2181f4"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#a0b97394bc1946c0185d2c11fbc2181f4">SVF::PhiStmt::getOpICFGNode</a></div><div class="ttdeci">const ICFGNode * getOpICFGNode(u32_t op_idx) const</div><div class="ttdoc">Return the corresponding ICFGNode of this operand. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00712">SVFStatements.h:712</a></div></div>
|
|
220
219
|
<div class="ttc" id="classSVF_1_1GepStmt_html_ab6f37c073e4755c4b8bb3ed6365687f4"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">SVF::GepStmt::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00445">SVFStatements.h:445</a></div></div>
|
|
221
220
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a3c3f8883c2d3b50aef6331d5da97ffb0">SVF::SVFStmt::ThreadJoin</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
222
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html_ad836475c24cb395175291df3f1ddfee0"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#ad836475c24cb395175291df3f1ddfee0">SVF::TDJoinPE::TDJoinPE</a></div><div class="ttdeci">TDJoinPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunExitICFGNode *e)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
221
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_ad836475c24cb395175291df3f1ddfee0"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#ad836475c24cb395175291df3f1ddfee0">SVF::TDJoinPE::TDJoinPE</a></div><div class="ttdeci">TDJoinPE(SVFVar *s, SVFVar *d, const CallICFGNode *i, const FunExitICFGNode *e)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01064">SVFStatements.h:1064</a></div></div>
|
|
223
222
|
<div class="ttc" id="classSVF_1_1GepStmt_html_ae4509ee7b57121da3c67de00e8bdf0b3"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ae4509ee7b57121da3c67de00e8bdf0b3">SVF::GepStmt::GepStmt</a></div><div class="ttdeci">GepStmt(SVFVar *s, SVFVar *d, const LocationSet &l, bool varfld=false)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00465">SVFStatements.h:465</a></div></div>
|
|
224
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a099df135a83d28a2e6f344e008fe1cc6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">SVF::UnaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
223
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a099df135a83d28a2e6f344e008fe1cc6"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a099df135a83d28a2e6f344e008fe1cc6">SVF::UnaryOPStmt::opcode</a></div><div class="ttdeci">u32_t opcode</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00878">SVFStatements.h:878</a></div></div>
|
|
225
224
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_aff4c35109790daed3c6170c985153620"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#aff4c35109790daed3c6170c985153620">SVF::AssignStmt::AssignStmt</a></div><div class="ttdeci">AssignStmt(SVFVar *s, SVFVar *d, GEdgeFlag k)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00210">SVFStatements.h:210</a></div></div>
|
|
226
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
225
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00646">SVFStatements.h:646</a></div></div>
|
|
227
226
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a24dddb4e346a6e569908e3efe8a6ecc0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a24dddb4e346a6e569908e3efe8a6ecc0">SVF::SVFStmt::setValue</a></div><div class="ttdeci">void setValue(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00111">SVFStatements.h:111</a></div></div>
|
|
228
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_abb620d35e77989c2f7f9ed480e5fa1e9"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const PhiStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
227
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_abb620d35e77989c2f7f9ed480e5fa1e9"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#abb620d35e77989c2f7f9ed480e5fa1e9">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const PhiStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00682">SVFStatements.h:682</a></div></div>
|
|
229
228
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad178ccbc7800527c3dc406ad5fa069bb"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">SVF::SVFStmt::Var2LabelMap</a></div><div class="ttdeci">Map< const SVFVar *, u32_t > Var2LabelMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00184">SVFStatements.h:184</a></div></div>
|
|
230
229
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ab47ca533c415841ef75456cbad439589"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ab47ca533c415841ef75456cbad439589">SVF::GenericEdge::getSrcNode</a></div><div class="ttdeci">NodeType * getSrcNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00085">GenericGraph.h:85</a></div></div>
|
|
231
230
|
<div class="ttc" id="classSVF_1_1GepStmt_html_af8eefbd002ec36f36612b8e9ccdbc757"><div class="ttname"><a href="classSVF_1_1GepStmt.html#af8eefbd002ec36f36612b8e9ccdbc757">SVF::GepStmt::variantField</a></div><div class="ttdeci">bool variantField</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access (e...</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00417">SVFStatements.h:417</a></div></div>
|
|
232
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_add29b76e0ef73da2606bac97f74a7896"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
231
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_add29b76e0ef73da2606bac97f74a7896"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#add29b76e0ef73da2606bac97f74a7896">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00890">SVFStatements.h:890</a></div></div>
|
|
233
232
|
<div class="ttc" id="classSVF_1_1GepStmt_html_abec33091e0dac0cdd5b95b6d7b0db3d8"><div class="ttname"><a href="classSVF_1_1GepStmt.html#abec33091e0dac0cdd5b95b6d7b0db3d8">SVF::GepStmt::getLocationSet</a></div><div class="ttdeci">const LocationSet & getLocationSet() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00435">SVFStatements.h:435</a></div></div>
|
|
234
233
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a92016e7d6061e4a157c9cd39ad94cc20"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a92016e7d6061e4a157c9cd39ad94cc20">SVF::GepStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00425">SVFStatements.h:425</a></div></div>
|
|
235
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
234
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html"><div class="ttname"><a href="classSVF_1_1TDForkPE.html">SVF::TDForkPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01001">SVFStatements.h:1001</a></div></div>
|
|
236
235
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_ad61722f886afaaee722ac55a4eed4d18"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#ad61722f886afaaee722ac55a4eed4d18">SVF::SVFStmt::makeEdgeFlagWithStoreInst</a></div><div class="ttdeci">static GEdgeFlag makeEdgeFlagWithStoreInst(GEdgeKind k, const ICFGNode *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00157">SVFStatements.h:157</a></div></div>
|
|
237
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac505a4fe33e82f555663872e81220ba4"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4">SVF::PhiStmt::OpICFGNodeVec</a></div><div class="ttdeci">std::vector< const ICFGNode *> OpICFGNodeVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
238
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a750ffca6648fafedfb271fb90d975847"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const BranchStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
236
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac505a4fe33e82f555663872e81220ba4"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac505a4fe33e82f555663872e81220ba4">SVF::PhiStmt::OpICFGNodeVec</a></div><div class="ttdeci">std::vector< const ICFGNode *> OpICFGNodeVec</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00671">SVFStatements.h:671</a></div></div>
|
|
237
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a750ffca6648fafedfb271fb90d975847"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a750ffca6648fafedfb271fb90d975847">SVF::BranchStmt::classof</a></div><div class="ttdeci">static bool classof(const BranchStmt *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00941">SVFStatements.h:941</a></div></div>
|
|
239
238
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_ad5e2d41b8cd548628b59227368388ed0"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad5e2d41b8cd548628b59227368388ed0">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00221">SVFStatements.h:221</a></div></div>
|
|
240
239
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a0ddf180a0f7ba64fc8655687910e3788"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a0ddf180a0f7ba64fc8655687910e3788">SVF::GepStmt::isVariantFieldGep</a></div><div class="ttdeci">bool isVariantFieldGep() const</div><div class="ttdoc">Gep statement with a variant field index (pointer arithmetic) for struct field access. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00459">SVFStatements.h:459</a></div></div>
|
|
241
240
|
<div class="ttc" id="classSVF_1_1CallPE_html_a6df0149f79122c5a7d517f75d0235e73"><div class="ttname"><a href="classSVF_1_1CallPE.html#a6df0149f79122c5a7d517f75d0235e73">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const CallPE *)</div><div class="ttdoc">the function exit statement calling to </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00489">SVFStatements.h:489</a></div></div>
|
|
242
241
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad9397ec243a61992dc2b5681bea587fa">SVF::SVFStmt::Select</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
243
242
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a877c7137875233e147faeb1198243f36"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a877c7137875233e147faeb1198243f36">SVF::SVFStmt::basicBlock</a></div><div class="ttdeci">const BasicBlock * basicBlock</div><div class="ttdoc">LLVM BasicBlock. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00061">SVFStatements.h:61</a></div></div>
|
|
244
243
|
<div class="ttc" id="namespaceSVF_html_ae71551d6a1fc300e0403297aa25ddf94"><div class="ttname"><a href="namespaceSVF.html#ae71551d6a1fc300e0403297aa25ddf94">SVF::EdgeID</a></div><div class="ttdeci">u32_t EdgeID</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
|
|
245
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a5e102d5c08b7121efc87b99651f0b5d2"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">SVF::BranchStmt::BranchStmt</a></div><div class="ttdeci">BranchStmt(SVFVar *inst, SVFVar *c, const SuccAndCondPairVec &succs)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
244
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a5e102d5c08b7121efc87b99651f0b5d2"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">SVF::BranchStmt::BranchStmt</a></div><div class="ttdeci">BranchStmt(SVFVar *inst, SVFVar *c, const SuccAndCondPairVec &succs)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00956">SVFStatements.h:956</a></div></div>
|
|
246
245
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_a8b2837153dcf9f7e2adc3b30b2dd0245"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a8b2837153dcf9f7e2adc3b30b2dd0245">SVF::AssignStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00233">SVFStatements.h:233</a></div></div>
|
|
247
246
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
248
247
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_a5aceeb48929f54264807b36569019a8a"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#a5aceeb48929f54264807b36569019a8a">SVF::GenericEdge::GEdgeKind</a></div><div class="ttdeci">s64_t GEdgeKind</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00053">GenericGraph.h:53</a></div></div>
|
|
249
248
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9a375b956af2119d7abca8f1995f7701fd">SVF::SVFStmt::ThreadFork</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
250
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_a3cb54c9a91a32e12c5f8ee452fcf64be"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
251
|
-
<div class="ttc" id="util_8h_html_a23c00958edf66c39625a0d535dee57b7"><div class="ttname"><a href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a></div><div class="ttdeci">VOID_OR_INT abort()</div></div>
|
|
249
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a3cb54c9a91a32e12c5f8ee452fcf64be"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a3cb54c9a91a32e12c5f8ee452fcf64be">SVF::SelectStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00741">SVFStatements.h:741</a></div></div>
|
|
252
250
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9ad58f5e59c55e1ffd23b83d16224fed13">SVF::SVFStmt::BinaryOp</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
253
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
251
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00776">SVFStatements.h:776</a></div></div>
|
|
254
252
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
255
|
-
<div class="ttc" id="classSVF_1_1TDForkPE_html_a9e160158fe61958bcd6ef2a7da559018"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
253
|
+
<div class="ttc" id="classSVF_1_1TDForkPE_html_a9e160158fe61958bcd6ef2a7da559018"><div class="ttname"><a href="classSVF_1_1TDForkPE.html#a9e160158fe61958bcd6ef2a7da559018">SVF::TDForkPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01019">SVFStatements.h:1019</a></div></div>
|
|
256
254
|
<div class="ttc" id="ICFGNode_8h_html"><div class="ttname"><a href="ICFGNode_8h.html">ICFGNode.h</a></div></div>
|
|
257
255
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVF::SVFStmt::Store</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00056">SVFStatements.h:56</a></div></div>
|
|
258
256
|
<div class="ttc" id="classSVF_1_1StoreStmt_html_a39ee0d8cc951aff0d6418a3d743fb3ae"><div class="ttname"><a href="classSVF_1_1StoreStmt.html#a39ee0d8cc951aff0d6418a3d743fb3ae">SVF::StoreStmt::StoreStmt</a></div><div class="ttdeci">StoreStmt(SVFVar *s, SVFVar *d, const IntraICFGNode *st)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00361">SVFStatements.h:361</a></div></div>
|
|
259
257
|
<div class="ttc" id="classSVF_1_1GepStmt_html_a543a3f4801b22719f7b9677246bf2ac7"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a543a3f4801b22719f7b9677246bf2ac7">SVF::GepStmt::ls</a></div><div class="ttdeci">LocationSet ls</div><div class="ttdoc">location set of the gep edge </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00416">SVFStatements.h:416</a></div></div>
|
|
260
258
|
<div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00072">LocationSet.h:72</a></div></div>
|
|
261
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2b91333ac3d4b5e1099590aeb15d38ba"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">SVF::UnaryOPStmt::UnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt(SVFVar *s, SVFVar *d, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
259
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2b91333ac3d4b5e1099590aeb15d38ba"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2b91333ac3d4b5e1099590aeb15d38ba">SVF::UnaryOPStmt::UnaryOPStmt</a></div><div class="ttdeci">UnaryOPStmt(SVFVar *s, SVFVar *d, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00897">SVFStatements.h:897</a></div></div>
|
|
262
260
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a0b6c03af568b70903da6b200ac86c951"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a0b6c03af568b70903da6b200ac86c951">SVF::SVFStmt::isPTAEdge</a></div><div class="ttdeci">bool isPTAEdge() const</div><div class="ttdoc">Whether src and dst nodes are both of pointer type. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00056">SVFStatements.cpp:56</a></div></div>
|
|
263
261
|
<div class="ttc" id="classSVF_1_1CallPE_html_ace0704c65aa3637c50ff880f68808bba"><div class="ttname"><a href="classSVF_1_1CallPE.html#ace0704c65aa3637c50ff880f68808bba">SVF::CallPE::call</a></div><div class="ttdeci">const CallICFGNode * call</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00484">SVFStatements.h:484</a></div></div>
|
|
264
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
265
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a7d2fa666602e0444d3e019563c0e7556"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556">SVF::BranchStmt::getSuccessorCondValue</a></div><div class="ttdeci">s64_t getSuccessorCondValue(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
262
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00765">SVFStatements.h:765</a></div></div>
|
|
263
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a7d2fa666602e0444d3e019563c0e7556"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d2fa666602e0444d3e019563c0e7556">SVF::BranchStmt::getSuccessorCondValue</a></div><div class="ttdeci">s64_t getSuccessorCondValue(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00990">SVFStatements.h:990</a></div></div>
|
|
266
264
|
<div class="ttc" id="classSVF_1_1CallPE_html_a0d89c20d1d3ccee5f3e45a32085117aa"><div class="ttname"><a href="classSVF_1_1CallPE.html#a0d89c20d1d3ccee5f3e45a32085117aa">SVF::CallPE::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00498">SVFStatements.h:498</a></div></div>
|
|
267
265
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_aac79c7e8d390f297002782afb0ba3ff0"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#aac79c7e8d390f297002782afb0ba3ff0">SVF::SVFStmt::~SVFStmt</a></div><div class="ttdeci">~SVFStmt()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00070">SVFStatements.h:70</a></div></div>
|
|
268
266
|
<div class="ttc" id="classSVF_1_1FunExitICFGNode_html"><div class="ttname"><a href="classSVF_1_1FunExitICFGNode.html">SVF::FunExitICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00308">ICFGNode.h:308</a></div></div>
|
|
@@ -272,26 +270,26 @@ $(function() {
|
|
|
272
270
|
<div class="ttc" id="classSVF_1_1RetPE_html_a274adbd91750d8d6de8ba997285c1c49"><div class="ttname"><a href="classSVF_1_1RetPE.html#a274adbd91750d8d6de8ba997285c1c49">SVF::RetPE::getFunExitICFGNode</a></div><div class="ttdeci">const FunExitICFGNode * getFunExitICFGNode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00578">SVFStatements.h:578</a></div></div>
|
|
273
271
|
<div class="ttc" id="classSVF_1_1CopyStmt_html_a5e883bb0bc30cf8b7d325b66f7a42848"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#a5e883bb0bc30cf8b7d325b66f7a42848">SVF::CopyStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00315">SVFStatements.h:315</a></div></div>
|
|
274
272
|
<div class="ttc" id="classSVF_1_1AssignStmt_html_ad03d28d16754c9049dd4d0ad3b6c1e28"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">SVF::AssignStmt::getRHSVar</a></div><div class="ttdeci">SVFVar * getRHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00247">SVFStatements.h:247</a></div></div>
|
|
275
|
-
<div class="ttc" id="classSVF_1_1TDJoinPE_html_a18e24262f5be7835bc830ea410acc19d"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
273
|
+
<div class="ttc" id="classSVF_1_1TDJoinPE_html_a18e24262f5be7835bc830ea410acc19d"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#a18e24262f5be7835bc830ea410acc19d">SVF::TDJoinPE::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01053">SVFStatements.h:1053</a></div></div>
|
|
276
274
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad20128715a7aaf173d60fe8f14575678"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad20128715a7aaf173d60fe8f14575678">SVF::MultiOpndStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00622">SVFStatements.h:622</a></div></div>
|
|
277
275
|
<div class="ttc" id="cuddInt_8c_html_a936a27e51e66afb57c2b3a12d78a238e"><div class="ttname"><a href="cuddInt_8c.html#a936a27e51e66afb57c2b3a12d78a238e">entry</a></div><div class="ttdeci">static int * entry</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l08422">cuddInt.c:8422</a></div></div>
|
|
278
276
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a47102f72115d41bff899b1b2ffec75b1"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a47102f72115d41bff899b1b2ffec75b1">SVF::SVFStmt::SVFStmt</a></div><div class="ttdeci">SVFStmt(SVFVar *s, SVFVar *d, GEdgeFlag k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00046">SVFStatements.cpp:46</a></div></div>
|
|
279
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
280
|
-
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac214292370d79324f6da8624fe2c7139"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
281
|
-
<div class="ttc" id="classSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
277
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00822">SVFStatements.h:822</a></div></div>
|
|
278
|
+
<div class="ttc" id="classSVF_1_1PhiStmt_html_ac214292370d79324f6da8624fe2c7139"><div class="ttname"><a href="classSVF_1_1PhiStmt.html#ac214292370d79324f6da8624fe2c7139">SVF::PhiStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00686">SVFStatements.h:686</a></div></div>
|
|
279
|
+
<div class="ttc" id="classSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00726">SVFStatements.h:726</a></div></div>
|
|
282
280
|
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_acf8c7cfbf1c8baab672040635bb9a007"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt::OPVars</a></div><div class="ttdeci">std::vector< SVFVar * > OPVars</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00592">SVFStatements.h:592</a></div></div>
|
|
283
281
|
<div class="ttc" id="classSVF_1_1IntraICFGNode_html"><div class="ttname"><a href="classSVF_1_1IntraICFGNode.html">SVF::IntraICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
|
|
284
|
-
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2a4b7e3a4c5be8a253b542f144f830b7"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
285
|
-
<div class="ttc" id="classSVF_1_1CmpStmt_html_af9f7fe4aa92bb443cd517f06a8fb94cd"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
282
|
+
<div class="ttc" id="classSVF_1_1UnaryOPStmt_html_a2a4b7e3a4c5be8a253b542f144f830b7"><div class="ttname"><a href="classSVF_1_1UnaryOPStmt.html#a2a4b7e3a4c5be8a253b542f144f830b7">SVF::UnaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00886">SVFStatements.h:886</a></div></div>
|
|
283
|
+
<div class="ttc" id="classSVF_1_1CmpStmt_html_af9f7fe4aa92bb443cd517f06a8fb94cd"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#af9f7fe4aa92bb443cd517f06a8fb94cd">SVF::CmpStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00799">SVFStatements.h:799</a></div></div>
|
|
286
284
|
<div class="ttc" id="classSVF_1_1AddrStmt_html_a42caa75acb42ce8e290c1278622f139c"><div class="ttname"><a href="classSVF_1_1AddrStmt.html#a42caa75acb42ce8e290c1278622f139c">SVF::AddrStmt::AddrStmt</a></div><div class="ttdeci">AddrStmt(SVFVar *s, SVFVar *d)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00291">SVFStatements.h:291</a></div></div>
|
|
287
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_abc24c2d50b164a637ad0cec371cb7e63"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
288
|
-
<div class="ttc" id="classSVF_1_1BranchStmt_html_a022d355bde3d0d0a9471cd125b24583b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">SVF::BranchStmt::getNumSuccessors</a></div><div class="ttdeci">u32_t getNumSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
285
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_abc24c2d50b164a637ad0cec371cb7e63"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#abc24c2d50b164a637ad0cec371cb7e63">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const SVFStmt *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00837">SVFStatements.h:837</a></div></div>
|
|
286
|
+
<div class="ttc" id="classSVF_1_1BranchStmt_html_a022d355bde3d0d0a9471cd125b24583b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">SVF::BranchStmt::getNumSuccessors</a></div><div class="ttdeci">u32_t getNumSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00981">SVFStatements.h:981</a></div></div>
|
|
289
287
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a593cc8136f2138a518476405e667e060"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a593cc8136f2138a518476405e667e060">SVF::SVFStmt::edgeId</a></div><div class="ttdeci">EdgeID edgeId</div><div class="ttdoc">Edge ID. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00063">SVFStatements.h:63</a></div></div>
|
|
290
|
-
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad53097d07487d564e7d13f9d7d9ab10c"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">SVF::MultiOpndStmt::opVerEnd</a></div><div class="ttdeci">OPVars::const_iterator opVerEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
288
|
+
<div class="ttc" id="classSVF_1_1MultiOpndStmt_html_ad53097d07487d564e7d13f9d7d9ab10c"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#ad53097d07487d564e7d13f9d7d9ab10c">SVF::MultiOpndStmt::opVerEnd</a></div><div class="ttdeci">OPVars::const_iterator opVerEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00657">SVFStatements.h:657</a></div></div>
|
|
291
289
|
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00078">BasicTypes.h:78</a></div></div>
|
|
292
290
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_af1c2fd4b5ef1d7b7605572bf2489c298"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#af1c2fd4b5ef1d7b7605572bf2489c298">SVF::GenericEdge::EdgeKindMaskBits</a></div><div class="ttdeci">static constexpr unsigned char EdgeKindMaskBits</div><div class="ttdoc">We use the lower 8 bits to denote edge kind. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00119">GenericGraph.h:119</a></div></div>
|
|
293
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ac8831079a5a9c6d50fbd09ff545e7cfd"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
294
|
-
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7470a2412985bbb227bb62d8a297b7f1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">SVF::BinaryOPStmt::BinaryOPStmt</a></div><div class="ttdeci">BinaryOPStmt(SVFVar *s, const OPVars &opnds, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#
|
|
291
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_ac8831079a5a9c6d50fbd09ff545e7cfd"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ac8831079a5a9c6d50fbd09ff545e7cfd">SVF::BinaryOPStmt::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGEdgeTy *edge)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00845">SVFStatements.h:845</a></div></div>
|
|
292
|
+
<div class="ttc" id="classSVF_1_1BinaryOPStmt_html_a7470a2412985bbb227bb62d8a297b7f1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a7470a2412985bbb227bb62d8a297b7f1">SVF::BinaryOPStmt::BinaryOPStmt</a></div><div class="ttdeci">BinaryOPStmt(SVFVar *s, const OPVars &opnds, u32_t oc)</div><div class="ttdoc">constructor </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00852">SVFStatements.h:852</a></div></div>
|
|
295
293
|
<div class="ttc" id="classSVF_1_1SVFStmt_html_a86628ea173dec4934322f5d1caf2e1db"><div class="ttname"><a href="classSVF_1_1SVFStmt.html#a86628ea173dec4934322f5d1caf2e1db">SVF::SVFStmt::getInst</a></div><div class="ttdeci">const Instruction * getInst() const</div><div class="ttdoc">Get/set methods for llvm instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00107">SVFStatements.h:107</a></div></div>
|
|
296
294
|
<div class="ttc" id="classSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
|
|
297
295
|
<div class="ttc" id="namespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00077">SVFBasicTypes.h:77</a></div></div>
|