svf-tools 1.0.404 → 1.0.405
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CHG_8h_source.html +5 -6
- package/SVF-doxygen/html/html/CPPUtil_8cpp.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -3
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1CSC-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +1 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +48 -48
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepCGEdge.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/functions_a.html +6 -6
- package/SVF-doxygen/html/html/functions_b.html +1 -1
- package/SVF-doxygen/html/html/functions_f.html +2 -2
- package/SVF-doxygen/html/html/functions_func.html +6 -6
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +9 -9
- package/SVF-doxygen/html/html/functions_func_i.html +1 -1
- package/SVF-doxygen/html/html/functions_func_s.html +2 -2
- package/SVF-doxygen/html/html/functions_func_v.html +1 -1
- package/SVF-doxygen/html/html/functions_g.html +9 -9
- package/SVF-doxygen/html/html/functions_i.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +3 -3
- package/SVF-doxygen/html/html/functions_type_n.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_v.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +2 -2
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_13.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_2.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +5 -5
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +4 -4
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +5 -5
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/functions_a.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_16.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +2 -2
- package/include/Graphs/CHG.h +6 -6
- package/include/Graphs/ConsGEdge.h +1 -1
- package/include/Graphs/ICFG.h +1 -1
- package/include/Graphs/ICFGEdge.h +3 -3
- package/include/MemoryModel/LocationSet.h +5 -5
- package/include/MemoryModel/PAGBuilderFromFile.h +1 -1
- package/include/MemoryModel/SVFIR.h +1 -1
- package/include/MemoryModel/SVFStatements.h +4 -4
- package/include/MemoryModel/SVFVariables.h +2 -2
- package/include/MemoryModel/SymbolTableInfo.h +1 -1
- package/include/SVF-FE/SVFIRBuilder.h +2 -2
- package/include/Util/IRAnnotator.h +2 -2
- package/include/WPA/AndersenSFR.h +1 -1
- package/include/WPA/CSC.h +1 -1
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/MTA/MHP.cpp +2 -2
- package/lib/MemoryModel/LocationSet.cpp +3 -3
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +2 -2
- package/lib/MemoryModel/SVFIR.cpp +1 -1
- package/lib/MemoryModel/SymbolTableInfo.cpp +3 -3
- package/lib/SVF-FE/CPPUtil.cpp +4 -4
- package/lib/SVF-FE/ICFGBuilder.cpp +1 -1
- package/lib/SVF-FE/LLVMUtil.cpp +1 -1
- package/lib/SVF-FE/SVFIRBuilder.cpp +9 -9
- package/lib/SVF-FE/SymbolTableBuilder.cpp +1 -1
- package/lib/Util/Conditions.cpp +1 -1
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/AndersenSFR.cpp +6 -6
- package/lib/WPA/CSC.cpp +5 -5
- package/lib/WPA/TypeAnalysis.cpp +3 -3
- package/package.json +1 -1
|
@@ -66,7 +66,7 @@ $(function() {
|
|
|
66
66
|
<div class="title">SymbolTableInfo.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="SymbolTableInfo_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">//===- SymbolTableInfo.h -- Symbol information from IR------------------------//</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-> <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> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SymbolTableInfo.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: Nov 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</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="SVFUtil_8h.html">Util/SVFUtil.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="SVFModule_8h.html">Util/SVFModule.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</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> <span class="keyword">class </span>MemObj;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>ObjTypeInfo;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>StInfo;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 49</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b"> 54</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</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_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1"> 56</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>,</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03"> 57</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539"> 58</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>,</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f"> 59</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247"> 60</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247">ValSymbol</a>,</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00"> 61</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00">ObjSymbol</a>,</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35"> 62</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35">RetSymbol</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3"> 63</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3">VarargSymbol</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">//{@</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a03a11c48d748990ddac1ac5866ecb48e"> 70</a></span> <span class="comment"></span> <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Value *, SymID></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a03a11c48d748990ddac1ac5866ecb48e">ValueToIDMapTy</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa"> 72</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<SymID,MemObj*></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa">IDToMemMapTy</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ada2191cb0e3798ba29aa442dca762290"> 74</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Function *, SymID></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ada2191cb0e3798ba29aa442dca762290">FunToIDMapTy</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9c9a9da876d41ab48e55f25efc266494"> 76</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Type*, StInfo*></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9c9a9da876d41ab48e55f25efc266494">TypeToFieldInfoMap</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a1b5fe6a59527983c80906261190fc864"> 77</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<CallSite></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1b5fe6a59527983c80906261190fc864">CallSiteSet</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a52fa7c8a2c7064b415f373fdea0fdf69"> 78</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Instruction*,CallSiteID></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a52fa7c8a2c7064b415f373fdea0fdf69">CallSiteToIDMapTy</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5af399ccac6ec809ade8f778379027bb"> 79</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<CallSiteID,const Instruction*></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5af399ccac6ec809ade8f778379027bb">IDToCallSiteMapTy</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ae577a32079a8e95d0185bfc45d919635"> 85</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *<a class="code" href="classSVF_1_1SymbolTableInfo.html#ae577a32079a8e95d0185bfc45d919635">dl</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08"> 87</a></span>  ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>; </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec"> 88</a></span>  ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681"> 89</a></span>  FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9"> 90</a></span>  FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a"> 91</a></span>  IDToMemMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a05a05894819e9cad6ee0033a6695e35e"> 93</a></span>  CallSiteSet <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05a05894819e9cad6ee0033a6695e35e">callSiteSet</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// Singleton pattern here to enable instance of SymbolTableInfo can only be created once.</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c"> 96</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba"> 99</a></span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9b8b7ecb217c7395025231b04e7b4c26"> 102</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9b8b7ecb217c7395025231b04e7b4c26">maxFieldLimit</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc"> 108</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd"> 111</a></span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237"> 115</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SymbolTableInfo</a>(<span class="keywordtype">void</span>) :</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  mod(nullptr), modelConstants(false), totalSymNum(0), <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4e33a01e203f07a8154af6ee65f5ba46">maxStruct</a>(nullptr), <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>(0)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolInfo</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec"> 126</a></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec">releaseSymbolInfo</a>()</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  symInfo = <span class="keyword">nullptr</span>;</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_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340"> 131</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340">~SymbolTableInfo</a>()</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</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"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d"> 139</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d">setModelConstants</a>(<span class="keywordtype">bool</span> _modelConstants)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  modelConstants = _modelConstants;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5"> 143</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5">getModelConstants</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#adc8e9a6cd5d27391beb1a88706e77a77"> 151</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> CallSiteSet& <a class="code" href="classSVF_1_1SymbolTableInfo.html#adc8e9a6cd5d27391beb1a88706e77a77">getCallSiteSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05a05894819e9cad6ee0033a6695e35e">callSiteSet</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44"> 158</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">getModule</a>()</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d"> 163</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d">setModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* m)</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>  mod = m;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5fad3e11fbba831ed0940fb715e7dc2d"> 169</a></span>  <span class="keyword">inline</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5fad3e11fbba831ed0940fb715e7dc2d">getDataLayout</a>(<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span>(dl==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae577a32079a8e95d0185bfc45d919635">dl</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// @{</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65a7e9d6d238a04291cb7d0aa15ece90">isNullPtrSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab15112d3900f28525848cbe5fad37deb">isBlackholeSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</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="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a61bda1c1c52fb765d0027d8141d35c35">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c"> 184</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">isBlkPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394"> 188</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">isNullPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3"> 192</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b"> 196</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d"> 200</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d">isBlkObjOrConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<span class="keywordtype">id</span>) || <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6ddf057415f641bd8ad15bded1415776">createBlkObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab5c9d593aa68c7150cd382db230eec3e">createConstantObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e"> 209</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>());</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b"> 213</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>());</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72"> 218</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721"> 223</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497"> 228</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4"> 233</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">createDummyObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// @}</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161"> 244</a></span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">getValSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</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"> 247</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a65a7e9d6d238a04291cb7d0aa15ece90">isNullPtrSym</a>(val))</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab15112d3900f28525848cbe5fad37deb">isBlackholeSym</a>(val))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  ValueToIDMapTy::const_iterator iter = valSymMap.find(val);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=valSymMap.end() &&<span class="stringliteral">"value sym not found"</span>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae"> 259</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">hasValSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#a65a7e9d6d238a04291cb7d0aa15ece90">isNullPtrSym</a>(val) || <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab15112d3900f28525848cbe5fad37deb">isBlackholeSym</a>(val))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> (valSymMap.find(val) != valSymMap.end());</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66"> 267</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)<span class="keyword"> const</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  ValueToIDMapTy::const_iterator iter = objSymMap.find(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4b55d5252da1f316f505cf6ce2078b28">SVFUtil::getGlobalRep</a>(val));</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=objSymMap.end() && <span class="stringliteral">"obj sym not found"</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> iter->second;</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> </div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906"> 274</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  IDToMemMapTy::const_iterator iter = objMap.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=objMap.end() && <span class="stringliteral">"obj not found"</span>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e"> 281</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e">getRetSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *val)<span class="keyword"> const</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  FunToIDMapTy::const_iterator iter = returnSymMap.find(val);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=returnSymMap.end() && <span class="stringliteral">"ret sym not found"</span>);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02"> 288</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02">getVarargSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *val)<span class="keyword"> const</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  FunToIDMapTy::const_iterator iter = varargSymMap.find(val);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=varargSymMap.end() && <span class="stringliteral">"vararg sym not found"</span>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5"> 299</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5">getTotalSymNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca"> 303</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</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_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf"> 311</a></span>  <span class="keyword">inline</span> ValueToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">valSyms</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> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff"> 316</a></span>  <span class="keyword">inline</span> ValueToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff">objSyms</a>()</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697"> 321</a></span>  <span class="keyword">inline</span> IDToMemMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">idToObjMap</a>()</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96"> 326</a></span>  <span class="keyword">inline</span> FunToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96">retSyms</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>;</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> </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5"> 331</a></span>  <span class="keyword">inline</span> FunToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5">varargSyms</a>()</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  TypeToFieldInfoMap::iterator <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeb3f594076c60fc313c29d282f347f08">getStructInfoIter</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a90bca8ff906ea48fb5e3a69da463ccab"> 344</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a90bca8ff906ea48fb5e3a69da463ccab">getStructInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeb3f594076c60fc313c29d282f347f08">getStructInfoIter</a>(T)->second;</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> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aec579894eed558ea89740b68360187aa">getNumOfFlattenElements</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6fe89e9d6c18a6aff6dffc1c78d08dff">getFlattenedElemIdx</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T, <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> origId);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#abffa6bdac98c5e64615291e8f2537caa">getOriginalElemType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> origId);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87ee08e81de307eb9c02889b6ed98dd5">getFlatternedElemType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flatten_idx);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aa99cab5480116905dd41ab0ad24b9462">collectTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aa40ff2fcaba3d4297d63269b74738737">printFlattenFields</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">static</span> std::string <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</a> symtype);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">dump</a>();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> std::vector<const Type*>& <a class="code" href="classSVF_1_1SymbolTableInfo.html#abdd4abea485b94ae31fd9b75dd3866de">getFlattenFieldTypes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a> *T);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab5297b79a02d8afce647a8b61bdab804">collectStructInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a> *T);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aea1c4ec32c307feb5da455a41cc51b5e">collectArrayInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* T);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abf7567c655499d6744de8df689c11fad">collectSimpleTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2b0f2c6745d14a9f6447ed96484dddac">createObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *type);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad8b9fa0a4e4b91efb80586e692bd0dcd"> 394</a></span>  TypeToFieldInfoMap <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad8b9fa0a4e4b91efb80586e692bd0dcd">typeToFieldInfo</a>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4e33a01e203f07a8154af6ee65f5ba46"> 397</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4e33a01e203f07a8154af6ee65f5ba46">maxStruct</a>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35"> 400</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</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> </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html"> 407</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MemObj.html">MemObj</a> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf"> 412</a></span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf">typeInfo</a>;</div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a011f324448f2796acaff6d2e388582e9"> 414</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="classSVF_1_1MemObj.html#a011f324448f2796acaff6d2e388582e9">refVal</a>;</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046"> 416</a></span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046">symId</a>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* ti, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#ad56f353dde7462dd54297e1b51e6eb05"> 423</a></span>  <a class="code" href="classSVF_1_1MemObj.html#ad56f353dde7462dd54297e1b51e6eb05">~MemObj</a>()</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</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> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3"> 431</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_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">return</span> refVal;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1"> 437</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">return</span> symId;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* getType() <span class="keyword">const</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getMaxFieldOffsetLimit() <span class="keyword">const</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordtype">bool</span> isFieldInsensitive() <span class="keyword">const</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordtype">void</span> setFieldInsensitive();</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordtype">void</span> setFieldSensitive();</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordtype">bool</span> isBlackHoleObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordtype">bool</span> isFunction() <span class="keyword">const</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordtype">bool</span> isGlobalObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordtype">bool</span> isStaticObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordtype">bool</span> isStack() <span class="keyword">const</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordtype">bool</span> isHeap() <span class="keyword">const</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">bool</span> isStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordtype">bool</span> isArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordtype">bool</span> isVarStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordtype">bool</span> isVarArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordtype">bool</span> isConstantStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordtype">bool</span> isConstantArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordtype">bool</span> isConstDataOrConstGlobal() <span class="keyword">const</span>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">isConstantData</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordtype">bool</span> hasPtrObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls) <span class="keyword">const</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b"> 480</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> &mem)<span class="keyword"> const</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">return</span> getValue() == mem.<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</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"> 484</span> </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</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"> 489</span> </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> </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html"> 495</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StInfo.html">StInfo</a></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a77c94c0ab75b2d5af2132ff8e082cefe"> 500</a></span>  std::vector<u32_t> <a class="code" href="classSVF_1_1StInfo.html#a77c94c0ab75b2d5af2132ff8e082cefe">fldIdxVec</a>;</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a807ae5cb4d277c79f8b2c9ecde5f12ea"> 502</a></span>  std::vector<u32_t> <a class="code" href="classSVF_1_1StInfo.html#a807ae5cb4d277c79f8b2c9ecde5f12ea">elemIdxVec</a>;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a3da859dcf2a5fe7078b1257dd5f1e479"> 504</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, const Type*></a> <a class="code" href="classSVF_1_1StInfo.html#a3da859dcf2a5fe7078b1257dd5f1e479">fldIdx2TypeMap</a>;</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a08cf9420a9c7d4019abee8b42fb578bf"> 506</a></span>  std::vector<const Type*> <a class="code" href="classSVF_1_1StInfo.html#a08cf9420a9c7d4019abee8b42fb578bf">finfo</a>;</div><div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a6c52ecbeeeeb0dda019c68aec687f2c2"> 508</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a6c52ecbeeeeb0dda019c68aec687f2c2">stride</a>; </div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a7aa5b5018b4dec4913eb6aecf25568a4"> 510</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a7aa5b5018b4dec4913eb6aecf25568a4">numOfFlattenElements</a>; </div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aa9b4e659f4a4421aadf736a3de24ca50"> 512</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#aa9b4e659f4a4421aadf736a3de24ca50">numOfFlattenFields</a>; </div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a8b24c6a35701a719cd5f1deef62421cd"> 514</a></span>  std::vector<const Type*> <a class="code" href="classSVF_1_1StInfo.html#a8b24c6a35701a719cd5f1deef62421cd">flattenElementTypes</a>;</div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a4cd926bd095254dd287f1cf26e02483e"> 516</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a4cd926bd095254dd287f1cf26e02483e">maxFieldLimit</a>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(); </div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>& st); </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>&); </div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a8c6d6933ad2c4be044d0a3557736e28d"> 524</a></span>  <a class="code" href="classSVF_1_1StInfo.html#a8c6d6933ad2c4be044d0a3557736e28d">StInfo</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> s) : stride(s), numOfFlattenElements(s), numOfFlattenFields(s)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div><div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a1fa88b6bfbbd648df1b15f11d61578ed"> 528</a></span>  <a class="code" href="classSVF_1_1StInfo.html#a1fa88b6bfbbd648df1b15f11d61578ed">~StInfo</a>()</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="l00531"></a><span class="lineno"> 531</span> </div><div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aed9399cfe3ace00289f2a5265df80199"> 532</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StInfo.html#aed9399cfe3ace00289f2a5265df80199">setMaxFieldLimit</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> limit)</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  maxFieldLimit = limit;</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> </div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2"> 537</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">getMaxFieldLimit</a>()</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9b8b7ecb217c7395025231b04e7b4c26">maxFieldLimit</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"> 541</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="comment">//{@</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#abffa6bdac98c5e64615291e8f2537caa">getOriginalElemType</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div><div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05"> 548</a></span>  <span class="keyword">inline</span> std::vector<u32_t>& <a class="code" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">getFlattenedFieldIdxVec</a>()</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">return</span> fldIdxVec;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  }</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb"> 552</a></span>  <span class="keyword">inline</span> std::vector<u32_t>& <a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>()</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">return</span> elemIdxVec;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div><div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#ae46e3a2f3eb02e9facf3e317faaf337d"> 556</a></span>  <span class="keyword">inline</span> std::vector<const Type*>& <a class="code" href="classSVF_1_1StInfo.html#ae46e3a2f3eb02e9facf3e317faaf337d">getFlattenElementTypes</a>()</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">return</span> flattenElementTypes;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a7fe5593e487a04e8f0eb28ca7bc31fe9"> 560</a></span>  <span class="keyword">inline</span> std::vector<const Type*>& <a class="code" href="classSVF_1_1StInfo.html#a7fe5593e487a04e8f0eb28ca7bc31fe9">getFlattenFieldTypes</a>()</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">return</span> finfo;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordtype">void</span> addFldWithType(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemIdx);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> </div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3"> 570</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ne)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  numOfFlattenFields = nf;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  numOfFlattenElements = ne;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  }</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762"> 577</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">return</span> numOfFlattenElements;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  }</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0"> 582</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">return</span> numOfFlattenFields;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  }</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#af5094ec542f345d214a682d4138cf690"> 586</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#af5094ec542f345d214a682d4138cf690">getStride</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">return</span> stride;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  }</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span> };</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html"> 594</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a></div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> {</div><div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 596</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830"> 598</a></span>  <span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div><div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515"> 600</a></span>  FUNCTION_OBJ = 0x1, <span class="comment">// object is a function</span></div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b"> 601</a></span>  GLOBVAR_OBJ = 0x2, <span class="comment">// object is a global variable</span></div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a4e7606afe2dabdef9c9836ae798a9d98"> 602</a></span>  STATIC_OBJ = 0x4, <span class="comment">// object is a static variable allocated before main</span></div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aad918042d1f04a5e3960817d55ccb5d5"> 603</a></span>  STACK_OBJ = 0x8, <span class="comment">// object is a stack variable</span></div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c"> 604</a></span>  HEAP_OBJ = 0x10, <span class="comment">// object is a heap variable</span></div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aaf98981bd15b41f543fd99d0c6222f08"> 605</a></span>  VAR_STRUCT_OBJ = 0x20, <span class="comment">// object contains struct</span></div><div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c"> 606</a></span>  VAR_ARRAY_OBJ = 0x40, <span class="comment">// object contains array</span></div><div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a6443b9fadd2d34e00832b2215a120ebd"> 607</a></span>  CONST_STRUCT_OBJ = 0x80, <span class="comment">// constant struct</span></div><div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aff4142c0c411dea07b484a19af514047"> 608</a></span>  CONST_ARRAY_OBJ = 0x100, <span class="comment">// constant array</span></div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a84c1bc6eaff950330a102afca1efc04c"> 609</a></span>  CONST_GLOBAL_OBJ = 0x200, <span class="comment">// global constant object</span></div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a5e5bc3a1838476fbd80c52720c9d103e"> 610</a></span>  CONST_DATA = 0x400, <span class="comment">// constant object str e.g. 5, 10, 1.0</span></div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9"> 611</a></span>  HASPTR_OBJ = 0x800 <span class="comment">// the object stores a pointer address</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  } <a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a6e7780d4e2639c089ff6c853d8d78a4d"> 616</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#a6e7780d4e2639c089ff6c853d8d78a4d">type</a>;</div><div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1"> 618</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1">flags</a>;</div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a"> 622</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a">maxOffsetLimit</a>;</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="keywordtype">void</span> resetTypeForHeapStaticObj(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* t, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> max);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div><div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975"> 631</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975">~ObjTypeInfo</a>()</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  {</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  }</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  </div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a706cdc47e78732853252d5a4af85653a"> 636</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#a706cdc47e78732853252d5a4af85653a">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">return</span> type;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  }</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4"> 642</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>()</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">return</span> maxOffsetLimit;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div><div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092"> 648</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092">setMaxFieldOffsetLimit</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> limit)</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  maxOffsetLimit = limit;</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> </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_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49"> 655</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  {</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  flags |= mask;</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_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb"> 659</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb">hasFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  {</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">return</span> (flags & mask) == mask;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  }</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f"> 667</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f">isFunction</a>()</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">return</span> hasFlag(FUNCTION_OBJ);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  }</div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f"> 671</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f">isGlobalObj</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="keywordflow">return</span> hasFlag(GLOBVAR_OBJ);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  }</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523"> 675</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>()</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">return</span> hasFlag(STATIC_OBJ);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602"> 679</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602">isStack</a>()</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">return</span> hasFlag(STACK_OBJ);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d"> 683</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>()</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">return</span> hasFlag(HEAP_OBJ);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5"> 692</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5">isVarStruct</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"> 694</span>  <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div><div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7"> 696</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7">isConstantStruct</a>()</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">return</span> hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  }</div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a"> 700</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a">isStruct</a>()</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ) || hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  }</div><div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3"> 704</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3">isVarArray</a>()</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">return</span> hasFlag(VAR_ARRAY_OBJ);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  }</div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212"> 708</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212">isConstantArray</a>()</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>  <span class="keywordflow">return</span> hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  }</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1"> 712</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1">isArray</a>()</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  {</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">return</span> hasFlag(VAR_ARRAY_OBJ) || hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1"> 716</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1">isConstDataOrConstGlobal</a>()</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  {</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> hasFlag(CONST_GLOBAL_OBJ) || hasFlag(CONST_DATA);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a6f6c80f7d067a6082a9af04d2547cf34"> 720</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a6f6c80f7d067a6082a9af04d2547cf34">isConstantData</a>()</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>  <span class="keywordflow">return</span> hasFlag(CONST_DATA);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320"> 724</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320">hasPtrObj</a>()</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">return</span> hasFlag(HASPTR_OBJ);</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">virtual</span> <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls);</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="l00732"></a><span class="lineno"> 732</span> </div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SymbolTableBuilder_html"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html">SVF::SymbolTableBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8h_source.html#l00042">SymbolTableBuilder.h:42</a></div></div>
|
|
69
|
+
<a href="SymbolTableInfo_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">//===- SymbolTableInfo.h -- Symbol information from IR------------------------//</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-> <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> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SymbolTableInfo.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: Nov 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</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="SVFUtil_8h.html">Util/SVFUtil.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="SVFModule_8h.html">Util/SVFModule.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</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> <span class="keyword">class </span>MemObj;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>ObjTypeInfo;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>StInfo;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 49</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b"> 54</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</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_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1"> 56</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>,</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03"> 57</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539"> 58</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>,</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f"> 59</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247"> 60</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba23583f8cf79d3fd142f8550664ad8247">ValSymbol</a>,</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00"> 61</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba58703da9c0d4819869447b6a25dcff00">ObjSymbol</a>,</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35"> 62</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba8ac9528bf8b81f7942c1cdc0bf63ec35">RetSymbol</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3"> 63</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89bab8a256319d4853178a0308c0f6f830e3">VarargSymbol</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  };</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">//{@</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a03a11c48d748990ddac1ac5866ecb48e"> 70</a></span> <span class="comment"></span> <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Value *, SymID></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a03a11c48d748990ddac1ac5866ecb48e">ValueToIDMapTy</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa"> 72</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<SymID,MemObj*></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa">IDToMemMapTy</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ada2191cb0e3798ba29aa442dca762290"> 74</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Function *, SymID></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ada2191cb0e3798ba29aa442dca762290">FunToIDMapTy</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9c9a9da876d41ab48e55f25efc266494"> 76</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Type*, StInfo*></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9c9a9da876d41ab48e55f25efc266494">TypeToFieldInfoMap</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a1b5fe6a59527983c80906261190fc864"> 77</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<CallSite></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1b5fe6a59527983c80906261190fc864">CallSiteSet</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a52fa7c8a2c7064b415f373fdea0fdf69"> 78</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<const Instruction*,CallSiteID></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a52fa7c8a2c7064b415f373fdea0fdf69">CallSiteToIDMapTy</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5af399ccac6ec809ade8f778379027bb"> 79</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#aedf0d6718ca176e0b9e17ab4b30729c6">OrderedMap<CallSiteID,const Instruction*></a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5af399ccac6ec809ade8f778379027bb">IDToCallSiteMapTy</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ae577a32079a8e95d0185bfc45d919635"> 85</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a> *<a class="code" href="classSVF_1_1SymbolTableInfo.html#ae577a32079a8e95d0185bfc45d919635">dl</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08"> 87</a></span>  ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>; </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec"> 88</a></span>  ValueToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>; </div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681"> 89</a></span>  FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9"> 90</a></span>  FunToIDMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a"> 91</a></span>  IDToMemMapTy <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a05a05894819e9cad6ee0033a6695e35e"> 93</a></span>  CallSiteSet <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05a05894819e9cad6ee0033a6695e35e">callSiteSet</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// Singleton pattern here to enable instance of SymbolTableInfo can only be created once.</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c"> 96</a></span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba"> 99</a></span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9b8b7ecb217c7395025231b04e7b4c26"> 102</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9b8b7ecb217c7395025231b04e7b4c26">maxFieldLimit</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc"> 108</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd"> 111</a></span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237"> 115</a></span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SymbolTableInfo</a>(<span class="keywordtype">void</span>) :</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  mod(nullptr), modelConstants(false), totalSymNum(0), <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4e33a01e203f07a8154af6ee65f5ba46">maxStruct</a>(nullptr), <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>(0)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">static</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html">SymbolTableInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolInfo</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec"> 126</a></span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f8d99c761f3c7108d797b3702fcbfec">releaseSymbolInfo</a>()</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">delete</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4fbb8ea4b4796d10d13c027b7455505c">symInfo</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  symInfo = <span class="keyword">nullptr</span>;</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_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340"> 131</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6efac0ae8ebf2865067136675be5a340">~SymbolTableInfo</a>()</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</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"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d"> 139</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4decfc9e7f5dc096d7bfa42d6965763d">setModelConstants</a>(<span class="keywordtype">bool</span> _modelConstants)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  modelConstants = _modelConstants;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5"> 143</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a89e9c6da843e5eef25c51afd5d0937e5">getModelConstants</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad20ccb90e8f9dee488a8aec0600399dc">modelConstants</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#adc8e9a6cd5d27391beb1a88706e77a77"> 151</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> CallSiteSet& <a class="code" href="classSVF_1_1SymbolTableInfo.html#adc8e9a6cd5d27391beb1a88706e77a77">getCallSiteSet</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05a05894819e9cad6ee0033a6695e35e">callSiteSet</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44"> 158</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a40387a4893ae5caf58d6f786533d2f44">getModule</a>()</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#af8fdaaa03cd2ae9b7d50f57bc678b8ba">mod</a>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d"> 163</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4f916c64ca04c4db30bd19fb8505724d">setModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* m)</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>  mod = m;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a5fad3e11fbba831ed0940fb715e7dc2d"> 169</a></span>  <span class="keyword">inline</span> <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5fad3e11fbba831ed0940fb715e7dc2d">getDataLayout</a>(<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mod)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span>(dl==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> dl = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a03db82b8a7914367024723dba4d6ca3c">DataLayout</a>(mod);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae577a32079a8e95d0185bfc45d919635">dl</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// @{</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65a7e9d6d238a04291cb7d0aa15ece90">isNullPtrSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab15112d3900f28525848cbe5fad37deb">isBlackholeSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</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="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a61bda1c1c52fb765d0027d8141d35c35">isConstantObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c"> 184</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acba43b6e9cdf07afaf3d30351aa8df7c">isBlkPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394"> 188</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad095e4a569d399cadc03ce864f61c394">isNullPtr</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3"> 192</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b"> 196</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> (<span class="keywordtype">id</span> == <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d"> 200</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2fc4bfb83b71a4c14e16168382cb8f5d">isBlkObjOrConstantObj</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">isBlkObj</a>(<span class="keywordtype">id</span>) || <a class="code" href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">isConstantObj</a>(<span class="keywordtype">id</span>));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a6ddf057415f641bd8ad15bded1415776">createBlkObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab5c9d593aa68c7150cd382db230eec3e">createConstantObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e"> 209</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#aebf96274e1ad2a523981487839a3025e">getBlkObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>());</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b"> 213</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a661eb9ff1839c3af942517808414202b">getConstantObj</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>());</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72"> 218</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba9a9d3f03f58ccd4fdaaf08327a74aa03">BlkPtr</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721"> 223</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba1e6cc9ef0abd047b183382f2681cd4c1">NullPtr</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497"> 228</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab582424fdb6d9674c1bd4466cdfbe497">constantSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89baa3ecb7c51e2cba67d1f9a5284c2f215f">ConstantObj</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4"> 233</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a05ca2987d9f8716c24e489bec53502f4">blackholeSymID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89ba95734ab884566beab5cd3523c250b539">BlackHole</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a8e40c578ccdd3a108a10a191a309bd18">createDummyObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> symId, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// @}</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161"> 244</a></span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">getValSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</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"> 247</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a65a7e9d6d238a04291cb7d0aa15ece90">isNullPtrSym</a>(val))</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#adaed6e68c2f53260ed4c4fc38b5c4721">nullPtrSymID</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#ab15112d3900f28525848cbe5fad37deb">isBlackholeSym</a>(val))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">blkPtrSymID</a>();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  ValueToIDMapTy::const_iterator iter = valSymMap.find(val);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=valSymMap.end() &&<span class="stringliteral">"value sym not found"</span>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae"> 259</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">hasValSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SymbolTableInfo.html#a65a7e9d6d238a04291cb7d0aa15ece90">isNullPtrSym</a>(val) || <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab15112d3900f28525848cbe5fad37deb">isBlackholeSym</a>(val))</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> (valSymMap.find(val) != valSymMap.end());</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66"> 267</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afca5a68d1825326e3ec6302ce0afee66">getObjSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val)<span class="keyword"> const</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  ValueToIDMapTy::const_iterator iter = objSymMap.find(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a4b55d5252da1f316f505cf6ce2078b28">SVFUtil::getGlobalRep</a>(val));</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=objSymMap.end() && <span class="stringliteral">"obj sym not found"</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> iter->second;</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> </div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906"> 274</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a65f49178a948380c2d6105178509a906">getObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  IDToMemMapTy::const_iterator iter = objMap.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=objMap.end() && <span class="stringliteral">"obj not found"</span>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e"> 281</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#afc8b0b6aea972f34a0c099b75114b81e">getRetSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *val)<span class="keyword"> const</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  FunToIDMapTy::const_iterator iter = returnSymMap.find(val);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=returnSymMap.end() && <span class="stringliteral">"ret sym not found"</span>);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02"> 288</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aec3fd21a11f760ca8684e390c6948f02">getVarargSym</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *val)<span class="keyword"> const</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  FunToIDMapTy::const_iterator iter = varargSymMap.find(val);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(iter!=varargSymMap.end() && <span class="stringliteral">"vararg sym not found"</span>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">return</span> iter->second;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5"> 299</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a26eb45eab3da4695a6e5bad51b01ddc5">getTotalSymNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a125faa0295b38d027b35bc3d76b3afdd">totalSymNum</a>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca"> 303</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abc7e567209010286a68634c700d76cca">getMaxStructSize</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</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_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf"> 311</a></span>  <span class="keyword">inline</span> ValueToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#a8f3cb8a1db34dd692ee04561f4edeebf">valSyms</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> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5054f95a7b77257ffb283044aab17b08">valSymMap</a>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff"> 316</a></span>  <span class="keyword">inline</span> ValueToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#a3f9612f32c651220386beb0514f8fcff">objSyms</a>()</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a5840b742ed8c73ece548b9b4aede07ec">objSymMap</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697"> 321</a></span>  <span class="keyword">inline</span> IDToMemMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#a929a20dc8f2eb4d82e93938b8339d697">idToObjMap</a>()</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeab14702eabde827923a692cba8f7f8a">objMap</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96"> 326</a></span>  <span class="keyword">inline</span> FunToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#aafd4da7cef6387bb974abe20185b7b96">retSyms</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">returnSymMap</a>;</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> </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5"> 331</a></span>  <span class="keyword">inline</span> FunToIDMapTy& <a class="code" href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5">varargSyms</a>()</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a94c06e5ac0b50989743a9e63c9a6d5b9">varargSymMap</a>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  TypeToFieldInfoMap::iterator <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeb3f594076c60fc313c29d282f347f08">getStructInfoIter</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a90bca8ff906ea48fb5e3a69da463ccab"> 344</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a90bca8ff906ea48fb5e3a69da463ccab">getStructInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aeb3f594076c60fc313c29d282f347f08">getStructInfoIter</a>(T)->second;</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> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aec579894eed558ea89740b68360187aa">getNumOfFlattenElements</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a8fc42c2b02317621d6aeb3c5f52d3ee8">getFlattenedElemIdx</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *T, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> origId);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#abffa6bdac98c5e64615291e8f2537caa">getOriginalElemType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> origId);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87ee08e81de307eb9c02889b6ed98dd5">getFlatternedElemType</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* baseType, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flatten_idx);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aa99cab5480116905dd41ab0ad24b9462">collectTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">getModulusOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* obj, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aa40ff2fcaba3d4297d63269b74738737">printFlattenFields</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">static</span> std::string <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#afd2cf6ef6d7f2a583c709a72067be89b">SYMTYPE</a> symtype);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9f4cf6914b400b9f69c7852f13c496a9">dump</a>();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> std::vector<const Type*>& <a class="code" href="classSVF_1_1SymbolTableInfo.html#abdd4abea485b94ae31fd9b75dd3866de">getFlattenFieldTypes</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a> *T);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#ab5297b79a02d8afce647a8b61bdab804">collectStructInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a> *T);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#aea1c4ec32c307feb5da455a41cc51b5e">collectArrayInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* T);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abf7567c655499d6744de8df689c11fad">collectSimpleTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* T);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a2b0f2c6745d14a9f6447ed96484dddac">createObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *type);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#ad8b9fa0a4e4b91efb80586e692bd0dcd"> 394</a></span>  TypeToFieldInfoMap <a class="code" href="classSVF_1_1SymbolTableInfo.html#ad8b9fa0a4e4b91efb80586e692bd0dcd">typeToFieldInfo</a>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#a4e33a01e203f07a8154af6ee65f5ba46"> 397</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#a4e33a01e203f07a8154af6ee65f5ba46">maxStruct</a>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35"> 400</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>;</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> </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html"> 407</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MemObj.html">MemObj</a> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf"> 412</a></span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* <a class="code" href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf">typeInfo</a>;</div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a011f324448f2796acaff6d2e388582e9"> 414</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="classSVF_1_1MemObj.html#a011f324448f2796acaff6d2e388582e9">refVal</a>;</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046"> 416</a></span>  <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a37f4e34b7f7dd6bfd4379cf3552e9046">symId</a>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>(<a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>* ti, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#ad56f353dde7462dd54297e1b51e6eb05"> 423</a></span>  <a class="code" href="classSVF_1_1MemObj.html#ad56f353dde7462dd54297e1b51e6eb05">~MemObj</a>()</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</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> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> std::string <a class="code" href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">toString</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3"> 431</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_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">return</span> refVal;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1"> 437</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad11fe2412b2182365a662ff0e4639b48">SymID</a> <a class="code" href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">getId</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keywordflow">return</span> symId;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* getType() <span class="keyword">const</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getMaxFieldOffsetLimit() <span class="keyword">const</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordtype">bool</span> isFieldInsensitive() <span class="keyword">const</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordtype">void</span> setFieldInsensitive();</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordtype">void</span> setFieldSensitive();</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordtype">bool</span> isBlackHoleObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordtype">bool</span> isFunction() <span class="keyword">const</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordtype">bool</span> isGlobalObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordtype">bool</span> isStaticObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordtype">bool</span> isStack() <span class="keyword">const</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordtype">bool</span> isHeap() <span class="keyword">const</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">bool</span> isStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordtype">bool</span> isArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordtype">bool</span> isVarStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordtype">bool</span> isVarArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordtype">bool</span> isConstantStruct() <span class="keyword">const</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordtype">bool</span> isConstantArray() <span class="keyword">const</span>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordtype">bool</span> isConstDataOrConstGlobal() <span class="keyword">const</span>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">isConstantData</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordtype">bool</span> hasPtrObj() <span class="keyword">const</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls) <span class="keyword">const</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b"> 480</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MemObj.html#a1a8601b72b6e6df211db1fffdd54c48b">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> &mem)<span class="keyword"> const</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keywordflow">return</span> getValue() == mem.<a class="code" href="classSVF_1_1MemObj.html#a4da54ef60231d2e6c26669226b99d2f3">getValue</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"> 484</span> </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">destroy</a>();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</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"> 489</span> </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> </div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html"> 495</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StInfo.html">StInfo</a></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> </div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a77c94c0ab75b2d5af2132ff8e082cefe"> 500</a></span>  std::vector<u32_t> <a class="code" href="classSVF_1_1StInfo.html#a77c94c0ab75b2d5af2132ff8e082cefe">fldIdxVec</a>;</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a807ae5cb4d277c79f8b2c9ecde5f12ea"> 502</a></span>  std::vector<u32_t> <a class="code" href="classSVF_1_1StInfo.html#a807ae5cb4d277c79f8b2c9ecde5f12ea">elemIdxVec</a>;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a3da859dcf2a5fe7078b1257dd5f1e479"> 504</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t, const Type*></a> <a class="code" href="classSVF_1_1StInfo.html#a3da859dcf2a5fe7078b1257dd5f1e479">fldIdx2TypeMap</a>;</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a08cf9420a9c7d4019abee8b42fb578bf"> 506</a></span>  std::vector<const Type*> <a class="code" href="classSVF_1_1StInfo.html#a08cf9420a9c7d4019abee8b42fb578bf">finfo</a>;</div><div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a6c52ecbeeeeb0dda019c68aec687f2c2"> 508</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a6c52ecbeeeeb0dda019c68aec687f2c2">stride</a>; </div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a7aa5b5018b4dec4913eb6aecf25568a4"> 510</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a7aa5b5018b4dec4913eb6aecf25568a4">numOfFlattenElements</a>; </div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aa9b4e659f4a4421aadf736a3de24ca50"> 512</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#aa9b4e659f4a4421aadf736a3de24ca50">numOfFlattenFields</a>; </div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a8b24c6a35701a719cd5f1deef62421cd"> 514</a></span>  std::vector<const Type*> <a class="code" href="classSVF_1_1StInfo.html#a8b24c6a35701a719cd5f1deef62421cd">flattenElementTypes</a>;</div><div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a4cd926bd095254dd287f1cf26e02483e"> 516</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a4cd926bd095254dd287f1cf26e02483e">maxFieldLimit</a>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(); </div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>& st); </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>&); </div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a8c6d6933ad2c4be044d0a3557736e28d"> 524</a></span>  <a class="code" href="classSVF_1_1StInfo.html#a8c6d6933ad2c4be044d0a3557736e28d">StInfo</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> s) : stride(s), numOfFlattenElements(s), numOfFlattenFields(s)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div><div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a1fa88b6bfbbd648df1b15f11d61578ed"> 528</a></span>  <a class="code" href="classSVF_1_1StInfo.html#a1fa88b6bfbbd648df1b15f11d61578ed">~StInfo</a>()</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="l00531"></a><span class="lineno"> 531</span> </div><div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aed9399cfe3ace00289f2a5265df80199"> 532</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StInfo.html#aed9399cfe3ace00289f2a5265df80199">setMaxFieldLimit</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> limit)</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  maxFieldLimit = limit;</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> </div><div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2"> 537</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#ad6e599717952f8ccc2771cd72254b6b2">getMaxFieldLimit</a>()</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SymbolTableInfo.html#a9b8b7ecb217c7395025231b04e7b4c26">maxFieldLimit</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"> 541</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="comment">//{@</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1SymbolTableInfo.html#abffa6bdac98c5e64615291e8f2537caa">getOriginalElemType</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div><div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05"> 548</a></span>  <span class="keyword">inline</span> std::vector<u32_t>& <a class="code" href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">getFlattenedFieldIdxVec</a>()</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">return</span> fldIdxVec;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  }</div><div class="line"><a name="l00552"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb"> 552</a></span>  <span class="keyword">inline</span> std::vector<u32_t>& <a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>()</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">return</span> elemIdxVec;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div><div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#ae46e3a2f3eb02e9facf3e317faaf337d"> 556</a></span>  <span class="keyword">inline</span> std::vector<const Type*>& <a class="code" href="classSVF_1_1StInfo.html#ae46e3a2f3eb02e9facf3e317faaf337d">getFlattenElementTypes</a>()</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">return</span> flattenElementTypes;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div><div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a7fe5593e487a04e8f0eb28ca7bc31fe9"> 560</a></span>  <span class="keyword">inline</span> std::vector<const Type*>& <a class="code" href="classSVF_1_1StInfo.html#a7fe5593e487a04e8f0eb28ca7bc31fe9">getFlattenFieldTypes</a>()</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">return</span> finfo;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordtype">void</span> addFldWithType(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fldIdx, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemIdx);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> </div><div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3"> 570</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ne)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  numOfFlattenFields = nf;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  numOfFlattenElements = ne;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  }</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div><div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762"> 577</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">return</span> numOfFlattenElements;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  }</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span> </div><div class="line"><a name="l00582"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0"> 582</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">return</span> numOfFlattenFields;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  }</div><div class="line"><a name="l00586"></a><span class="lineno"><a class="line" href="classSVF_1_1StInfo.html#af5094ec542f345d214a682d4138cf690"> 586</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1StInfo.html#af5094ec542f345d214a682d4138cf690">getStride</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <span class="keywordflow">return</span> stride;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  }</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span> };</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> </div><div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html"> 594</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a></div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span> {</div><div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9d9633d48431b80c078bd4a34c1e7fa0"> 596</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a>;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830"> 598</a></span>  <span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div><div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830af5f94b2a41dab25fa08c94a989fb9515"> 600</a></span>  FUNCTION_OBJ = 0x1, <span class="comment">// object is a function</span></div><div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad2ba0edfac1460f3fd89e7a6c4c4691b"> 601</a></span>  GLOBVAR_OBJ = 0x2, <span class="comment">// object is a global variable</span></div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a4e7606afe2dabdef9c9836ae798a9d98"> 602</a></span>  STATIC_OBJ = 0x4, <span class="comment">// object is a static variable allocated before main</span></div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aad918042d1f04a5e3960817d55ccb5d5"> 603</a></span>  STACK_OBJ = 0x8, <span class="comment">// object is a stack variable</span></div><div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a692b4b0df23bad19ea04d18b01bf445c"> 604</a></span>  HEAP_OBJ = 0x10, <span class="comment">// object is a heap variable</span></div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aaf98981bd15b41f543fd99d0c6222f08"> 605</a></span>  VAR_STRUCT_OBJ = 0x20, <span class="comment">// object contains struct</span></div><div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c"> 606</a></span>  VAR_ARRAY_OBJ = 0x40, <span class="comment">// object contains array</span></div><div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a6443b9fadd2d34e00832b2215a120ebd"> 607</a></span>  CONST_STRUCT_OBJ = 0x80, <span class="comment">// constant struct</span></div><div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830aff4142c0c411dea07b484a19af514047"> 608</a></span>  CONST_ARRAY_OBJ = 0x100, <span class="comment">// constant array</span></div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a84c1bc6eaff950330a102afca1efc04c"> 609</a></span>  CONST_GLOBAL_OBJ = 0x200, <span class="comment">// global constant object</span></div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830a5e5bc3a1838476fbd80c52720c9d103e"> 610</a></span>  CONST_DATA = 0x400, <span class="comment">// constant object str e.g. 5, 10, 1.0</span></div><div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830ad17b2a35fb492561c4011dbe3880c6c9"> 611</a></span>  HASPTR_OBJ = 0x800 <span class="comment">// the object stores a pointer address</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  } <a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span> </div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a6e7780d4e2639c089ff6c853d8d78a4d"> 616</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#a6e7780d4e2639c089ff6c853d8d78a4d">type</a>;</div><div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1"> 618</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#abf6bbcccf73bfcd5b950803d349c4eb1">flags</a>;</div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a"> 622</a></span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a5ff63eb0654acd152f7d6c18618ee94a">maxOffsetLimit</a>;</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="keywordtype">void</span> resetTypeForHeapStaticObj(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* type);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <a class="code" href="classSVF_1_1ObjTypeInfo.html">ObjTypeInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* t, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> max);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> </div><div class="line"><a name="l00631"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975"> 631</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ace5fdb3701cb93df0f02aedc94e7e975">~ObjTypeInfo</a>()</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  {</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  }</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  </div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a706cdc47e78732853252d5a4af85653a"> 636</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="classSVF_1_1ObjTypeInfo.html#a706cdc47e78732853252d5a4af85653a">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">return</span> type;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  }</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div><div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4"> 642</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a81bc3d785062c7e527ecf8e564cd52a4">getMaxFieldOffsetLimit</a>()</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">return</span> maxOffsetLimit;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div><div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092"> 648</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a9fff869c63776c6ebeff78933e0f6092">setMaxFieldOffsetLimit</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> limit)</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  maxOffsetLimit = limit;</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> </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_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49"> 655</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ad6fb2bfae3d4b73a6821a87106f65f49">setFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  {</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  flags |= mask;</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_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb"> 659</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e630eb30d05f665b998c6f9326d65cb">hasFlag</a>(<a class="code" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830">MEMTYPE</a> mask)</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  {</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">return</span> (flags & mask) == mask;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  }</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div><div class="line"><a name="l00667"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f"> 667</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f">isFunction</a>()</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">return</span> hasFlag(FUNCTION_OBJ);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  }</div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f"> 671</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa2855b69150287e5f04a7a683dc4c91f">isGlobalObj</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="keywordflow">return</span> hasFlag(GLOBVAR_OBJ);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  }</div><div class="line"><a name="l00675"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523"> 675</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a3594dc1c1943dbac0ab72f2ff163c523">isStaticObj</a>()</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">return</span> hasFlag(STATIC_OBJ);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div><div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602"> 679</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aa568dc82decd28d2ef40785a4a647602">isStack</a>()</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">return</span> hasFlag(STACK_OBJ);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d"> 683</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a26c179394fbda9a9261d0bf3f52b619d">isHeap</a>()</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordflow">return</span> hasFlag(HEAP_OBJ);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span> </div><div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5"> 692</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a40d6703875b370aed2c6dc41c0594af5">isVarStruct</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"> 694</span>  <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div><div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7"> 696</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a41f916ab4e3a2c163fca636eae948ce7">isConstantStruct</a>()</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">return</span> hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  }</div><div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a"> 700</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a06493939f797f122b70b90bbf22cad7a">isStruct</a>()</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">return</span> hasFlag(VAR_STRUCT_OBJ) || hasFlag(CONST_STRUCT_OBJ);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  }</div><div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3"> 704</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#aca1e900f9b0a774684af77666cf033e3">isVarArray</a>()</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">return</span> hasFlag(VAR_ARRAY_OBJ);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  }</div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212"> 708</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac1ee7a720959c0e97496870d6e759212">isConstantArray</a>()</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>  <span class="keywordflow">return</span> hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  }</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1"> 712</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a0627e8b9dda2e13cc77c334eefab21e1">isArray</a>()</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  {</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">return</span> hasFlag(VAR_ARRAY_OBJ) || hasFlag(CONST_ARRAY_OBJ);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  }</div><div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1"> 716</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a8e6c60978df9828c1dcb54086e83edc1">isConstDataOrConstGlobal</a>()</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  {</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> hasFlag(CONST_GLOBAL_OBJ) || hasFlag(CONST_DATA);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div><div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#a6f6c80f7d067a6082a9af04d2547cf34"> 720</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#a6f6c80f7d067a6082a9af04d2547cf34">isConstantData</a>()</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>  <span class="keywordflow">return</span> hasFlag(CONST_DATA);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320"> 724</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1ObjTypeInfo.html#ac5bae1e7917f415193a805e8d2e29320">hasPtrObj</a>()</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">return</span> hasFlag(HASPTR_OBJ);</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">virtual</span> <span class="keywordtype">bool</span> isNonPtrFieldObj(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>& ls);</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="l00732"></a><span class="lineno"> 732</span> </div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span> <span class="preprocessor">#endif </span><span class="comment">/* INCLUDE_SVF_FE_SYMBOLTABLEINFO_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SymbolTableBuilder_html"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html">SVF::SymbolTableBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8h_source.html#l00042">SymbolTableBuilder.h:42</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1MemObj_html_a750770ea992d39b22c8b2dda9aff2eaf"><div class="ttname"><a href="classSVF_1_1MemObj.html#a750770ea992d39b22c8b2dda9aff2eaf">SVF::MemObj::typeInfo</a></div><div class="ttdeci">ObjTypeInfo * typeInfo</div><div class="ttdoc">Type information of this object. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00412">SymbolTableInfo.h:412</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aff272bc1d00f2e57b7677d1826a31237"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SVF::SymbolTableInfo::SymbolTableInfo</a></div><div class="ttdeci">SymbolTableInfo(void)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00115">SymbolTableInfo.h:115</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1b5fe6a59527983c80906261190fc864"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1b5fe6a59527983c80906261190fc864">SVF::SymbolTableInfo::CallSiteSet</a></div><div class="ttdeci">Set< CallSite > CallSiteSet</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00077">SymbolTableInfo.h:77</a></div></div>
|
|
@@ -104,6 +104,7 @@ $(function() {
|
|
|
104
104
|
<div class="ttc" id="classSVF_1_1ObjTypeInfo_html_ac99fa14fdf7bc0dd3e9ff36c7a3a351f"><div class="ttname"><a href="classSVF_1_1ObjTypeInfo.html#ac99fa14fdf7bc0dd3e9ff36c7a3a351f">SVF::ObjTypeInfo::isFunction</a></div><div class="ttdeci">bool isFunction()</div><div class="ttdoc">Object attributes. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00667">SymbolTableInfo.h:667</a></div></div>
|
|
105
105
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a7d3001549966444622d5918e5811e89e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a7d3001549966444622d5918e5811e89e">SVF::SymbolTableInfo::toString</a></div><div class="ttdeci">static std::string toString(SYMTYPE symtype)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00518">SymbolTableInfo.cpp:518</a></div></div>
|
|
106
106
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a704b917b1e1dbaf9cd758fa9acc1083b"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a704b917b1e1dbaf9cd758fa9acc1083b">SVF::SymbolTableInfo::isConstantObj</a></div><div class="ttdeci">static bool isConstantObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00196">SymbolTableInfo.h:196</a></div></div>
|
|
107
|
+
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a8fc42c2b02317621d6aeb3c5f52d3ee8"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a8fc42c2b02317621d6aeb3c5f52d3ee8">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const Type *T, u32_t origId)</div><div class="ttdoc">Flatterned element idx of an array or struct by considering stride. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00408">SymbolTableInfo.cpp:408</a></div></div>
|
|
107
108
|
<div class="ttc" id="namespaceSVF_html_a146d286041987860388da3d8bc85cee3"><div class="ttname"><a href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF::ArrayType</a></div><div class="ttdeci">llvm::ArrayType ArrayType</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00102">BasicTypes.h:102</a></div></div>
|
|
108
109
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a6ddf057415f641bd8ad15bded1415776"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a6ddf057415f641bd8ad15bded1415776">SVF::SymbolTableInfo::createBlkObj</a></div><div class="ttdeci">MemObj * createBlkObj(SymID symId)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00372">SymbolTableInfo.cpp:372</a></div></div>
|
|
109
110
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ae577a32079a8e95d0185bfc45d919635"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ae577a32079a8e95d0185bfc45d919635">SVF::SymbolTableInfo::dl</a></div><div class="ttdeci">static DataLayout * dl</div><div class="ttdoc">Data layout on a target machine. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00085">SymbolTableInfo.h:85</a></div></div>
|
|
@@ -191,7 +192,6 @@ $(function() {
|
|
|
191
192
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ac449cd925dc05758c990179c0748e1d5"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ac449cd925dc05758c990179c0748e1d5">SVF::SymbolTableInfo::varargSyms</a></div><div class="ttdeci">FunToIDMapTy & varargSyms()</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00331">SymbolTableInfo.h:331</a></div></div>
|
|
192
193
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a87cc3289dd69e5378487dd9ae2c9e82e"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a87cc3289dd69e5378487dd9ae2c9e82e">SVF::SymbolTableInfo::destroy</a></div><div class="ttdeci">void destroy()</div><div class="ttdoc">Clean up memory. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00292">SymbolTableInfo.cpp:292</a></div></div>
|
|
193
194
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9e85d445e8b7b205134acd3874bba388"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVF::SVFUtil::isConstantData</a></div><div class="ttdeci">bool isConstantData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00394">LLVMUtil.h:394</a></div></div>
|
|
194
|
-
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a6fe89e9d6c18a6aff6dffc1c78d08dff"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a6fe89e9d6c18a6aff6dffc1c78d08dff">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const Type *T, s64_t origId)</div><div class="ttdoc">Flatterned element idx of an array or struct by considering stride. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00408">SymbolTableInfo.cpp:408</a></div></div>
|
|
195
195
|
<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>
|
|
196
196
|
<div class="ttc" id="classSVF_1_1MemObj_html_a011f324448f2796acaff6d2e388582e9"><div class="ttname"><a href="classSVF_1_1MemObj.html#a011f324448f2796acaff6d2e388582e9">SVF::MemObj::refVal</a></div><div class="ttdeci">const Value * refVal</div><div class="ttdoc">The unique value of this symbol/variable. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00414">SymbolTableInfo.h:414</a></div></div>
|
|
197
197
|
<div class="ttc" id="classSVF_1_1MemObj_html_a3ab6f65ffbf6442daac4d3f70f2d3cb1"><div class="ttname"><a href="classSVF_1_1MemObj.html#a3ab6f65ffbf6442daac4d3f70f2d3cb1">SVF::MemObj::getId</a></div><div class="ttdeci">SymID getId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00437">SymbolTableInfo.h:437</a></div></div>
|
|
@@ -209,7 +209,6 @@ $(function() {
|
|
|
209
209
|
<div class="ttc" id="classSVF_1_1StInfo_html_a08cf9420a9c7d4019abee8b42fb578bf"><div class="ttname"><a href="classSVF_1_1StInfo.html#a08cf9420a9c7d4019abee8b42fb578bf">SVF::StInfo::finfo</a></div><div class="ttdeci">std::vector< const Type * > finfo</div><div class="ttdoc">All field infos after flattening a struct. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00506">SymbolTableInfo.h:506</a></div></div>
|
|
210
210
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ada2191cb0e3798ba29aa442dca762290"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ada2191cb0e3798ba29aa442dca762290">SVF::SymbolTableInfo::FunToIDMapTy</a></div><div class="ttdeci">OrderedMap< const Function *, SymID > FunToIDMapTy</div><div class="ttdoc">function to sym id map </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00074">SymbolTableInfo.h:74</a></div></div>
|
|
211
211
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a61bda1c1c52fb765d0027d8141d35c35"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a61bda1c1c52fb765d0027d8141d35c35">SVF::SymbolTableInfo::isConstantObjSym</a></div><div class="ttdeci">bool isConstantObjSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00341">SymbolTableInfo.cpp:341</a></div></div>
|
|
212
|
-
<div class="ttc" id="namespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00080">SVFBasicTypes.h:80</a></div></div>
|
|
213
212
|
<div class="ttc" id="classSVF_1_1StInfo_html_a1a07c2b1415c29d7d70791c6dfe602a3"><div class="ttname"><a href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">SVF::StInfo::setNumOfFieldsAndElems</a></div><div class="ttdeci">void setNumOfFieldsAndElems(u32_t nf, u32_t ne)</div><div class="ttdoc">Set number of fields and elements of an aggrate. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00570">SymbolTableInfo.h:570</a></div></div>
|
|
214
213
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ae6f8a4dbe09ff4756983ffdbed6d0681"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ae6f8a4dbe09ff4756983ffdbed6d0681">SVF::SymbolTableInfo::returnSymMap</a></div><div class="ttdeci">FunToIDMapTy returnSymMap</div><div class="ttdoc">return map </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00089">SymbolTableInfo.h:89</a></div></div>
|
|
215
214
|
<div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a0371b60485199175b011cf3a42b404aa"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a0371b60485199175b011cf3a42b404aa">SVF::SymbolTableInfo::IDToMemMapTy</a></div><div class="ttdeci">OrderedMap< SymID, MemObj * > IDToMemMapTy</div><div class="ttdoc">sym id to memory object map </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00072">SymbolTableInfo.h:72</a></div></div>
|