svf-tools 1.0.312 → 1.0.313

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/CHG_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  4. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +3 -3
  5. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +6 -6
  6. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  8. package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -2
  9. package/SVF-doxygen/html/html/MemModel_8cpp_source.html +8 -52
  10. package/SVF-doxygen/html/html/MemModel_8h_source.html +44 -44
  11. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
  12. package/SVF-doxygen/html/html/Options_8cpp_source.html +1 -2
  13. package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
  14. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
  15. package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/PAGNode_8h_source.html +4 -4
  17. package/SVF-doxygen/html/html/PAG_8cpp_source.html +6 -6
  18. package/SVF-doxygen/html/html/PAG_8h_source.html +4 -4
  19. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +15 -15
  20. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
  21. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
  22. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
  23. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +12 -5
  26. package/SVF-doxygen/html/html/SymbolTableInfo_8h.html +0 -4
  27. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +35 -37
  28. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  29. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  30. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/annotated.html +134 -136
  33. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -2
  34. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +2 -2
  35. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +1 -1
  36. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
  37. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  38. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
  39. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +1 -1
  40. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
  41. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +3 -3
  42. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
  43. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +7 -7
  44. package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +7 -10
  45. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +92 -199
  46. package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
  47. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +8 -10
  48. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +67 -167
  49. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +1 -1
  50. package/SVF-doxygen/html/html/classSVF_1_1Options.html +5 -5
  51. package/SVF-doxygen/html/html/classSVF_1_1PAG.html +12 -12
  52. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +9 -9
  53. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +1 -1
  54. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +16 -16
  55. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +9 -9
  56. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
  57. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
  58. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +78 -73
  59. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +343 -119
  60. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  61. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +4 -4
  62. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  63. package/SVF-doxygen/html/html/classes.html +90 -90
  64. package/SVF-doxygen/html/html/functions_0x7e.html +0 -6
  65. package/SVF-doxygen/html/html/functions_a.html +13 -10
  66. package/SVF-doxygen/html/html/functions_c.html +26 -24
  67. package/SVF-doxygen/html/html/functions_func.html +12 -9
  68. package/SVF-doxygen/html/html/functions_func_0x7e.html +0 -6
  69. package/SVF-doxygen/html/html/functions_func_c.html +13 -13
  70. package/SVF-doxygen/html/html/functions_func_g.html +11 -13
  71. package/SVF-doxygen/html/html/functions_func_i.html +8 -7
  72. package/SVF-doxygen/html/html/functions_func_l.html +2 -8
  73. package/SVF-doxygen/html/html/functions_func_m.html +1 -1
  74. package/SVF-doxygen/html/html/functions_func_v.html +0 -3
  75. package/SVF-doxygen/html/html/functions_g.html +6 -8
  76. package/SVF-doxygen/html/html/functions_i.html +10 -9
  77. package/SVF-doxygen/html/html/functions_l.html +1 -5
  78. package/SVF-doxygen/html/html/functions_m.html +1 -1
  79. package/SVF-doxygen/html/html/functions_o.html +3 -3
  80. package/SVF-doxygen/html/html/functions_p.html +3 -3
  81. package/SVF-doxygen/html/html/functions_s.html +6 -4
  82. package/SVF-doxygen/html/html/functions_t.html +7 -7
  83. package/SVF-doxygen/html/html/functions_u.html +3 -3
  84. package/SVF-doxygen/html/html/functions_v.html +5 -8
  85. package/SVF-doxygen/html/html/functions_vars_l.html +1 -1
  86. package/SVF-doxygen/html/html/hierarchy.html +2 -4
  87. package/SVF-doxygen/html/html/namespaceSVF.html +0 -4
  88. package/SVF-doxygen/html/html/search/all_1.js +3 -2
  89. package/SVF-doxygen/html/html/search/all_10.js +2 -2
  90. package/SVF-doxygen/html/html/search/all_13.js +6 -6
  91. package/SVF-doxygen/html/html/search/all_14.js +5 -5
  92. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  93. package/SVF-doxygen/html/html/search/all_16.js +2 -3
  94. package/SVF-doxygen/html/html/search/all_1b.js +0 -2
  95. package/SVF-doxygen/html/html/search/all_3.js +4 -3
  96. package/SVF-doxygen/html/html/search/all_7.js +2 -2
  97. package/SVF-doxygen/html/html/search/all_9.js +2 -1
  98. package/SVF-doxygen/html/html/search/all_c.js +2 -3
  99. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  100. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  101. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  102. package/SVF-doxygen/html/html/search/classes_9.js +1 -3
  103. package/SVF-doxygen/html/html/search/functions_0.js +3 -2
  104. package/SVF-doxygen/html/html/search/functions_13.js +0 -1
  105. package/SVF-doxygen/html/html/search/functions_16.js +0 -2
  106. package/SVF-doxygen/html/html/search/functions_2.js +4 -3
  107. package/SVF-doxygen/html/html/search/functions_6.js +2 -2
  108. package/SVF-doxygen/html/html/search/functions_8.js +2 -1
  109. package/SVF-doxygen/html/html/search/functions_a.js +1 -3
  110. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  111. package/SVF-doxygen/html/html/search/variables_14.js +2 -2
  112. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  113. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  114. package/SVF-doxygen/html/html/search/variables_e.js +1 -1
  115. package/include/MemoryModel/MemModel.h +5 -21
  116. package/include/SVF-FE/SymbolTableInfo.h +14 -56
  117. package/lib/MemoryModel/MemModel.cpp +10 -436
  118. package/lib/SVF-FE/SymbolTableInfo.cpp +136 -12
  119. package/lib/Util/Options.cpp +0 -8
  120. package/package.json +1 -1
@@ -66,7 +66,7 @@ $(function() {
66
66
  <div class="title">PAGBuilderFromFile.cpp</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="PAGBuilderFromFile_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- PAGBuilderFromFile.cpp -- PAG builder-------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2018&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<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>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * PAGBuilderFromFile.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: 20 Sep. 2018</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: 136884</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PAGBuilderFromFile_8h.html">MemoryModel/PAGBuilderFromFile.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span> <span class="comment">// for PAGBuilderFromFile</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span> <span class="comment">// for PAGBuilderFromFile</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span> <span class="comment">// for PAGBuilderFromFile</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40"> 38</a></span>&#160;<span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a> = 100000;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * You can build a PAG from a file written by yourself</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * The file should follow the format:</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * Node: nodeID Nodetype</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * Edge: nodeID edgetype NodeID Offset</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * like:</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">5 o</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">6 v</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">7 v</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">8 v</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">9 v</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">5 addr 6 0</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">6 gep 7 4</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">7 copy 8 0</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">6 store 8 0</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">8 load 9 0</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1PAGBuilderFromFile.html#abd611feba62efb89283d2c07057e1558"> 59</a></span>&#160;<a class="code" href="classSVF_1_1PAG.html">PAG</a>* PAGBuilderFromFile::build()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">string</span> line;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; ifstream myfile(file.c_str());</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (myfile.is_open())</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">while</span> (myfile.good())</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; getline(myfile, line);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> token_count = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">string</span> tmps;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; istringstream ss(line);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">while</span> (ss.good())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; ss &gt;&gt; tmps;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; token_count++;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (token_count == 0)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 2)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">string</span> nodetype;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; istringstream ss(line);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; ss &gt;&gt; nodeId;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; ss &gt;&gt; nodetype;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;reading node :&quot;</span> &lt;&lt; nodeId &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">&quot;v&quot;</span>)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; pag-&gt;addDummyValNode(nodeId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">&quot;o&quot;</span>)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = pag-&gt;addDummyMemObj(nodeId, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; pag-&gt;addFIObjNode(mem);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;format not support, pls specify node type&quot;</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// do consider gep edge</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 4)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeSrc;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeDst;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offsetOrCSId;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">string</span> edge;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; istringstream ss(line);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; ss &gt;&gt; nodeSrc;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; ss &gt;&gt; edge;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; ss &gt;&gt; nodeDst;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; ss &gt;&gt; offsetOrCSId;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;reading edge :&quot;</span> &lt;&lt; nodeSrc &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; edge &lt;&lt; <span class="stringliteral">&quot; &quot;</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; &lt;&lt; nodeDst &lt;&lt; <span class="stringliteral">&quot; offsetOrCSId=&quot;</span> &lt;&lt; offsetOrCSId &lt;&lt; <span class="stringliteral">&quot; \n&quot;</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; addEdge(nodeSrc, nodeDst, offsetOrCSId, edge);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (!line.empty())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;format not supported, token count = &quot;</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; &lt;&lt; token_count &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;format not supported&quot;</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; myfile.close();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Unable to open file\n&quot;</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lower_bound = <a class="code" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; lower_bound; i++)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; pag-&gt;incNodeNum();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; pag-&gt;setNodeNumAfterPAGBuild(pag-&gt;getTotalNodeNum());</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> pag;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1PAGBuilderFromFile.html#ac6bfe0ed1a75be19b3f10db9a95952ef"> 146</a></span>&#160;<span class="keywordtype">void</span> PAGBuilderFromFile::addEdge(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcID, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstID,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offsetOrCSId, std::string edge)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">//check whether these two nodes available</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* srcNode = pag-&gt;getPAGNode(srcID);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* dstNode = pag-&gt;getPAGNode(dstID);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ValPN&gt;(dstNode) &amp;&amp; <span class="stringliteral">&quot;dst not an value node?&quot;</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(edge==<span class="stringliteral">&quot;addr&quot;</span>)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ObjPN&gt;(srcNode) &amp;&amp; <span class="stringliteral">&quot;src not an value node?&quot;</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!SVFUtil::isa&lt;ObjPN&gt;(srcNode) &amp;&amp; <span class="stringliteral">&quot;src not an object node?&quot;</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;addr&quot;</span>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; pag-&gt;addAddrPE(srcID, dstID);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;copy&quot;</span>)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; pag-&gt;addCopyPE(srcID, dstID);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;load&quot;</span>)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; pag-&gt;addLoadPE(srcID, dstID);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;store&quot;</span>)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; pag-&gt;addStorePE(srcID, dstID, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;gep&quot;</span>)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; pag-&gt;addNormalGepPE(srcID, dstID, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(offsetOrCSId));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;variant-gep&quot;</span>)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; pag-&gt;addVariantGepPE(srcID, dstID);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;call&quot;</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; pag-&gt;addEdge(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;ret&quot;</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; pag-&gt;addEdge(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;cmp&quot;</span>)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; pag-&gt;addCmpPE(srcID, dstID);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;binary-op&quot;</span>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; pag-&gt;addBinaryOPPE(srcID, dstID);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;unary-op&quot;</span>)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; pag-&gt;addUnaryOPPE(srcID, dstID);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;format not support, can not create such edge&quot;</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00284">MemModel.h:284</a></div></div>
69
+ <a href="PAGBuilderFromFile_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- PAGBuilderFromFile.cpp -- PAG builder-------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2018&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<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>&#160;<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>&#160;<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>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<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>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * PAGBuilderFromFile.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: 20 Sep. 2018</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: 136884</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PAGBuilderFromFile_8h.html">MemoryModel/PAGBuilderFromFile.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span> <span class="comment">// for PAGBuilderFromFile</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span> <span class="comment">// for PAGBuilderFromFile</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span> <span class="comment">// for PAGBuilderFromFile</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacestd.html">std</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40"> 38</a></span>&#160;<span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a> = 100000;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> * You can build a PAG from a file written by yourself</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * The file should follow the format:</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> * Node: nodeID Nodetype</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> * Edge: nodeID edgetype NodeID Offset</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> * like:</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">5 o</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">6 v</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">7 v</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">8 v</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">9 v</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">5 addr 6 0</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">6 gep 7 4</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">7 copy 8 0</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">6 store 8 0</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">8 load 9 0</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1PAGBuilderFromFile.html#abd611feba62efb89283d2c07057e1558"> 59</a></span>&#160;<a class="code" href="classSVF_1_1PAG.html">PAG</a>* PAGBuilderFromFile::build()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">string</span> line;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; ifstream myfile(file.c_str());</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span> (myfile.is_open())</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">while</span> (myfile.good())</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; getline(myfile, line);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> token_count = 0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">string</span> tmps;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; istringstream ss(line);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">while</span> (ss.good())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; ss &gt;&gt; tmps;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; token_count++;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span> (token_count == 0)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 2)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">string</span> nodetype;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; istringstream ss(line);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; ss &gt;&gt; nodeId;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; ss &gt;&gt; nodetype;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;reading node :&quot;</span> &lt;&lt; nodeId &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">&quot;v&quot;</span>)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; pag-&gt;addDummyValNode(nodeId);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nodetype == <span class="stringliteral">&quot;o&quot;</span>)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a>* mem = pag-&gt;addDummyMemObj(nodeId, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; pag-&gt;addFIObjNode(mem);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;format not support, pls specify node type&quot;</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// do consider gep edge</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token_count == 4)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeSrc;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeDst;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offsetOrCSId;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">string</span> edge;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; istringstream ss(line);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; ss &gt;&gt; nodeSrc;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; ss &gt;&gt; edge;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; ss &gt;&gt; nodeDst;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; ss &gt;&gt; offsetOrCSId;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;reading edge :&quot;</span> &lt;&lt; nodeSrc &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; edge &lt;&lt; <span class="stringliteral">&quot; &quot;</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; &lt;&lt; nodeDst &lt;&lt; <span class="stringliteral">&quot; offsetOrCSId=&quot;</span> &lt;&lt; offsetOrCSId &lt;&lt; <span class="stringliteral">&quot; \n&quot;</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; addEdge(nodeSrc, nodeDst, offsetOrCSId, edge);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (!line.empty())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;format not supported, token count = &quot;</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; &lt;&lt; token_count &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;format not supported&quot;</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; myfile.close();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">outs</a>() &lt;&lt; <span class="stringliteral">&quot;Unable to open file\n&quot;</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lower_bound = <a class="code" href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; lower_bound; i++)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; pag-&gt;incNodeNum();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; pag-&gt;setNodeNumAfterPAGBuild(pag-&gt;getTotalNodeNum());</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> pag;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1PAGBuilderFromFile.html#ac6bfe0ed1a75be19b3f10db9a95952ef"> 146</a></span>&#160;<span class="keywordtype">void</span> PAGBuilderFromFile::addEdge(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> srcID, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstID,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> offsetOrCSId, std::string edge)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">//check whether these two nodes available</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* srcNode = pag-&gt;getPAGNode(srcID);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="classSVF_1_1PAGNode.html">PAGNode</a>* dstNode = pag-&gt;getPAGNode(dstID);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ValPN&gt;(dstNode) &amp;&amp; <span class="stringliteral">&quot;dst not an value node?&quot;</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(edge==<span class="stringliteral">&quot;addr&quot;</span>)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(SVFUtil::isa&lt;ObjPN&gt;(srcNode) &amp;&amp; <span class="stringliteral">&quot;src not an value node?&quot;</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!SVFUtil::isa&lt;ObjPN&gt;(srcNode) &amp;&amp; <span class="stringliteral">&quot;src not an object node?&quot;</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;addr&quot;</span>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; pag-&gt;addAddrPE(srcID, dstID);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;copy&quot;</span>)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; pag-&gt;addCopyPE(srcID, dstID);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;load&quot;</span>)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; pag-&gt;addLoadPE(srcID, dstID);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;store&quot;</span>)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; pag-&gt;addStorePE(srcID, dstID, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;gep&quot;</span>)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; pag-&gt;addNormalGepPE(srcID, dstID, <a class="code" href="classSVF_1_1LocationSet.html">LocationSet</a>(offsetOrCSId));</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;variant-gep&quot;</span>)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; pag-&gt;addVariantGepPE(srcID, dstID);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;call&quot;</span>)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; pag-&gt;addEdge(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;ret&quot;</span>)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; pag-&gt;addEdge(srcNode, dstNode, <span class="keyword">new</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a>(srcNode, dstNode, <span class="keyword">nullptr</span>));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;cmp&quot;</span>)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; pag-&gt;addCmpPE(srcID, dstID);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;binary-op&quot;</span>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; pag-&gt;addBinaryOPPE(srcID, dstID);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (edge == <span class="stringliteral">&quot;unary-op&quot;</span>)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; pag-&gt;addUnaryOPPE(srcID, dstID);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;format not support, can not create such edge&quot;</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00278">MemModel.h:278</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00613">PAGEdge.h:613</a></div></div>
71
71
  <div class="ttc" id="PAGBuilderFromFile_8cpp_html_a1af3947dbaf1ad4364bc4818f70ead40"><div class="ttname"><a href="PAGBuilderFromFile_8cpp.html#a1af3947dbaf1ad4364bc4818f70ead40">gepNodeNumIndex</a></div><div class="ttdeci">static u32_t gepNodeNumIndex</div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilderFromFile_8cpp_source.html#l00038">PAGBuilderFromFile.cpp:38</a></div></div>
72
72
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00018">MTAResultValidator.h:18</a></div></div>
@@ -190,7 +190,7 @@ $(function() {
190
190
  <div class="ttc" id="namespaceSVF_html_a9868a60a9cc7b78965a23b5034100f88"><div class="ttname"><a href="namespaceSVF.html#a9868a60a9cc7b78965a23b5034100f88">SVF::FreezeInst</a></div><div class="ttdeci">llvm::FreezeInst FreezeInst</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00182">BasicTypes.h:182</a></div></div>
191
191
  <div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00131">BasicTypes.h:131</a></div></div>
192
192
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ad3471260b66bdd7e6b790ad2a94fe7ce"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce">SVF::SVFUtil::getTaskDataAtHareParForSite</a></div><div class="ttdeci">const Value * getTaskDataAtHareParForSite(const CallSite cs)</div><div class="ttdoc">Return the task data argument of the parallel_for rountine. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00378">LLVMUtil.h:378</a></div></div>
193
- <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#l00725">SymbolTableInfo.cpp:725</a></div></div>
193
+ <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#l00848">SymbolTableInfo.cpp:848</a></div></div>
194
194
  <div class="ttc" id="classSVF_1_1SVFModule_html_a8a34164634d6ad9a7b76175907c8c44b"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a8a34164634d6ad9a7b76175907c8c44b">SVF::SVFModule::global_end</a></div><div class="ttdeci">global_iterator global_end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00177">SVFModule.h:177</a></div></div>
195
195
  <div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
196
196
  <div class="ttc" id="classSVF_1_1CopyPE_html"><div class="ttname"><a href="classSVF_1_1CopyPE.html">SVF::CopyPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00220">PAGEdge.h:220</a></div></div>
@@ -74,7 +74,7 @@ $(function() {
74
74
  <div class="ttc" id="classSVF_1_1GepObjPN_html_aa3ab0c1d25fa1192b59892ebfef0b9af"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#aa3ab0c1d25fa1192b59892ebfef0b9af">SVF::GepObjPN::classof</a></div><div class="ttdeci">static bool classof(const PAGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00472">PAGNode.h:472</a></div></div>
75
75
  <div class="ttc" id="classSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1VarArgPN_html_a7f873a8015eb6a6b30530a7e5a69018d"><div class="ttname"><a href="classSVF_1_1VarArgPN.html#a7f873a8015eb6a6b30530a7e5a69018d">SVF::VarArgPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00630">PAGNode.h:630</a></div></div>
77
- <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00284">MemModel.h:284</a></div></div>
77
+ <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00278">MemModel.h:278</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1GepValPN_html_a41d083e2ed08dd926a8228df5c42a4d7"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a41d083e2ed08dd926a8228df5c42a4d7">SVF::GepValPN::gepValType</a></div><div class="ttdeci">const Type * gepValType</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00392">PAGNode.h:392</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6ad1f40a044008babd44bff30af846550c"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6ad1f40a044008babd44bff30af846550c">SVF::PAGEdge::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00056">PAGEdge.h:56</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1PAGNode_html_a2a9a5feb62138307b0b6f901cb5e0e0f"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a2a9a5feb62138307b0b6f901cb5e0e0f">SVF::PAGNode::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00046">PAG.cpp:46</a></div></div>
@@ -101,7 +101,7 @@ $(function() {
101
101
  <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
102
102
  <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_a2239f9e2aaa61bed50d0c33d3ad8e0ea"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#a2239f9e2aaa61bed50d0c33d3ad8e0ea">SVF::CloneDummyObjPN::getValueName</a></div><div class="ttdeci">const std::string getValueName() const</div><div class="ttdoc">Return name of this node. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00761">PAGNode.h:761</a></div></div>
103
103
  <div class="ttc" id="classSVF_1_1GepValPN_html_a9d9febd06c0802c33eab574458e9e771"><div class="ttname"><a href="classSVF_1_1GepValPN.html#a9d9febd06c0802c33eab574458e9e771">SVF::GepValPN::classof</a></div><div class="ttdeci">static bool classof(const ValPN *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00402">PAGNode.h:402</a></div></div>
104
- <div class="ttc" id="classSVF_1_1MemObj_html_aa4fa7a1b86d66692ffffeaee0e187216"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa4fa7a1b86d66692ffffeaee0e187216">SVF::MemObj::getType</a></div><div class="ttdeci">const llvm::Type * getType() const</div><div class="ttdoc">Get obj type. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8cpp_source.html#l00278">MemModel.cpp:278</a></div></div>
104
+ <div class="ttc" id="classSVF_1_1MemObj_html_aa4fa7a1b86d66692ffffeaee0e187216"><div class="ttname"><a href="classSVF_1_1MemObj.html#aa4fa7a1b86d66692ffffeaee0e187216">SVF::MemObj::getType</a></div><div class="ttdeci">const Type * getType() const</div><div class="ttdoc">Get obj type. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8cpp_source.html#l00152">MemModel.cpp:152</a></div></div>
105
105
  <div class="ttc" id="classSVF_1_1PAGNode_html_a5a5712e845d05c2eaef385113c5bce58"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a5a5712e845d05c2eaef385113c5bce58">SVF::PAGNode::getIncomingEdges</a></div><div class="ttdeci">PAGEdge::PAGEdgeSetTy &amp; getIncomingEdges(PAGEdge::PEDGEK kind)</div><div class="ttdoc">Get incoming PAG edges. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00161">PAGNode.h:161</a></div></div>
106
106
  <div class="ttc" id="classSVF_1_1RetPN_html_ac551c1aaf9ec3cb77814aa4664d61a23"><div class="ttname"><a href="classSVF_1_1RetPN.html#ac551c1aaf9ec3cb77814aa4664d61a23">SVF::RetPN::RetPN</a></div><div class="ttdeci">RetPN(const SVFFunction *val, NodeID i)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00598">PAGNode.h:598</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1ObjPN_html_a45bdaec2136ff3b1d6744de87e7ead87"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a45bdaec2136ff3b1d6744de87e7ead87">SVF::ObjPN::classof</a></div><div class="ttdeci">static bool classof(const PAGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00337">PAGNode.h:337</a></div></div>
@@ -167,7 +167,7 @@ $(function() {
167
167
  <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_a19df43069674c61fa83b3799290e7b0b"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#a19df43069674c61fa83b3799290e7b0b">SVF::CloneDummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const PAGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00744">PAGNode.h:744</a></div></div>
168
168
  <div class="ttc" id="classSVF_1_1CloneDummyObjPN_html_a41abb24caedfd04c87a66f5899419121"><div class="ttname"><a href="classSVF_1_1CloneDummyObjPN.html#a41abb24caedfd04c87a66f5899419121">SVF::CloneDummyObjPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00748">PAGNode.h:748</a></div></div>
169
169
  <div class="ttc" id="classSVF_1_1PAGNode_html_a5cc5327ba68c3f11ed4bef47d89c3dfd"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a5cc5327ba68c3f11ed4bef47d89c3dfd">SVF::PAGNode::PNODEK</a></div><div class="ttdeci">PNODEK</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00060">PAGNode.h:60</a></div></div>
170
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00088">SymbolTableInfo.cpp:88</a></div></div>
170
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00214">SymbolTableInfo.cpp:214</a></div></div>
171
171
  <div class="ttc" id="classSVF_1_1ObjPN_html_a5e7e7b1a2d78146e50ec36d99b0a3608"><div class="ttname"><a href="classSVF_1_1ObjPN.html#a5e7e7b1a2d78146e50ec36d99b0a3608">SVF::ObjPN::classof</a></div><div class="ttdeci">static bool classof(const ObjPN *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00333">PAGNode.h:333</a></div></div>
172
172
  <div class="ttc" id="classSVF_1_1FIObjPN_html_af7c4e765ec13f3a368d155bd27667832"><div class="ttname"><a href="classSVF_1_1FIObjPN.html#af7c4e765ec13f3a368d155bd27667832">SVF::FIObjPN::classof</a></div><div class="ttdeci">static bool classof(const ObjPN *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00540">PAGNode.h:540</a></div></div>
173
173
  <div class="ttc" id="classSVF_1_1ObjPN_html"><div class="ttname"><a href="classSVF_1_1ObjPN.html">SVF::ObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00320">PAGNode.h:320</a></div></div>
@@ -185,7 +185,7 @@ $(function() {
185
185
  <div class="ttc" id="classSVF_1_1RetPN_html"><div class="ttname"><a href="classSVF_1_1RetPN.html">SVF::RetPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00577">PAGNode.h:577</a></div></div>
186
186
  <div class="ttc" id="classSVF_1_1DummyObjPN_html"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html">SVF::DummyObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00696">PAGNode.h:696</a></div></div>
187
187
  <div class="ttc" id="classSVF_1_1DummyValPN_html_a62c8bdc6ebc3626f6cd7e743f2475ae0"><div class="ttname"><a href="classSVF_1_1DummyValPN.html#a62c8bdc6ebc3626f6cd7e743f2475ae0">SVF::DummyValPN::classof</a></div><div class="ttdeci">static bool classof(const GenericPAGNodeTy *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00671">PAGNode.h:671</a></div></div>
188
- <div class="ttc" id="classSVF_1_1MemObj_html_ad7f7de744715c3acaf3d48822865c87b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">SVF::MemObj::getSymId</a></div><div class="ttdeci">SymID getSymId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00331">MemModel.h:331</a></div></div>
188
+ <div class="ttc" id="classSVF_1_1MemObj_html_ad7f7de744715c3acaf3d48822865c87b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">SVF::MemObj::getSymId</a></div><div class="ttdeci">SymID getSymId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00315">MemModel.h:315</a></div></div>
189
189
  <div class="ttc" id="classSVF_1_1PAGNode_html_a3db180378695da64a50a83bd8d8a7e47"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a3db180378695da64a50a83bd8d8a7e47">SVF::PAGNode::getOutgoingEdgesBegin</a></div><div class="ttdeci">PAGEdge::PAGEdgeSetTy::iterator getOutgoingEdgesBegin(PAGEdge::PEDGEK kind) const</div><div class="ttdoc">Get outgoing PAGEdge iterator. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00220">PAGNode.h:220</a></div></div>
190
190
  <div class="ttc" id="classSVF_1_1CloneFIObjPN_html_ac8338c8ac08fbe691908f731dbde5db0"><div class="ttname"><a href="classSVF_1_1CloneFIObjPN.html#ac8338c8ac08fbe691908f731dbde5db0">SVF::CloneFIObjPN::classof</a></div><div class="ttdeci">static bool classof(const PAGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00816">PAGNode.h:816</a></div></div>
191
191
  <div class="ttc" id="classSVF_1_1GepObjPN_html_a685d6a3464890ba08d8d018ce2e8e3ff"><div class="ttname"><a href="classSVF_1_1GepObjPN.html#a685d6a3464890ba08d8d018ce2e8e3ff">SVF::GepObjPN::getType</a></div><div class="ttdeci">virtual const llvm::Type * getType() const</div><div class="ttdoc">Return the type of this gep object. </div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00510">PAGNode.h:510</a></div></div>
@@ -73,7 +73,7 @@ $(function() {
73
73
  <div class="ttc" id="classSVF_1_1GenericEdge_html_abe8525c542def8162b094c169a01993b"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#abe8525c542def8162b094c169a01993b">SVF::GenericEdge::getEdgeKind</a></div><div class="ttdeci">GEdgeKind getEdgeKind() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00081">GenericGraph.h:81</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a29cab1426b0000bd87c026ab8c9979c0"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a29cab1426b0000bd87c026ab8c9979c0">SVF::GenericGraph::getTotalEdgeNum</a></div><div class="ttdeci">u32_t getTotalEdgeNum() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00418">GenericGraph.h:418</a></div></div>
75
75
  <div class="ttc" id="util_8h_html_a43b6ea6be735bb828bc062c70cadeff8"><div class="ttname"><a href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a></div><div class="ttdeci">VOID_OR_INT exit()</div></div>
76
- <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00284">MemModel.h:284</a></div></div>
76
+ <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00278">MemModel.h:278</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6ad1f40a044008babd44bff30af846550c"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6ad1f40a044008babd44bff30af846550c">SVF::PAGEdge::VariantGep</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00056">PAGEdge.h:56</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1PAG_html_a5f49b7da110a626ed6605d1f108dfa25"><div class="ttname"><a href="classSVF_1_1PAG.html#a5f49b7da110a626ed6605d1f108dfa25">SVF::PAG::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdoc">Get PAG Node according to LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00547">PAG.h:547</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00613">PAGEdge.h:613</a></div></div>
@@ -88,7 +88,7 @@ $(function() {
88
88
  <div class="ttc" id="classSVF_1_1VarArgPN_html_a617077176f0ea586a0cf9a4a1034e99d"><div class="ttname"><a href="classSVF_1_1VarArgPN.html#a617077176f0ea586a0cf9a4a1034e99d">SVF::VarArgPN::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00158">PAG.cpp:158</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1NormalGepPE_html_ac83263efe5e7f66dc3d9ed496c099a16"><div class="ttname"><a href="classSVF_1_1NormalGepPE.html#ac83263efe5e7f66dc3d9ed496c099a16">SVF::NormalGepPE::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00295">PAG.cpp:295</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1PAG_html_a39028e2fb42dec9e0b25a48400948d48"><div class="ttname"><a href="classSVF_1_1PAG.html#a39028e2fb42dec9e0b25a48400948d48">SVF::PAG::addGepObjNode</a></div><div class="ttdeci">NodeID addGepObjNode(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Add a field obj node, this method can only invoked by getGepObjNode. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00697">PAG.cpp:697</a></div></div>
91
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a480a7565dcb5d9a94f4b0ffb44b127ee"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">SVF::SymbolTableInfo::getModulusOffset</a></div><div class="ttdeci">virtual LocationSet getModulusOffset(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Given an offset from a Gep Instruction, return it modulus offset by considering memory layout...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00385">SymbolTableInfo.cpp:385</a></div></div>
91
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a480a7565dcb5d9a94f4b0ffb44b127ee"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a480a7565dcb5d9a94f4b0ffb44b127ee">SVF::SymbolTableInfo::getModulusOffset</a></div><div class="ttdeci">virtual LocationSet getModulusOffset(const MemObj *obj, const LocationSet &amp;ls)</div><div class="ttdoc">Given an offset from a Gep Instruction, return it modulus offset by considering memory layout...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00508">SymbolTableInfo.cpp:508</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1CopyPE_html_ac1232ca5d43be2c7f68ed86d9e158c72"><div class="ttname"><a href="classSVF_1_1CopyPE.html#ac1232ca5d43be2c7f68ed86d9e158c72">SVF::CopyPE::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00218">PAG.cpp:218</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1PAGNode_html_a5cc5327ba68c3f11ed4bef47d89c3dfdad90c3ebe36773e94bcc116ab221a134b"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a5cc5327ba68c3f11ed4bef47d89c3dfdad90c3ebe36773e94bcc116ab221a134b">SVF::PAGNode::DummyObjNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00070">PAGNode.h:70</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1GenericNode_html_afc8b5f86d7795b6a0dfc0687d942d79b"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b">SVF::GenericNode::getInEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getInEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00182">GenericGraph.h:182</a></div></div>
@@ -126,7 +126,7 @@ $(function() {
126
126
  <div class="ttc" id="structllvm_1_1DOTGraphTraits_3_01PAG_01_5_01_4_html_a0a1838869e7fa447739a594e549c983f"><div class="ttname"><a href="structllvm_1_1DOTGraphTraits_3_01PAG_01_5_01_4.html#a0a1838869e7fa447739a594e549c983f">llvm::DOTGraphTraits&lt; PAG * &gt;::getNodeLabel</a></div><div class="ttdeci">static std::string getNodeLabel(PAGNode *node, PAG *)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l01131">PAG.cpp:1131</a></div></div>
127
127
  <div class="ttc" id="classSVF_1_1PAG_html_ab867cf7056089872daf2b27eb7ff1a8a"><div class="ttname"><a href="classSVF_1_1PAG.html#ab867cf7056089872daf2b27eb7ff1a8a">SVF::PAG::addObjNode</a></div><div class="ttdeci">NodeID addObjNode(const Value *val, NodeID i)</div><div class="ttdoc">Add a memory obj node. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00752">PAG.h:752</a></div></div>
128
128
  <div class="ttc" id="classSVF_1_1ICFGBuilder_html"><div class="ttname"><a href="classSVF_1_1ICFGBuilder.html">SVF::ICFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGBuilder_8h_source.html#l00039">ICFGBuilder.h:39</a></div></div>
129
- <div class="ttc" id="classSVF_1_1MemObj_html_a9d50a00ff608df21f50b3b2823128901"><div class="ttname"><a href="classSVF_1_1MemObj.html#a9d50a00ff608df21f50b3b2823128901">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00337">MemModel.h:337</a></div></div>
129
+ <div class="ttc" id="classSVF_1_1MemObj_html_a9d50a00ff608df21f50b3b2823128901"><div class="ttname"><a href="classSVF_1_1MemObj.html#a9d50a00ff608df21f50b3b2823128901">SVF::MemObj::isFieldInsensitive</a></div><div class="ttdeci">bool isFieldInsensitive() const</div><div class="ttdoc">Return true if its field limit is 0. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00321">MemModel.h:321</a></div></div>
130
130
  <div class="ttc" id="classSVF_1_1PAGEdge_html_a79080505b4744aa8806b55215ac2b0f6a8ec550e2cbb5ba5847a0eb0760be165b"><div class="ttname"><a href="classSVF_1_1PAGEdge.html#a79080505b4744aa8806b55215ac2b0f6a8ec550e2cbb5ba5847a0eb0760be165b">SVF::PAGEdge::ThreadJoin</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00056">PAGEdge.h:56</a></div></div>
131
131
  <div class="ttc" id="classSVF_1_1PAG_html"><div class="ttname"><a href="classSVF_1_1PAG.html">SVF::PAG</a></div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00047">PAG.h:47</a></div></div>
132
132
  <div class="ttc" id="classSVF_1_1PAG_html_abe896f8fd3c8adc60bbb1a23862da8df"><div class="ttname"><a href="classSVF_1_1PAG.html#abe896f8fd3c8adc60bbb1a23862da8df">SVF::PAG::memToFieldsMap</a></div><div class="ttdeci">MemObjToFieldsMap memToFieldsMap</div><div class="ttdoc">Map a mem object id to all its fields. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00091">PAG.h:91</a></div></div>
@@ -172,7 +172,7 @@ $(function() {
172
172
  <div class="ttc" id="classSVF_1_1PAG_html_ab2a0e681184accace607464278525cba"><div class="ttname"><a href="classSVF_1_1PAG.html#ab2a0e681184accace607464278525cba">SVF::PAG::hasLabeledEdge</a></div><div class="ttdeci">PAGEdge * hasLabeledEdge(PAGNode *src, PAGNode *dst, PAGEdge::PEDGEK kind, const ICFGNode *cs)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00741">PAG.cpp:741</a></div></div>
173
173
  <div class="ttc" id="classSVF_1_1VariantGepPE_html"><div class="ttname"><a href="classSVF_1_1VariantGepPE.html">SVF::VariantGepPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00522">PAGEdge.h:522</a></div></div>
174
174
  <div class="ttc" id="classSVF_1_1DummyObjPN_html_a1f355f6eeeaaba782d24ba3db48adea4"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html#a1f355f6eeeaaba782d24ba3db48adea4">SVF::DummyObjPN::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00172">PAG.cpp:172</a></div></div>
175
- <div class="ttc" id="classSVF_1_1MemObj_html_ae952c8b6b92c6cbef9494a83b411a60f"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae952c8b6b92c6cbef9494a83b411a60f">SVF::MemObj::getRefVal</a></div><div class="ttdeci">const Value * getRefVal() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00325">MemModel.h:325</a></div></div>
175
+ <div class="ttc" id="classSVF_1_1MemObj_html_ae952c8b6b92c6cbef9494a83b411a60f"><div class="ttname"><a href="classSVF_1_1MemObj.html#ae952c8b6b92c6cbef9494a83b411a60f">SVF::MemObj::getRefVal</a></div><div class="ttdeci">const Value * getRefVal() const</div><div class="ttdoc">Get the reference value to this object. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00309">MemModel.h:309</a></div></div>
176
176
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
177
177
  <div class="ttc" id="classSVF_1_1Options_html_a8eba08052f7af57b762155a58844480c"><div class="ttname"><a href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options::PAGDotGraphShorter</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PAGDotGraphShorter</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00134">Options.h:134</a></div></div>
178
178
  <div class="ttc" id="classSVF_1_1PAG_html_a19c4e63ab6129d4e7aeae8b280bb057b"><div class="ttname"><a href="classSVF_1_1PAG.html#a19c4e63ab6129d4e7aeae8b280bb057b">SVF::PAG::getFieldsAfterCollapse</a></div><div class="ttdeci">NodeBS getFieldsAfterCollapse(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00800">PAG.cpp:800</a></div></div>
@@ -203,7 +203,7 @@ $(function() {
203
203
  <div class="ttc" id="classSVF_1_1TDJoinPE_html_accac29adba7ca4883ae161c223a1703d"><div class="ttname"><a href="classSVF_1_1TDJoinPE.html#accac29adba7ca4883ae161c223a1703d">SVF::TDJoinPE::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00350">PAG.cpp:350</a></div></div>
204
204
  <div class="ttc" id="PAG_8h_html"><div class="ttname"><a href="PAG_8h.html">PAG.h</a></div></div>
205
205
  <div class="ttc" id="classSVF_1_1PAGNode_html_a5cc5327ba68c3f11ed4bef47d89c3dfd"><div class="ttname"><a href="classSVF_1_1PAGNode.html#a5cc5327ba68c3f11ed4bef47d89c3dfd">SVF::PAGNode::PNODEK</a></div><div class="ttdeci">PNODEK</div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00060">PAGNode.h:60</a></div></div>
206
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00088">SymbolTableInfo.cpp:88</a></div></div>
206
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00214">SymbolTableInfo.cpp:214</a></div></div>
207
207
  <div class="ttc" id="classSVF_1_1CmpPE_html"><div class="ttname"><a href="classSVF_1_1CmpPE.html">SVF::CmpPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00255">PAGEdge.h:255</a></div></div>
208
208
  <div class="ttc" id="classSVF_1_1ObjPN_html"><div class="ttname"><a href="classSVF_1_1ObjPN.html">SVF::ObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00320">PAGNode.h:320</a></div></div>
209
209
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a7486fd8e5350879ed1cbd835c0d4e191"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">SVF::SVFUtil::value2String</a></div><div class="ttdeci">const std::string value2String(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00388">SVFUtil.cpp:388</a></div></div>
@@ -226,7 +226,7 @@ $(function() {
226
226
  <div class="ttc" id="classSVF_1_1LoadPE_html_a827b665b667174b9aa5fbde846207d5f"><div class="ttname"><a href="classSVF_1_1LoadPE.html#a827b665b667174b9aa5fbde846207d5f">SVF::LoadPE::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l00262">PAG.cpp:262</a></div></div>
227
227
  <div class="ttc" id="classSVF_1_1PAG_html_aa18a51570a397eabffdd613fdb15b4ac"><div class="ttname"><a href="classSVF_1_1PAG.html#aa18a51570a397eabffdd613fdb15b4ac">SVF::PAG::getGraphName</a></div><div class="ttdeci">std::string getGraphName() const</div><div class="ttdoc">Return graph name. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00891">PAG.h:891</a></div></div>
228
228
  <div class="ttc" id="classSVF_1_1PAG_html_a74f9e22acb40bf952c00168a221c0b00"><div class="ttname"><a href="classSVF_1_1PAG.html#a74f9e22acb40bf952c00168a221c0b00">SVF::PAG::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdoc">Get LLVM Module. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00195">PAG.h:195</a></div></div>
229
- <div class="ttc" id="classSVF_1_1MemObj_html_ad7f7de744715c3acaf3d48822865c87b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">SVF::MemObj::getSymId</a></div><div class="ttdeci">SymID getSymId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00331">MemModel.h:331</a></div></div>
229
+ <div class="ttc" id="classSVF_1_1MemObj_html_ad7f7de744715c3acaf3d48822865c87b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">SVF::MemObj::getSymId</a></div><div class="ttdeci">SymID getSymId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00315">MemModel.h:315</a></div></div>
230
230
  <div class="ttc" id="classSVF_1_1Options_html_a8dc477d83a142a62b63207f6f240f224"><div class="ttname"><a href="classSVF_1_1Options.html#a8dc477d83a142a62b63207f6f240f224">SVF::Options::FirstFieldEqBase</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; FirstFieldEqBase</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00113">Options.h:113</a></div></div>
231
231
  <div class="ttc" id="classSVF_1_1PAG_html_a42b57f4523f30b0f739b1285ea744766"><div class="ttname"><a href="classSVF_1_1PAG.html#a42b57f4523f30b0f739b1285ea744766">SVF::PAG::valueToEdgeMap</a></div><div class="ttdeci">ValueToEdgeMap valueToEdgeMap</div><div class="ttdoc">Map llvm::Values to all corresponding PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00101">PAG.h:101</a></div></div>
232
232
  <div class="ttc" id="classSVF_1_1PAG_html_ab4326448a536de1c8c1513fcf6d45aa2"><div class="ttname"><a href="classSVF_1_1PAG.html#ab4326448a536de1c8c1513fcf6d45aa2">SVF::PAG::dump</a></div><div class="ttdeci">void dump(std::string name)</div><div class="ttdoc">Dump PAG. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8cpp_source.html#l01076">PAG.cpp:1076</a></div></div>
@@ -78,7 +78,7 @@ $(function() {
78
78
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_acbcd5035240fab0b809c3334a27159ae"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#acbcd5035240fab0b809c3334a27159ae">SVF::SymbolTableInfo::hasValSym</a></div><div class="ttdeci">bool hasValSym(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00275">SymbolTableInfo.h:275</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_ad9cdb21e20182f3bc95f04bbb97712f3"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#ad9cdb21e20182f3bc95f04bbb97712f3">SVF::SymbolTableInfo::isBlkObj</a></div><div class="ttdeci">static bool isBlkObj(NodeID id)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00192">SymbolTableInfo.h:192</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1PAG_html_afaeb005000260534f63afd4b35d7a58e"><div class="ttname"><a href="classSVF_1_1PAG.html#afaeb005000260534f63afd4b35d7a58e">SVF::PAG::getUnaryPEs</a></div><div class="ttdeci">const UnaryOPList &amp; getUnaryPEs(const PAGNode *node) const</div><div class="ttdoc">Get the corresponding UnaryPEs. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00314">PAG.h:314</a></div></div>
81
- <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00284">MemModel.h:284</a></div></div>
81
+ <div class="ttc" id="classSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00278">MemModel.h:278</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1PAG_html_ac606fa72b7f1d0b4901519f6bba02fc7"><div class="ttname"><a href="classSVF_1_1PAG.html#ac606fa72b7f1d0b4901519f6bba02fc7">SVF::PAG::releasePAG</a></div><div class="ttdeci">static void releasePAG()</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00170">PAG.h:170</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1PAG_html_a5f49b7da110a626ed6605d1f108dfa25"><div class="ttname"><a href="classSVF_1_1PAG.html#a5f49b7da110a626ed6605d1f108dfa25">SVF::PAG::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const Value *V)</div><div class="ttdoc">Get PAG Node according to LLVM value. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00547">PAG.h:547</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1PAG_html_a6b8c71339e37338402b82734145898b6"><div class="ttname"><a href="classSVF_1_1PAG.html#a6b8c71339e37338402b82734145898b6">SVF::PAG::UnaryOPList</a></div><div class="ttdeci">std::vector&lt; const UnaryOPPE * &gt; UnaryOPList</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00060">PAG.h:60</a></div></div>
@@ -255,7 +255,7 @@ $(function() {
255
255
  <div class="ttc" id="classSVF_1_1PAG_html_a05751b2d055ea53b8a3452ead8380813"><div class="ttname"><a href="classSVF_1_1PAG.html#a05751b2d055ea53b8a3452ead8380813">SVF::PAG::getInstPTAPAGEdgeList</a></div><div class="ttdeci">PAGEdgeList &amp; getInstPTAPAGEdgeList(const ICFGNode *inst)</div><div class="ttdoc">Given an instruction, get all its PTA PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00234">PAG.h:234</a></div></div>
256
256
  <div class="ttc" id="classSVF_1_1RetBlockNode_html_a334951fc0160a6caeb5c54ce0bddc79d"><div class="ttname"><a href="classSVF_1_1RetBlockNode.html#a334951fc0160a6caeb5c54ce0bddc79d">SVF::RetBlockNode::addActualRet</a></div><div class="ttdeci">void addActualRet(const PAGNode *ar)</div><div class="ttdoc">Add actual return parameter. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00491">ICFGNode.h:491</a></div></div>
257
257
  <div class="ttc" id="classSVF_1_1PAG_html_ad6d3a47e27f3aa9f3729fd9097da27d4"><div class="ttname"><a href="classSVF_1_1PAG.html#ad6d3a47e27f3aa9f3729fd9097da27d4">SVF::PAG::hasPTAPAGEdgeList</a></div><div class="ttdeci">bool hasPTAPAGEdgeList(const ICFGNode *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00224">PAG.h:224</a></div></div>
258
- <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00088">SymbolTableInfo.cpp:88</a></div></div>
258
+ <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00214">SymbolTableInfo.cpp:214</a></div></div>
259
259
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_aec7ee137f828c9d61a11df7fc2241161"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#aec7ee137f828c9d61a11df7fc2241161">SVF::SymbolTableInfo::getValSym</a></div><div class="ttdeci">SymID getValSym(const Value *val)</div><div class="ttdoc">Get different kinds of syms. </div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00260">SymbolTableInfo.h:260</a></div></div>
260
260
  <div class="ttc" id="classSVF_1_1CmpPE_html"><div class="ttname"><a href="classSVF_1_1CmpPE.html">SVF::CmpPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00255">PAGEdge.h:255</a></div></div>
261
261
  <div class="ttc" id="classSVF_1_1ObjPN_html"><div class="ttname"><a href="classSVF_1_1ObjPN.html">SVF::ObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00320">PAGNode.h:320</a></div></div>
@@ -275,7 +275,7 @@ $(function() {
275
275
  <div class="ttc" id="classSVF_1_1PAG_html_ace643a606d59eb972d0f55590745bd5f"><div class="ttname"><a href="classSVF_1_1PAG.html#ace643a606d59eb972d0f55590745bd5f">SVF::PAG::inst2PAGEdgesMap</a></div><div class="ttdeci">Inst2PAGEdgesMap inst2PAGEdgesMap</div><div class="ttdoc">Map a instruction to its PAGEdges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00087">PAG.h:87</a></div></div>
276
276
  <div class="ttc" id="classSVF_1_1PAG_html_a4b89e254837eca47e09e41cf67dba722"><div class="ttname"><a href="classSVF_1_1PAG.html#a4b89e254837eca47e09e41cf67dba722">SVF::PAG::getEdgeSet</a></div><div class="ttdeci">PAGEdge::PAGEdgeSetTy &amp; getEdgeSet(PAGEdge::PEDGEK kind)</div><div class="ttdoc">Get/set methods to get control flow information of a PAGEdge. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00210">PAG.h:210</a></div></div>
277
277
  <div class="ttc" id="classSVF_1_1RetPN_html"><div class="ttname"><a href="classSVF_1_1RetPN.html">SVF::RetPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00577">PAGNode.h:577</a></div></div>
278
- <div class="ttc" id="classSVF_1_1MemObj_html_ad67bc82cb51d0eb23c92c2ff9456c636"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad67bc82cb51d0eb23c92c2ff9456c636">SVF::MemObj::isConstant</a></div><div class="ttdeci">bool isConstant() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00401">MemModel.h:401</a></div></div>
278
+ <div class="ttc" id="classSVF_1_1MemObj_html_ad67bc82cb51d0eb23c92c2ff9456c636"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad67bc82cb51d0eb23c92c2ff9456c636">SVF::MemObj::isConstant</a></div><div class="ttdeci">bool isConstant() const</div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00385">MemModel.h:385</a></div></div>
279
279
  <div class="ttc" id="classSVF_1_1ICFG_html"><div class="ttname"><a href="classSVF_1_1ICFG.html">SVF::ICFG</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8h_source.html#l00046">ICFG.h:46</a></div></div>
280
280
  <div class="ttc" id="classSVF_1_1DummyObjPN_html"><div class="ttname"><a href="classSVF_1_1DummyObjPN.html">SVF::DummyObjPN</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00696">PAGNode.h:696</a></div></div>
281
281
  <div class="ttc" id="classSVF_1_1LoadPE_html"><div class="ttname"><a href="classSVF_1_1LoadPE.html">SVF::LoadPE</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGEdge_8h_source.html#l00396">PAGEdge.h:396</a></div></div>
@@ -283,7 +283,7 @@ $(function() {
283
283
  <div class="ttc" id="classSVF_1_1IntraBlockNode_html"><div class="ttname"><a href="classSVF_1_1IntraBlockNode.html">SVF::IntraBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00175">ICFGNode.h:175</a></div></div>
284
284
  <div class="ttc" id="classSVF_1_1PAG_html_aa18a51570a397eabffdd613fdb15b4ac"><div class="ttname"><a href="classSVF_1_1PAG.html#aa18a51570a397eabffdd613fdb15b4ac">SVF::PAG::getGraphName</a></div><div class="ttdeci">std::string getGraphName() const</div><div class="ttdoc">Return graph name. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00891">PAG.h:891</a></div></div>
285
285
  <div class="ttc" id="classSVF_1_1PAG_html_a74f9e22acb40bf952c00168a221c0b00"><div class="ttname"><a href="classSVF_1_1PAG.html#a74f9e22acb40bf952c00168a221c0b00">SVF::PAG::getModule</a></div><div class="ttdeci">SVFModule * getModule()</div><div class="ttdoc">Get LLVM Module. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00195">PAG.h:195</a></div></div>
286
- <div class="ttc" id="classSVF_1_1MemObj_html_ad7f7de744715c3acaf3d48822865c87b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">SVF::MemObj::getSymId</a></div><div class="ttdeci">SymID getSymId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00331">MemModel.h:331</a></div></div>
286
+ <div class="ttc" id="classSVF_1_1MemObj_html_ad7f7de744715c3acaf3d48822865c87b"><div class="ttname"><a href="classSVF_1_1MemObj.html#ad7f7de744715c3acaf3d48822865c87b">SVF::MemObj::getSymId</a></div><div class="ttdeci">SymID getSymId() const</div><div class="ttdoc">Get the memory object id. </div><div class="ttdef"><b>Definition:</b> <a href="MemModel_8h_source.html#l00315">MemModel.h:315</a></div></div>
287
287
  <div class="ttc" id="classSVF_1_1PAG_html_a02f02a895816386501e5ba032c0c6e4c"><div class="ttname"><a href="classSVF_1_1PAG.html#a02f02a895816386501e5ba032c0c6e4c">SVF::PAG::mapValueToEdge</a></div><div class="ttdeci">void mapValueToEdge(const Value *V, PAGEdge *edge)</div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00577">PAG.h:577</a></div></div>
288
288
  <div class="ttc" id="classSVF_1_1SymbolTableInfo_html_a1689fa03795200b501ae3887906e7e72"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a1689fa03795200b501ae3887906e7e72">SVF::SymbolTableInfo::blkPtrSymID</a></div><div class="ttdeci">SymID blkPtrSymID() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00221">SymbolTableInfo.h:221</a></div></div>
289
289
  <div class="ttc" id="classSVF_1_1PAG_html_ad81e9de87891387c6fc860d964316d4f"><div class="ttname"><a href="classSVF_1_1PAG.html#ad81e9de87891387c6fc860d964316d4f">SVF::PAG::getPhiNodeMap</a></div><div class="ttdeci">PHINodeMap &amp; getPhiNodeMap()</div><div class="ttdoc">Get all phi copy edges. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00267">PAG.h:267</a></div></div>