svf-tools 1.0.896 → 1.0.897

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 (225) hide show
  1. package/SVF-doxygen/html/globals_a.html +1 -1
  2. package/SVF-doxygen/html/globals_d.html +3 -0
  3. package/SVF-doxygen/html/globals_func_a.html +1 -1
  4. package/SVF-doxygen/html/globals_func_d.html +3 -0
  5. package/SVF-doxygen/html/globals_func_p.html +1 -1
  6. package/SVF-doxygen/html/globals_func_t.html +1 -1
  7. package/SVF-doxygen/html/globals_p.html +1 -1
  8. package/SVF-doxygen/html/globals_t.html +1 -1
  9. package/SVF-doxygen/html/globals_vars.html +3 -3
  10. package/SVF-doxygen/html/globals_z.html +3 -3
  11. package/SVF-doxygen/html/search/all_1.js +1 -1
  12. package/SVF-doxygen/html/search/all_10.js +325 -325
  13. package/SVF-doxygen/html/search/all_11.js +226 -226
  14. package/SVF-doxygen/html/search/all_12.js +570 -570
  15. package/SVF-doxygen/html/search/all_13.js +207 -207
  16. package/SVF-doxygen/html/search/all_14.js +70 -70
  17. package/SVF-doxygen/html/search/all_15.js +176 -176
  18. package/SVF-doxygen/html/search/all_16.js +77 -77
  19. package/SVF-doxygen/html/search/all_17.js +1 -1
  20. package/SVF-doxygen/html/search/all_18.js +1 -1
  21. package/SVF-doxygen/html/search/all_19.js +26 -26
  22. package/SVF-doxygen/html/search/all_1a.js +179 -179
  23. package/SVF-doxygen/html/search/all_4.js +42 -41
  24. package/SVF-doxygen/html/search/all_5.js +126 -126
  25. package/SVF-doxygen/html/search/all_6.js +232 -232
  26. package/SVF-doxygen/html/search/all_7.js +1047 -1047
  27. package/SVF-doxygen/html/search/all_8.js +215 -215
  28. package/SVF-doxygen/html/search/all_9.js +629 -629
  29. package/SVF-doxygen/html/search/all_a.js +46 -46
  30. package/SVF-doxygen/html/search/all_b.js +26 -26
  31. package/SVF-doxygen/html/search/all_c.js +115 -115
  32. package/SVF-doxygen/html/search/all_d.js +204 -204
  33. package/SVF-doxygen/html/search/all_e.js +209 -209
  34. package/SVF-doxygen/html/search/all_f.js +122 -122
  35. package/SVF-doxygen/html/search/classes_0.js +28 -28
  36. package/SVF-doxygen/html/search/classes_1.js +11 -11
  37. package/SVF-doxygen/html/search/classes_10.js +74 -74
  38. package/SVF-doxygen/html/search/classes_11.js +14 -14
  39. package/SVF-doxygen/html/search/classes_12.js +2 -2
  40. package/SVF-doxygen/html/search/classes_13.js +10 -10
  41. package/SVF-doxygen/html/search/classes_14.js +19 -19
  42. package/SVF-doxygen/html/search/classes_15.js +1 -1
  43. package/SVF-doxygen/html/search/classes_2.js +73 -73
  44. package/SVF-doxygen/html/search/classes_3.js +35 -35
  45. package/SVF-doxygen/html/search/classes_4.js +8 -8
  46. package/SVF-doxygen/html/search/classes_5.js +28 -28
  47. package/SVF-doxygen/html/search/classes_6.js +98 -98
  48. package/SVF-doxygen/html/search/classes_7.js +38 -38
  49. package/SVF-doxygen/html/search/classes_8.js +59 -59
  50. package/SVF-doxygen/html/search/classes_9.js +1 -1
  51. package/SVF-doxygen/html/search/classes_a.js +12 -12
  52. package/SVF-doxygen/html/search/classes_b.js +29 -29
  53. package/SVF-doxygen/html/search/classes_c.js +6 -6
  54. package/SVF-doxygen/html/search/classes_d.js +19 -19
  55. package/SVF-doxygen/html/search/classes_e.js +36 -36
  56. package/SVF-doxygen/html/search/classes_f.js +25 -25
  57. package/SVF-doxygen/html/search/defines_0.js +3 -3
  58. package/SVF-doxygen/html/search/defines_1.js +3 -3
  59. package/SVF-doxygen/html/search/defines_10.js +2 -2
  60. package/SVF-doxygen/html/search/defines_2.js +30 -30
  61. package/SVF-doxygen/html/search/defines_3.js +20 -20
  62. package/SVF-doxygen/html/search/defines_4.js +3 -3
  63. package/SVF-doxygen/html/search/defines_5.js +4 -4
  64. package/SVF-doxygen/html/search/defines_6.js +2 -2
  65. package/SVF-doxygen/html/search/defines_7.js +5 -5
  66. package/SVF-doxygen/html/search/defines_8.js +11 -11
  67. package/SVF-doxygen/html/search/defines_9.js +9 -9
  68. package/SVF-doxygen/html/search/defines_a.js +2 -2
  69. package/SVF-doxygen/html/search/defines_b.js +1 -1
  70. package/SVF-doxygen/html/search/defines_c.js +4 -4
  71. package/SVF-doxygen/html/search/defines_d.js +2 -2
  72. package/SVF-doxygen/html/search/defines_e.js +8 -8
  73. package/SVF-doxygen/html/search/defines_f.js +4 -4
  74. package/SVF-doxygen/html/search/enums_0.js +4 -4
  75. package/SVF-doxygen/html/search/enums_1.js +2 -2
  76. package/SVF-doxygen/html/search/enums_10.js +1 -1
  77. package/SVF-doxygen/html/search/enums_11.js +1 -1
  78. package/SVF-doxygen/html/search/enums_2.js +8 -8
  79. package/SVF-doxygen/html/search/enums_3.js +1 -1
  80. package/SVF-doxygen/html/search/enums_4.js +4 -4
  81. package/SVF-doxygen/html/search/enums_5.js +1 -1
  82. package/SVF-doxygen/html/search/enums_6.js +2 -2
  83. package/SVF-doxygen/html/search/enums_7.js +2 -2
  84. package/SVF-doxygen/html/search/enums_8.js +4 -4
  85. package/SVF-doxygen/html/search/enums_9.js +1 -1
  86. package/SVF-doxygen/html/search/enums_a.js +1 -1
  87. package/SVF-doxygen/html/search/enums_b.js +7 -7
  88. package/SVF-doxygen/html/search/enums_c.js +1 -1
  89. package/SVF-doxygen/html/search/enums_d.js +4 -4
  90. package/SVF-doxygen/html/search/enums_e.js +2 -2
  91. package/SVF-doxygen/html/search/enums_f.js +4 -4
  92. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  93. package/SVF-doxygen/html/search/enumvalues_1.js +15 -15
  94. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  95. package/SVF-doxygen/html/search/enumvalues_11.js +4 -4
  96. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  97. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  98. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  99. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  100. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  101. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  102. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  103. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  104. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  105. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  106. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  107. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  108. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  109. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  110. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  111. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  112. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  113. package/SVF-doxygen/html/search/enumvalues_f.js +47 -47
  114. package/SVF-doxygen/html/search/files_0.js +16 -16
  115. package/SVF-doxygen/html/search/files_1.js +9 -9
  116. package/SVF-doxygen/html/search/files_10.js +8 -8
  117. package/SVF-doxygen/html/search/files_11.js +8 -8
  118. package/SVF-doxygen/html/search/files_12.js +2 -2
  119. package/SVF-doxygen/html/search/files_2.js +53 -53
  120. package/SVF-doxygen/html/search/files_3.js +14 -14
  121. package/SVF-doxygen/html/search/files_4.js +5 -5
  122. package/SVF-doxygen/html/search/files_5.js +13 -13
  123. package/SVF-doxygen/html/search/files_6.js +10 -10
  124. package/SVF-doxygen/html/search/files_7.js +17 -17
  125. package/SVF-doxygen/html/search/files_8.js +13 -13
  126. package/SVF-doxygen/html/search/files_9.js +18 -18
  127. package/SVF-doxygen/html/search/files_a.js +3 -3
  128. package/SVF-doxygen/html/search/files_b.js +4 -4
  129. package/SVF-doxygen/html/search/files_c.js +20 -20
  130. package/SVF-doxygen/html/search/files_d.js +4 -4
  131. package/SVF-doxygen/html/search/files_e.js +62 -62
  132. package/SVF-doxygen/html/search/files_f.js +8 -8
  133. package/SVF-doxygen/html/search/functions_0.js +13 -13
  134. package/SVF-doxygen/html/search/functions_1.js +368 -368
  135. package/SVF-doxygen/html/search/functions_10.js +140 -140
  136. package/SVF-doxygen/html/search/functions_11.js +140 -140
  137. package/SVF-doxygen/html/search/functions_12.js +299 -299
  138. package/SVF-doxygen/html/search/functions_13.js +73 -73
  139. package/SVF-doxygen/html/search/functions_14.js +41 -41
  140. package/SVF-doxygen/html/search/functions_15.js +72 -72
  141. package/SVF-doxygen/html/search/functions_16.js +38 -38
  142. package/SVF-doxygen/html/search/functions_17.js +3 -3
  143. package/SVF-doxygen/html/search/functions_18.js +179 -179
  144. package/SVF-doxygen/html/search/functions_2.js +94 -94
  145. package/SVF-doxygen/html/search/functions_3.js +261 -261
  146. package/SVF-doxygen/html/search/functions_4.js +85 -84
  147. package/SVF-doxygen/html/search/functions_5.js +57 -57
  148. package/SVF-doxygen/html/search/functions_6.js +65 -65
  149. package/SVF-doxygen/html/search/functions_7.js +863 -863
  150. package/SVF-doxygen/html/search/functions_8.js +162 -162
  151. package/SVF-doxygen/html/search/functions_9.js +438 -438
  152. package/SVF-doxygen/html/search/functions_a.js +30 -30
  153. package/SVF-doxygen/html/search/functions_b.js +2 -2
  154. package/SVF-doxygen/html/search/functions_c.js +25 -25
  155. package/SVF-doxygen/html/search/functions_d.js +82 -82
  156. package/SVF-doxygen/html/search/functions_e.js +36 -36
  157. package/SVF-doxygen/html/search/functions_f.js +58 -58
  158. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  159. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  160. package/SVF-doxygen/html/search/related_0.js +4 -4
  161. package/SVF-doxygen/html/search/related_1.js +2 -2
  162. package/SVF-doxygen/html/search/related_2.js +2 -2
  163. package/SVF-doxygen/html/search/related_3.js +2 -2
  164. package/SVF-doxygen/html/search/related_4.js +2 -2
  165. package/SVF-doxygen/html/search/related_5.js +1 -1
  166. package/SVF-doxygen/html/search/related_6.js +2 -2
  167. package/SVF-doxygen/html/search/related_7.js +5 -5
  168. package/SVF-doxygen/html/search/related_8.js +2 -2
  169. package/SVF-doxygen/html/search/related_9.js +4 -4
  170. package/SVF-doxygen/html/search/related_a.js +19 -19
  171. package/SVF-doxygen/html/search/related_b.js +4 -4
  172. package/SVF-doxygen/html/search/related_c.js +2 -2
  173. package/SVF-doxygen/html/search/related_d.js +12 -12
  174. package/SVF-doxygen/html/search/related_e.js +2 -2
  175. package/SVF-doxygen/html/search/related_f.js +2 -2
  176. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  177. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  178. package/SVF-doxygen/html/search/typedefs_10.js +63 -63
  179. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  180. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  181. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  182. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  183. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  184. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  185. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  186. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  187. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  188. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  189. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  190. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  191. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  192. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  193. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  194. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  195. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  196. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  197. package/SVF-doxygen/html/search/variables_0.js +177 -177
  198. package/SVF-doxygen/html/search/variables_1.js +76 -76
  199. package/SVF-doxygen/html/search/variables_10.js +98 -98
  200. package/SVF-doxygen/html/search/variables_11.js +46 -46
  201. package/SVF-doxygen/html/search/variables_12.js +93 -93
  202. package/SVF-doxygen/html/search/variables_13.js +76 -76
  203. package/SVF-doxygen/html/search/variables_14.js +14 -14
  204. package/SVF-doxygen/html/search/variables_15.js +49 -49
  205. package/SVF-doxygen/html/search/variables_16.js +11 -11
  206. package/SVF-doxygen/html/search/variables_17.js +1 -1
  207. package/SVF-doxygen/html/search/variables_18.js +17 -17
  208. package/SVF-doxygen/html/search/variables_2.js +40 -40
  209. package/SVF-doxygen/html/search/variables_3.js +142 -142
  210. package/SVF-doxygen/html/search/variables_4.js +51 -51
  211. package/SVF-doxygen/html/search/variables_5.js +39 -39
  212. package/SVF-doxygen/html/search/variables_6.js +66 -66
  213. package/SVF-doxygen/html/search/variables_7.js +34 -34
  214. package/SVF-doxygen/html/search/variables_8.js +8 -8
  215. package/SVF-doxygen/html/search/variables_9.js +79 -79
  216. package/SVF-doxygen/html/search/variables_a.js +4 -4
  217. package/SVF-doxygen/html/search/variables_b.js +10 -10
  218. package/SVF-doxygen/html/search/variables_c.js +45 -45
  219. package/SVF-doxygen/html/search/variables_d.js +57 -57
  220. package/SVF-doxygen/html/search/variables_e.js +123 -123
  221. package/SVF-doxygen/html/search/variables_f.js +31 -31
  222. package/SVF-doxygen/html/svf-ex_8cpp.html +259 -209
  223. package/SVF-doxygen/html/svf-ex_8cpp_source.html +229 -202
  224. package/package.json +1 -1
  225. package/svf-llvm/tools/Example/svf-ex.cpp +49 -30
@@ -77,16 +77,16 @@ $(function() {
77
77
  <div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div>
78
78
  <div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div>
79
79
  <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>
80
- <div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU Affero General Public License as published by</span></div>
80
+ <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>
81
81
  <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>
82
82
  <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div>
83
83
  <div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div>
84
84
  <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>
85
85
  <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>
86
86
  <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>
87
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU Affero General Public License for more details.</span></div>
87
+ <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>
88
88
  <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
89
- <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 Affero General Public License</span></div>
89
+ <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>
90
90
  <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>
91
91
  <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div>
92
92
  <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===-----------------------------------------------------------------------===//</span></div>
@@ -105,213 +105,239 @@ $(function() {
105
105
  <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Options_8h.html">Util/Options.h</a>&quot;</span></div>
106
106
  <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>&quot;</span></div>
107
107
  <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
108
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span>std;</div>
109
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div>
110
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
111
- <div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f"> 43</a></span>&#160;<a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a> <a class="code" href="svf-ex_8cpp.html#ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f">aliasQuery</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* v1, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* v2)</div>
112
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
113
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(v1,v2);</div>
114
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div>
115
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
116
- <div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a985b6c880c7922538046c6a1fa987829"> 51</a></span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="svf-ex_8cpp.html#a985b6c880c7922538046c6a1fa987829">printPts</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val)</div>
117
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
118
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
119
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
120
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::stringstream rawstr(str);</div>
121
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
122
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pNodeId = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(val);</div>
123
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pNodeId);</div>
124
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), ie = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
125
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; ii != ie; ii++)</div>
126
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
127
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
128
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* targetObj = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii);</div>
129
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
130
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
131
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() &lt;&lt; <span class="stringliteral">&quot;)\t &quot;</span>;</div>
132
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
133
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
134
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
135
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
136
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
137
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div>
138
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
139
- <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f"> 77</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node)</div>
140
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div>
141
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>* svfir2ExeState = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>(SVFIR::getPAG());</div>
142
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* stmt: node-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
143
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
144
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr = SVFUtil::dyn_cast&lt;AddrStmt&gt;(stmt))</div>
145
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
146
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">translateAddr</a>(addr);</div>
147
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
148
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary = SVFUtil::dyn_cast&lt;BinaryOPStmt&gt;(stmt))</div>
149
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
150
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">translateBinary</a>(binary);</div>
151
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
152
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp = SVFUtil::dyn_cast&lt;CmpStmt&gt;(stmt))</div>
153
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
154
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">translateCmp</a>(cmp);</div>
155
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
156
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(stmt))</div>
157
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
158
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">translateLoad</a>(load);</div>
159
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
160
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(stmt))</div>
161
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
162
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">translateStore</a>(store);</div>
163
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
164
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a> = SVFUtil::dyn_cast&lt;CopyStmt&gt;(stmt))</div>
165
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
166
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">translateCopy</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</div>
167
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
168
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep = SVFUtil::dyn_cast&lt;GepStmt&gt;(stmt))</div>
169
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
170
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (gep-&gt;isConstantOffset())</div>
171
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
172
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; gep-&gt;accumulateConstantByteOffset();</div>
173
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; gep-&gt;accumulateConstantOffset();</div>
174
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
175
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">translateGep</a>(gep);</div>
176
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
177
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select = SVFUtil::dyn_cast&lt;SelectStmt&gt;(stmt))</div>
178
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
179
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">translateSelect</a>(select);</div>
180
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
181
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi = SVFUtil::dyn_cast&lt;PhiStmt&gt;(stmt))</div>
182
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
183
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">translatePhi</a>(phi);</div>
184
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
185
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast&lt;CallPE&gt;(stmt))</div>
186
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
187
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// To handle Call Edge</span></div>
188
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">translateCall</a>(callPE);</div>
189
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
190
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast&lt;RetPE&gt;(stmt))</div>
191
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div>
192
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">translateRet</a>(retPE);</div>
193
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
194
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">else</span></div>
195
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;implement this part&quot;</span>);</div>
196
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
197
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div>
198
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
108
+ <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div>
109
+ <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">using namespace </span>std;</div>
110
+ <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div>
111
+ <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
112
+ <div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#af6e60bf5c69a516b51753497070f4c9b"> 44</a></span>&#160;<a class="code" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a> <a class="code" href="svf-ex_8cpp.html#af6e60bf5c69a516b51753497070f4c9b">aliasQuery</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* v1, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* v2)</div>
113
+ <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div>
114
+ <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(v1, v2);</div>
115
+ <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
116
+ <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
117
+ <div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a3128c23336edaa73601d97d202a627c4"> 52</a></span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="svf-ex_8cpp.html#a3128c23336edaa73601d97d202a627c4">printPts</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* pta, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfval)</div>
118
+ <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
119
+ <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
120
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
121
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; raw_string_ostream rawstr(str);</div>
122
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
123
+ <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pNodeId = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfval);</div>
124
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pNodeId);</div>
125
+ <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), ie = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
126
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; ii != ie; ii++)</div>
127
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div>
128
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
129
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* targetObj = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii);</div>
130
+ <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
131
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
132
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() &lt;&lt; <span class="stringliteral">&quot;)\t &quot;</span>;</div>
133
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
134
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
135
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
136
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
137
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
138
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div>
139
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
140
+ <div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f"> 78</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node)</div>
141
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div>
142
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>* svfir2ExeState = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>(SVFIR::getPAG());</div>
143
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* stmt: node-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
144
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
145
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr = SVFUtil::dyn_cast&lt;AddrStmt&gt;(stmt))</div>
146
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
147
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">translateAddr</a>(addr);</div>
148
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
149
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary = SVFUtil::dyn_cast&lt;BinaryOPStmt&gt;(stmt))</div>
150
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
151
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">translateBinary</a>(binary);</div>
152
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
153
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp = SVFUtil::dyn_cast&lt;CmpStmt&gt;(stmt))</div>
154
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
155
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">translateCmp</a>(cmp);</div>
156
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
157
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(stmt))</div>
158
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
159
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">translateLoad</a>(load);</div>
160
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
161
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(stmt))</div>
162
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
163
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">translateStore</a>(store);</div>
164
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
165
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a> = SVFUtil::dyn_cast&lt;CopyStmt&gt;(stmt))</div>
166
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div>
167
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">translateCopy</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</div>
168
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
169
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep = SVFUtil::dyn_cast&lt;GepStmt&gt;(stmt))</div>
170
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
171
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (gep-&gt;isConstantOffset())</div>
172
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
173
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; gep-&gt;accumulateConstantByteOffset();</div>
174
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; gep-&gt;accumulateConstantOffset();</div>
175
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
176
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">translateGep</a>(gep);</div>
177
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
178
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select = SVFUtil::dyn_cast&lt;SelectStmt&gt;(stmt))</div>
179
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
180
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">translateSelect</a>(select);</div>
181
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
182
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi = SVFUtil::dyn_cast&lt;PhiStmt&gt;(stmt))</div>
183
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div>
184
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">translatePhi</a>(phi);</div>
185
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
186
+ <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast&lt;CallPE&gt;(stmt))</div>
187
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
188
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// To handle Call Edge</span></div>
189
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">translateCall</a>(callPE);</div>
190
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
191
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast&lt;RetPE&gt;(stmt))</div>
192
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
193
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">translateRet</a>(retPE);</div>
194
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
195
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">else</span></div>
196
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;implement this part&quot;</span>);</div>
197
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
198
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
199
199
  <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
200
- <div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96"> 141</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a>(<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* iNode)</div>
201
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div>
202
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const ICFGNode*&gt;</a> worklist;</div>
203
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const ICFGNode*&gt;</a> visited;</div>
204
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(iNode);</div>
205
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
206
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
207
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
208
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
209
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">ICFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
210
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
211
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div>
212
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div>
213
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
214
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
215
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
216
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; visited.insert(succNode);</div>
217
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
218
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
219
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
220
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
221
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div>
222
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
223
- <div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b"> 168</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b">traverseOnVFG</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* vfg, <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* val)</div>
224
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div>
225
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div>
226
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
227
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pNode = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(val));</div>
228
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = vfg-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pNode);</div>
229
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const VFGNode*&gt;</a> worklist;</div>
230
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;</a> visited;</div>
231
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(vNode);</div>
232
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
233
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
234
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
235
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
236
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">VFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
237
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
238
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
239
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div>
240
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
241
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
242
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
243
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; visited.insert(succNode);</div>
244
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
245
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
246
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
247
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
248
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
249
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;::const_iterator</a> it = visited.begin(), eit = visited.end(); it!=eit; ++it)</div>
250
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
251
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// const VFGNode* node = *it;</span></div>
252
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"></span> }</div>
253
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}</div>
254
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
255
- <div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 205</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div>
256
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div>
257
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
258
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div>
259
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div>
260
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; argc, argv, <span class="stringliteral">&quot;Whole Program Points-to Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div>
261
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; );</div>
262
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
263
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div>
264
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
265
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; LLVMModuleSet::preProcessBCs(moduleNameVec);</div>
266
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
267
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
268
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::buildSVFModule(moduleNameVec);</div>
200
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
201
+ <div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96"> 142</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a>(<a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* iNode)</div>
202
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div>
203
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const ICFGNode*&gt;</a> worklist;</div>
204
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const ICFGNode*&gt;</a> visited;</div>
205
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(iNode);</div>
206
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
207
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
208
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
209
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
210
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">ICFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
211
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
212
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div>
213
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div>
214
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
215
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
216
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
217
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; visited.insert(succNode);</div>
218
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
219
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
220
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
221
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
222
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div>
223
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
224
+ <div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32"> 166</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32">dummyVisit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* node)</div>
225
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div>
226
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
227
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div>
228
+ <div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a46d99c4d06304a22985a1e7bf04b3e2d"> 173</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="svf-ex_8cpp.html#a46d99c4d06304a22985a1e7bf04b3e2d">traverseOnVFG</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* vfg, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfval)</div>
229
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div>
230
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div>
231
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pNode = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfval));</div>
232
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (!vfg-&gt;<a class="code" href="classSVF_1_1SVFG.html#ad2d19c5b80b01c8a7bb41100bb156279">hasDefSVFGNode</a>(pNode))</div>
233
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span>;</div>
234
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = vfg-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pNode);</div>
235
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const VFGNode*&gt;</a> worklist;</div>
236
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;</a> visited;</div>
237
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(vNode);</div>
238
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
239
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
240
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
241
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
242
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">VFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
243
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
244
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
245
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div>
246
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
247
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
248
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
249
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; visited.insert(succNode);</div>
250
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
251
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
252
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
253
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
254
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
255
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;::const_iterator</a> it = visited.begin(), eit = visited.end(); it!=eit; ++it)</div>
256
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
257
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* node = *it;</div>
258
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32">dummyVisit</a>(node);</div>
259
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
260
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div>
261
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
262
+ <div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 212</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div>
263
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div>
264
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
265
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div>
266
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div>
267
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; argc, argv, <span class="stringliteral">&quot;Whole Program Points-to Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div>
268
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; );</div>
269
269
  <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
270
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div>
271
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div>
272
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
270
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div>
271
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
272
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; LLVMModuleSet::preProcessBCs(moduleNameVec);</div>
273
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
273
274
  <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
274
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>* ander = AndersenWaveDiff::createAndersenWaveDiff(pag);</div>
275
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
275
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::buildSVFModule(moduleNameVec);</div>
276
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
277
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div>
278
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.<a class="code" href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">build</a>();</div>
276
279
  <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
280
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>* ander = AndersenWaveDiff::createAndersenWaveDiff(pag);</div>
277
281
  <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
278
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph = ander-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div>
279
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
280
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
281
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg&quot;</span>);</div>
282
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
283
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph = ander-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div>
284
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
285
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
282
286
  <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
283
287
  <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1VFG.html">VFG</a>* vfg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1VFG.html">VFG</a>(callgraph);</div>
284
288
  <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
285
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> svfBuilder(<span class="keyword">true</span>);</div>
286
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">//SVFG* svfg =</span></div>
287
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; svfBuilder.<a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div>
288
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
289
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
290
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
291
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it : *icfg)</div>
292
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
293
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node = it.second;</div>
294
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a>(icfg, node);</div>
295
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
296
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
297
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// clean up memory</span></div>
298
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">delete</span> vfg;</div>
299
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; AndersenWaveDiff::releaseAndersenWaveDiff();</div>
300
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; SVFIR::releaseSVFIR();</div>
301
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
302
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;dumpModulesToFile(<span class="stringliteral">&quot;.svf.bc&quot;</span>);</div>
303
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div>
304
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; llvm::llvm_shutdown();</div>
305
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> 0;</div>
306
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
307
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
289
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> svfBuilder;</div>
290
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* svfg = svfBuilder.<a class="code" href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">buildFullSVFG</a>(ander);</div>
291
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; </div>
292
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (Options::PTSPrint())</div>
293
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div>
294
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : *svfg)</div>
295
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div>
296
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it.second;</div>
297
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>())</div>
298
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
299
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <a class="code" href="svf-ex_8cpp.html#a46d99c4d06304a22985a1e7bf04b3e2d">traverseOnVFG</a>(svfg, node-&gt;<a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>());</div>
300
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="svf-ex_8cpp.html#a3128c23336edaa73601d97d202a627c4">printPts</a>(ander, node-&gt;<a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>());</div>
301
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge : node-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>())</div>
302
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div>
303
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node2 = edge-&gt;getDstNode();</div>
304
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (node2-&gt;<a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>())</div>
305
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="svf-ex_8cpp.html#af6e60bf5c69a516b51753497070f4c9b">aliasQuery</a>(ander, node-&gt;<a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>(), node2-&gt;<a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>());</div>
306
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
307
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
308
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div>
309
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
310
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
311
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (Options::PTSPrint())</div>
312
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
313
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : *icfg)</div>
314
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
315
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node = it.second;</div>
316
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a>(icfg, node);</div>
317
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
318
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
319
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
320
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// clean up memory</span></div>
321
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">delete</span> vfg;</div>
322
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; AndersenWaveDiff::releaseAndersenWaveDiff();</div>
323
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; SVFIR::releaseSVFIR();</div>
324
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
325
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;dumpModulesToFile(<span class="stringliteral">&quot;.svf.bc&quot;</span>);</div>
326
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div>
327
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; llvm::llvm_shutdown();</div>
328
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> 0;</div>
329
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div>
330
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
308
331
  </div><!-- fragment --></div><!-- contents -->
309
332
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
310
333
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00931">SVFIR2ItvExeState.cpp:931</a></div></div>
311
334
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00364">SVFStatements.h:364</a></div></div>
312
- <div class="ttc" id="asvf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00205">svf-ex.cpp:205</a></div></div>
335
+ <div class="ttc" id="asvf-ex_8cpp_html_a46d99c4d06304a22985a1e7bf04b3e2d"><div class="ttname"><a href="svf-ex_8cpp.html#a46d99c4d06304a22985a1e7bf04b3e2d">traverseOnVFG</a></div><div class="ttdeci">void traverseOnVFG(const SVFG *vfg, const SVFValue *svfval)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00173">svf-ex.cpp:173</a></div></div>
336
+ <div class="ttc" id="asvf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00212">svf-ex.cpp:212</a></div></div>
313
337
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
338
+ <div class="ttc" id="anamespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="GEPTypeBridgeIterator_8h_source.html#l00013">GEPTypeBridgeIterator.h:13</a></div></div>
314
339
  <div class="ttc" id="aclassSVF_1_1SVFG_html"><div class="ttname"><a href="classSVF_1_1SVFG.html">SVF::SVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00065">SVFG.h:65</a></div></div>
340
+ <div class="ttc" id="asvf-ex_8cpp_html_a3128c23336edaa73601d97d202a627c4"><div class="ttname"><a href="svf-ex_8cpp.html#a3128c23336edaa73601d97d202a627c4">printPts</a></div><div class="ttdeci">std::string printPts(PointerAnalysis *pta, const SVFValue *svfval)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00052">svf-ex.cpp:52</a></div></div>
315
341
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
316
342
  <div class="ttc" id="aclassSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00156">Andersen.h:156</a></div></div>
317
343
  <div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
@@ -324,6 +350,7 @@ $(function() {
324
350
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00092">GeneralType.h:92</a></div></div>
325
351
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
326
352
  <div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
353
+ <div class="ttc" id="aclassSVF_1_1VFGNode_html_aec9bb5040f30ab722ce917af41b006f0"><div class="ttname"><a href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">SVF::VFGNode::getValue</a></div><div class="ttdeci">virtual const SVFValue * getValue() const</div><div class="ttdoc">Return the corresponding LLVM value, if possible, nullptr otherwise.</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00090">VFGNode.h:90</a></div></div>
327
354
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html_a6c68f52dd90728073fb79141df9b0661"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">SVF::ICFGNode::getSVFStmts</a></div><div class="ttdeci">const SVFStmtList &amp; getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00127">ICFGNode.h:127</a></div></div>
328
355
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00470">SVFIR2ItvExeState.cpp:470</a></div></div>
329
356
  <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00829">SVFStatements.h:829</a></div></div>
@@ -331,20 +358,20 @@ $(function() {
331
358
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a7c9b7e5fe37ae31ba84d167945ca57df"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">SVF::PointerAnalysis::getPTACallGraph</a></div><div class="ttdeci">PTACallGraph * getPTACallGraph() const</div><div class="ttdoc">Return call graph.</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00171">PointerAnalysis.h:171</a></div></div>
332
359
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html">SVF::PointerAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00057">PointerAnalysis.h:57</a></div></div>
333
360
  <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00618">SVFStatements.h:618</a></div></div>
334
- <div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00141">svf-ex.cpp:141</a></div></div>
361
+ <div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00142">svf-ex.cpp:142</a></div></div>
335
362
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00884">SVFStatements.h:884</a></div></div>
336
363
  <div class="ttc" id="aclassSVF_1_1VFG_html"><div class="ttname"><a href="classSVF_1_1VFG.html">SVF::VFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00050">VFG.h:50</a></div></div>
337
364
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00558">SVFIR2ItvExeState.cpp:558</a></div></div>
338
365
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00843">SVFIR2ItvExeState.cpp:843</a></div></div>
339
366
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
340
367
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
341
- <div class="ttc" id="asvf-ex_8cpp_html_a8fa9e6583c354b1883a32b8abf98779f"><div class="ttname"><a href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a></div><div class="ttdeci">void traverseOnSVFStmt(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00077">svf-ex.cpp:77</a></div></div>
368
+ <div class="ttc" id="asvf-ex_8cpp_html_a8fa9e6583c354b1883a32b8abf98779f"><div class="ttname"><a href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a></div><div class="ttdeci">void traverseOnSVFStmt(const ICFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00078">svf-ex.cpp:78</a></div></div>
342
369
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
370
+ <div class="ttc" id="asvf-ex_8cpp_html_af6e60bf5c69a516b51753497070f4c9b"><div class="ttname"><a href="svf-ex_8cpp.html#af6e60bf5c69a516b51753497070f4c9b">aliasQuery</a></div><div class="ttdeci">SVF::AliasResult aliasQuery(PointerAnalysis *pta, const SVFValue *v1, const SVFValue *v2)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00044">svf-ex.cpp:44</a></div></div>
343
371
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00897">SVFIR2ItvExeState.cpp:897</a></div></div>
344
372
  <div class="ttc" id="aCommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
345
373
  <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00558">SVFStatements.h:558</a></div></div>
346
374
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00742">SVFIR2ItvExeState.cpp:742</a></div></div>
347
- <div class="ttc" id="asvf-ex_8cpp_html_ad58149e5445ad22ce478339e103ab42b"><div class="ttname"><a href="svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b">traverseOnVFG</a></div><div class="ttdeci">void traverseOnVFG(const SVFG *vfg, SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00168">svf-ex.cpp:168</a></div></div>
348
375
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
349
376
  <div class="ttc" id="aclassOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector&lt; std::string &gt; parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
350
377
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html">SVF::SVFIR2ItvExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00044">SVFIR2ItvExeState.h:44</a></div></div>
@@ -361,7 +388,6 @@ $(function() {
361
388
  <div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a></div><div class="ttdeci">AliasResult</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00526">SVFType.h:526</a></div></div>
362
389
  <div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
363
390
  <div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
364
- <div class="ttc" id="asvf-ex_8cpp_html_a985b6c880c7922538046c6a1fa987829"><div class="ttname"><a href="svf-ex_8cpp.html#a985b6c880c7922538046c6a1fa987829">printPts</a></div><div class="ttdeci">std::string printPts(PointerAnalysis *pta, SVFValue *val)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00051">svf-ex.cpp:51</a></div></div>
365
391
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ae1323233941cdc9b99332e4b954a2217"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">SVF::PointerAnalysis::alias</a></div><div class="ttdeci">virtual AliasResult alias(const SVFValue *V1, const SVFValue *V2)=0</div><div class="ttdoc">Interface exposed to users of our pointer analysis, given Value infos.</div></div>
366
392
  <div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
367
393
  <div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00437">SVFStatements.h:437</a></div></div>
@@ -372,8 +398,8 @@ $(function() {
372
398
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_aa4f103330118c8976bf95e4bf53416eb"><div class="ttname"><a href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">SVF::GenericNode::OutEdgeBegin</a></div><div class="ttdeci">iterator OutEdgeBegin()</div><div class="ttdoc">iterators</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00217">GenericGraph.h:217</a></div></div>
373
399
  <div class="ttc" id="aclassSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00049">SVFGBuilder.cpp:49</a></div></div>
374
400
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_abda052b73e869ed6d7c139ad1528da11"><div class="ttname"><a href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">SVF::SVFIR::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00170">SVFIR.h:170</a></div></div>
375
- <div class="ttc" id="asvf-ex_8cpp_html_ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f"><div class="ttname"><a href="svf-ex_8cpp.html#ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f">aliasQuery</a></div><div class="ttdeci">SVF::AliasResult aliasQuery(PointerAnalysis *pta, SVFValue *v1, SVFValue *v2)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00043">svf-ex.cpp:43</a></div></div>
376
401
  <div class="ttc" id="aclassSVF_1_1PTACallGraph_html"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html">SVF::PTACallGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8h_source.html#l00218">PTACallGraph.h:218</a></div></div>
402
+ <div class="ttc" id="aclassSVF_1_1SVFG_html_ad2d19c5b80b01c8a7bb41100bb156279"><div class="ttname"><a href="classSVF_1_1SVFG.html#ad2d19c5b80b01c8a7bb41100bb156279">SVF::SVFG::hasDefSVFGNode</a></div><div class="ttdeci">bool hasDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return whether it has definition site.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00177">SVFG.h:177</a></div></div>
377
403
  <div class="ttc" id="aclassSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00040">SVFModule.h:40</a></div></div>
378
404
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00931">LLVMUtil.cpp:931</a></div></div>
379
405
  <div class="ttc" id="aclassSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00060">VFGNode.h:60</a></div></div>
@@ -388,8 +414,9 @@ $(function() {
388
414
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html_a5ecf1deb5646ccb46b0b3101417f4689"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html#a5ecf1deb5646ccb46b0b3101417f4689">SVF::SVFIRBuilder::build</a></div><div class="ttdeci">virtual SVFIR * build()</div><div class="ttdoc">Start building SVFIR here.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8cpp_source.html#l00053">SVFIRBuilder.cpp:53</a></div></div>
389
415
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_a1ace69053c2c4436fd78d5624bd0086a"><div class="ttname"><a href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">SVF::SVFVar::hasValue</a></div><div class="ttdeci">bool hasValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00112">SVFVariables.h:112</a></div></div>
390
416
  <div class="ttc" id="anamespaceSVF_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="svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
391
- <div class="ttc" id="aclassSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00443">ICFG.cpp:443</a></div></div>
392
417
  <div class="ttc" id="aclassSVF_1_1ICFGNode_html_ac16c5a3227a44d3b9f7c3209156d9df2"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">SVF::ICFGNode::const_iterator</a></div><div class="ttdeci">ICFGEdge::ICFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00073">ICFGNode.h:73</a></div></div>
418
+ <div class="ttc" id="asvf-ex_8cpp_html_a9d173e935829fe04cef71e75ada50a32"><div class="ttname"><a href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32">dummyVisit</a></div><div class="ttdeci">void dummyVisit(const VFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00166">svf-ex.cpp:166</a></div></div>
419
+ <div class="ttc" id="aclassSVF_1_1GenericNode_html_a2d9cd758d6f8c5189d9b90b74f43e009"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">SVF::GenericNode::getOutEdges</a></div><div class="ttdeci">const GEdgeSetTy &amp; getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00193">GenericGraph.h:193</a></div></div>
393
420
  <div class="ttc" id="aclassSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
394
421
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00198">PointerAnalysis.h:198</a></div></div>
395
422
  <div class="ttc" id="aclassSVF_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#l00101">GenericGraph.h:101</a></div></div>