svf-tools 1.0.913 → 1.0.915

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 (264) hide show
  1. package/SVF-doxygen/html/AbstractInterpretation_8cpp.html +7 -5
  2. package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +1593 -1610
  3. package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +157 -144
  4. package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +797 -786
  5. package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +7 -7
  6. package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +815 -826
  7. package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +153 -196
  8. package/SVF-doxygen/html/classSVF_1_1AEStat.html +116 -120
  9. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +33 -33
  10. package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +1739 -1684
  11. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +33 -33
  12. package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +471 -462
  13. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +35 -47
  14. package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +1261 -1546
  15. package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +0 -2
  16. package/SVF-doxygen/html/files.html +0 -1
  17. package/SVF-doxygen/html/functions.html +4 -7
  18. package/SVF-doxygen/html/functions_a.html +2 -2
  19. package/SVF-doxygen/html/functions_f.html +3 -3
  20. package/SVF-doxygen/html/functions_func.html +2 -2
  21. package/SVF-doxygen/html/functions_func_g.html +16 -16
  22. package/SVF-doxygen/html/functions_func_h.html +21 -57
  23. package/SVF-doxygen/html/functions_func_i.html +21 -12
  24. package/SVF-doxygen/html/functions_func_n.html +1 -1
  25. package/SVF-doxygen/html/functions_func_s.html +13 -19
  26. package/SVF-doxygen/html/functions_func_t.html +1 -1
  27. package/SVF-doxygen/html/functions_func_w.html +1 -1
  28. package/SVF-doxygen/html/functions_g.html +16 -16
  29. package/SVF-doxygen/html/functions_h.html +18 -54
  30. package/SVF-doxygen/html/functions_i.html +32 -23
  31. package/SVF-doxygen/html/functions_l.html +3 -3
  32. package/SVF-doxygen/html/functions_n.html +1 -1
  33. package/SVF-doxygen/html/functions_o.html +4 -4
  34. package/SVF-doxygen/html/functions_p.html +19 -17
  35. package/SVF-doxygen/html/functions_r.html +6 -6
  36. package/SVF-doxygen/html/functions_s.html +18 -26
  37. package/SVF-doxygen/html/functions_t.html +4 -4
  38. package/SVF-doxygen/html/functions_v.html +6 -6
  39. package/SVF-doxygen/html/functions_vars.html +4 -7
  40. package/SVF-doxygen/html/functions_w.html +1 -1
  41. package/SVF-doxygen/html/search/all_0.js +131 -132
  42. package/SVF-doxygen/html/search/all_1.js +504 -504
  43. package/SVF-doxygen/html/search/all_10.js +326 -326
  44. package/SVF-doxygen/html/search/all_11.js +227 -227
  45. package/SVF-doxygen/html/search/all_12.js +559 -562
  46. package/SVF-doxygen/html/search/all_13.js +186 -186
  47. package/SVF-doxygen/html/search/all_14.js +74 -74
  48. package/SVF-doxygen/html/search/all_15.js +175 -175
  49. package/SVF-doxygen/html/search/all_16.js +77 -77
  50. package/SVF-doxygen/html/search/all_17.js +1 -1
  51. package/SVF-doxygen/html/search/all_18.js +1 -1
  52. package/SVF-doxygen/html/search/all_19.js +27 -27
  53. package/SVF-doxygen/html/search/all_1a.js +174 -174
  54. package/SVF-doxygen/html/search/all_2.js +180 -180
  55. package/SVF-doxygen/html/search/all_3.js +635 -635
  56. package/SVF-doxygen/html/search/all_4.js +237 -237
  57. package/SVF-doxygen/html/search/all_5.js +120 -120
  58. package/SVF-doxygen/html/search/all_6.js +236 -236
  59. package/SVF-doxygen/html/search/all_7.js +1039 -1039
  60. package/SVF-doxygen/html/search/all_8.js +212 -224
  61. package/SVF-doxygen/html/search/all_9.js +630 -627
  62. package/SVF-doxygen/html/search/all_a.js +46 -46
  63. package/SVF-doxygen/html/search/all_b.js +24 -24
  64. package/SVF-doxygen/html/search/all_c.js +111 -111
  65. package/SVF-doxygen/html/search/all_d.js +204 -204
  66. package/SVF-doxygen/html/search/all_e.js +207 -207
  67. package/SVF-doxygen/html/search/all_f.js +122 -122
  68. package/SVF-doxygen/html/search/classes_0.js +29 -29
  69. package/SVF-doxygen/html/search/classes_1.js +11 -11
  70. package/SVF-doxygen/html/search/classes_10.js +71 -71
  71. package/SVF-doxygen/html/search/classes_11.js +14 -14
  72. package/SVF-doxygen/html/search/classes_12.js +2 -2
  73. package/SVF-doxygen/html/search/classes_13.js +10 -10
  74. package/SVF-doxygen/html/search/classes_14.js +19 -19
  75. package/SVF-doxygen/html/search/classes_15.js +1 -1
  76. package/SVF-doxygen/html/search/classes_2.js +72 -72
  77. package/SVF-doxygen/html/search/classes_3.js +35 -35
  78. package/SVF-doxygen/html/search/classes_4.js +7 -7
  79. package/SVF-doxygen/html/search/classes_5.js +28 -28
  80. package/SVF-doxygen/html/search/classes_6.js +98 -98
  81. package/SVF-doxygen/html/search/classes_7.js +33 -33
  82. package/SVF-doxygen/html/search/classes_8.js +57 -57
  83. package/SVF-doxygen/html/search/classes_9.js +1 -1
  84. package/SVF-doxygen/html/search/classes_a.js +12 -12
  85. package/SVF-doxygen/html/search/classes_b.js +29 -29
  86. package/SVF-doxygen/html/search/classes_c.js +6 -6
  87. package/SVF-doxygen/html/search/classes_d.js +19 -19
  88. package/SVF-doxygen/html/search/classes_e.js +36 -36
  89. package/SVF-doxygen/html/search/classes_f.js +25 -25
  90. package/SVF-doxygen/html/search/defines_0.js +3 -3
  91. package/SVF-doxygen/html/search/defines_1.js +3 -3
  92. package/SVF-doxygen/html/search/defines_10.js +2 -2
  93. package/SVF-doxygen/html/search/defines_2.js +30 -30
  94. package/SVF-doxygen/html/search/defines_3.js +20 -20
  95. package/SVF-doxygen/html/search/defines_4.js +3 -3
  96. package/SVF-doxygen/html/search/defines_5.js +4 -4
  97. package/SVF-doxygen/html/search/defines_6.js +2 -2
  98. package/SVF-doxygen/html/search/defines_7.js +5 -5
  99. package/SVF-doxygen/html/search/defines_8.js +11 -11
  100. package/SVF-doxygen/html/search/defines_9.js +9 -9
  101. package/SVF-doxygen/html/search/defines_a.js +2 -2
  102. package/SVF-doxygen/html/search/defines_b.js +1 -1
  103. package/SVF-doxygen/html/search/defines_c.js +3 -3
  104. package/SVF-doxygen/html/search/defines_d.js +2 -2
  105. package/SVF-doxygen/html/search/defines_e.js +8 -8
  106. package/SVF-doxygen/html/search/defines_f.js +4 -4
  107. package/SVF-doxygen/html/search/enums_0.js +3 -3
  108. package/SVF-doxygen/html/search/enums_1.js +2 -2
  109. package/SVF-doxygen/html/search/enums_10.js +1 -1
  110. package/SVF-doxygen/html/search/enums_11.js +1 -1
  111. package/SVF-doxygen/html/search/enums_2.js +9 -9
  112. package/SVF-doxygen/html/search/enums_3.js +2 -2
  113. package/SVF-doxygen/html/search/enums_4.js +3 -3
  114. package/SVF-doxygen/html/search/enums_5.js +1 -1
  115. package/SVF-doxygen/html/search/enums_6.js +2 -2
  116. package/SVF-doxygen/html/search/enums_7.js +2 -2
  117. package/SVF-doxygen/html/search/enums_8.js +4 -4
  118. package/SVF-doxygen/html/search/enums_9.js +1 -1
  119. package/SVF-doxygen/html/search/enums_a.js +1 -1
  120. package/SVF-doxygen/html/search/enums_b.js +7 -7
  121. package/SVF-doxygen/html/search/enums_c.js +1 -1
  122. package/SVF-doxygen/html/search/enums_d.js +4 -4
  123. package/SVF-doxygen/html/search/enums_e.js +2 -2
  124. package/SVF-doxygen/html/search/enums_f.js +4 -4
  125. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  126. package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
  127. package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
  128. package/SVF-doxygen/html/search/enumvalues_11.js +6 -6
  129. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  130. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  131. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  132. package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
  133. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  134. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  135. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  136. package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
  137. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  138. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  139. package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
  140. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  141. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  142. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  143. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  144. package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
  145. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  146. package/SVF-doxygen/html/search/enumvalues_f.js +48 -48
  147. package/SVF-doxygen/html/search/files_0.js +18 -18
  148. package/SVF-doxygen/html/search/files_1.js +9 -9
  149. package/SVF-doxygen/html/search/files_10.js +8 -8
  150. package/SVF-doxygen/html/search/files_11.js +8 -8
  151. package/SVF-doxygen/html/search/files_12.js +2 -2
  152. package/SVF-doxygen/html/search/files_2.js +51 -51
  153. package/SVF-doxygen/html/search/files_3.js +14 -14
  154. package/SVF-doxygen/html/search/files_4.js +3 -3
  155. package/SVF-doxygen/html/search/files_5.js +13 -13
  156. package/SVF-doxygen/html/search/files_6.js +10 -10
  157. package/SVF-doxygen/html/search/files_7.js +15 -15
  158. package/SVF-doxygen/html/search/files_8.js +13 -13
  159. package/SVF-doxygen/html/search/files_9.js +18 -18
  160. package/SVF-doxygen/html/search/files_a.js +3 -3
  161. package/SVF-doxygen/html/search/files_b.js +4 -4
  162. package/SVF-doxygen/html/search/files_c.js +20 -20
  163. package/SVF-doxygen/html/search/files_d.js +4 -4
  164. package/SVF-doxygen/html/search/files_e.js +56 -57
  165. package/SVF-doxygen/html/search/files_f.js +8 -8
  166. package/SVF-doxygen/html/search/functions_0.js +13 -13
  167. package/SVF-doxygen/html/search/functions_1.js +366 -366
  168. package/SVF-doxygen/html/search/functions_10.js +140 -140
  169. package/SVF-doxygen/html/search/functions_11.js +140 -140
  170. package/SVF-doxygen/html/search/functions_12.js +291 -293
  171. package/SVF-doxygen/html/search/functions_13.js +52 -52
  172. package/SVF-doxygen/html/search/functions_14.js +41 -41
  173. package/SVF-doxygen/html/search/functions_15.js +70 -70
  174. package/SVF-doxygen/html/search/functions_16.js +38 -38
  175. package/SVF-doxygen/html/search/functions_17.js +3 -3
  176. package/SVF-doxygen/html/search/functions_18.js +174 -174
  177. package/SVF-doxygen/html/search/functions_2.js +92 -92
  178. package/SVF-doxygen/html/search/functions_3.js +257 -257
  179. package/SVF-doxygen/html/search/functions_4.js +85 -85
  180. package/SVF-doxygen/html/search/functions_5.js +54 -54
  181. package/SVF-doxygen/html/search/functions_6.js +65 -65
  182. package/SVF-doxygen/html/search/functions_7.js +857 -857
  183. package/SVF-doxygen/html/search/functions_8.js +164 -176
  184. package/SVF-doxygen/html/search/functions_9.js +439 -436
  185. package/SVF-doxygen/html/search/functions_a.js +30 -30
  186. package/SVF-doxygen/html/search/functions_b.js +2 -2
  187. package/SVF-doxygen/html/search/functions_c.js +22 -22
  188. package/SVF-doxygen/html/search/functions_d.js +81 -81
  189. package/SVF-doxygen/html/search/functions_e.js +34 -34
  190. package/SVF-doxygen/html/search/functions_f.js +58 -58
  191. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  192. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  193. package/SVF-doxygen/html/search/related_0.js +4 -4
  194. package/SVF-doxygen/html/search/related_1.js +2 -2
  195. package/SVF-doxygen/html/search/related_2.js +2 -2
  196. package/SVF-doxygen/html/search/related_3.js +2 -2
  197. package/SVF-doxygen/html/search/related_4.js +2 -2
  198. package/SVF-doxygen/html/search/related_5.js +1 -1
  199. package/SVF-doxygen/html/search/related_6.js +2 -2
  200. package/SVF-doxygen/html/search/related_7.js +5 -5
  201. package/SVF-doxygen/html/search/related_8.js +2 -2
  202. package/SVF-doxygen/html/search/related_9.js +4 -4
  203. package/SVF-doxygen/html/search/related_a.js +19 -19
  204. package/SVF-doxygen/html/search/related_b.js +4 -4
  205. package/SVF-doxygen/html/search/related_c.js +2 -2
  206. package/SVF-doxygen/html/search/related_d.js +11 -11
  207. package/SVF-doxygen/html/search/related_e.js +2 -2
  208. package/SVF-doxygen/html/search/related_f.js +2 -2
  209. package/SVF-doxygen/html/search/typedefs_0.js +20 -20
  210. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  211. package/SVF-doxygen/html/search/typedefs_10.js +65 -65
  212. package/SVF-doxygen/html/search/typedefs_11.js +12 -12
  213. package/SVF-doxygen/html/search/typedefs_12.js +13 -13
  214. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  215. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  216. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  217. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  218. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  219. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  220. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  221. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  222. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  223. package/SVF-doxygen/html/search/typedefs_9.js +4 -4
  224. package/SVF-doxygen/html/search/typedefs_a.js +28 -28
  225. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  226. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  227. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  228. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  229. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  230. package/SVF-doxygen/html/search/variables_0.js +169 -170
  231. package/SVF-doxygen/html/search/variables_1.js +78 -78
  232. package/SVF-doxygen/html/search/variables_10.js +98 -98
  233. package/SVF-doxygen/html/search/variables_11.js +47 -47
  234. package/SVF-doxygen/html/search/variables_12.js +93 -93
  235. package/SVF-doxygen/html/search/variables_13.js +76 -76
  236. package/SVF-doxygen/html/search/variables_14.js +14 -14
  237. package/SVF-doxygen/html/search/variables_15.js +49 -49
  238. package/SVF-doxygen/html/search/variables_16.js +11 -11
  239. package/SVF-doxygen/html/search/variables_17.js +1 -1
  240. package/SVF-doxygen/html/search/variables_18.js +17 -17
  241. package/SVF-doxygen/html/search/variables_2.js +40 -40
  242. package/SVF-doxygen/html/search/variables_3.js +143 -143
  243. package/SVF-doxygen/html/search/variables_4.js +51 -51
  244. package/SVF-doxygen/html/search/variables_5.js +39 -39
  245. package/SVF-doxygen/html/search/variables_6.js +66 -66
  246. package/SVF-doxygen/html/search/variables_7.js +32 -32
  247. package/SVF-doxygen/html/search/variables_8.js +8 -8
  248. package/SVF-doxygen/html/search/variables_9.js +80 -80
  249. package/SVF-doxygen/html/search/variables_a.js +4 -4
  250. package/SVF-doxygen/html/search/variables_b.js +10 -10
  251. package/SVF-doxygen/html/search/variables_c.js +44 -44
  252. package/SVF-doxygen/html/search/variables_d.js +58 -58
  253. package/SVF-doxygen/html/search/variables_e.js +123 -123
  254. package/SVF-doxygen/html/search/variables_f.js +31 -31
  255. package/SVF-doxygen/html/svf-ex_8cpp.html +199 -197
  256. package/SVF-doxygen/html/svf-ex_8cpp_source.html +204 -202
  257. package/package.json +1 -1
  258. package/svf/include/AE/Svfexe/AbstractInterpretation.h +28 -21
  259. package/svf/include/AE/Svfexe/SVFIR2AbsState.h +37 -67
  260. package/svf/lib/AE/Svfexe/AbstractInterpretation.cpp +153 -169
  261. package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +64 -54
  262. package/svf/lib/AE/Svfexe/SVFIR2AbsState.cpp +134 -146
  263. package/svf-llvm/tools/Example/svf-ex.cpp +13 -12
  264. package/svf/lib/AE/Core/SVFIR2Relation.cpp +0 -193
@@ -139,202 +139,203 @@ $(function() {
139
139
  <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
140
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
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_1SVFIR2AbsState.html">SVFIR2AbsState</a>* svfir2ExeState = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html">SVFIR2AbsState</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_1SVFIR2AbsState.html#a2cc9783b020cb3b019d2691ab38e243a">handleAddr</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_1SVFIR2AbsState.html#a82afa83da1b1b17140b5b9c0b7eca153">handleBinary</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_1SVFIR2AbsState.html#af13e2b1c28a16e046776187de62d3c20">handleCmp</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_1SVFIR2AbsState.html#a1930df3df0fa3f955a30beb25204438c">handleLoad</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_1SVFIR2AbsState.html#a4d614da483954db61664603cf0cf72e0">handleStore</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_1SVFIR2AbsState.html#ae9cabdfecbc7773c1b15aafc4abf15e5">handleCopy</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_1SVFIR2AbsState.html#aa36938b22e2d3521f2af9d13c2697d83">handleGep</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_1SVFIR2AbsState.html#acce4bce2322fe1cdcab369d906b9aee2">handleSelect</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_1SVFIR2AbsState.html#a44deea0e4cbc98bf999598d7862fe115">handlePhi</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_1SVFIR2AbsState.html#a175a43f33d55e812ec61a349eb175157">handleCall</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_1SVFIR2AbsState.html#a839a881ecff03f73102c1b48d9dbfb88">handleRet</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
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
142
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> es;</div>
143
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="classSVF_1_1SVFIR2AbsState.html">SVFIR2AbsState</a>* svfir2AbsState = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html">SVFIR2AbsState</a>(SVFIR::getPAG());</div>
144
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</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>
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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#af09515297cb9c31153ed7f32bc3febd2">handleAddr</a>(es, addr);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a9db48252f099848d0f152e9fa523333a">handleBinary</a>(es, binary);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a729cc61337cfe055adc49d04676f5717">handleCmp</a>(es, cmp);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a4478a7e793920ec543d32314f13a5bb9">handleLoad</a>(es, load);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a75204b54b40f1402d670691c0355d6b5">handleStore</a>(es, store);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#abce457a32553584eb656ff0fa4e52a64">handleCopy</a>(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</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">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>
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; <span class="keywordflow">if</span> (gep-&gt;isConstantOffset())</div>
173
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div>
174
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; gep-&gt;accumulateConstantByteOffset();</div>
175
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; gep-&gt;accumulateConstantOffset();</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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a74c008c44d3181d20819323aa83ec0ae">handleGep</a>(es, gep);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a05673fde6e9f697fa6ffb8bc32fb6baa">handleSelect</a>(es, select);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a151cd00e030b8e9b51b907a3da8428e5">handlePhi</a>(es, phi);</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="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>
188
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
189
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// To handle Call Edge</span></div>
190
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#ac5d31c2e3387c04749195d6cdb417a7a">handleCall</a>(es, callPE);</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; <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>
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; svfir2AbsState-&gt;<a class="code" href="classSVF_1_1SVFIR2AbsState.html#a8d4535dae277ade2d1e75678ad89d950">handleRet</a>(es, retPE);</div>
195
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
196
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">else</span></div>
197
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;implement this part&quot;</span>);</div>
198
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
199
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div>
200
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
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</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>
274
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</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>
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>
281
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
201
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
202
+ <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96"> 143</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>
203
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div>
204
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const ICFGNode*&gt;</a> worklist;</div>
205
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const ICFGNode*&gt;</a> visited;</div>
206
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(iNode);</div>
207
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
208
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
209
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div>
210
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</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>
211
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</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>
212
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
213
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
214
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div>
215
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</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>
216
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
217
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
218
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; visited.insert(succNode);</div>
219
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</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"> 166</span>&#160; </div>
225
+ <div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32"> 167</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>
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="l00170"></a><span class="lineno"> 170</span>&#160;}</div>
229
+ <div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a46d99c4d06304a22985a1e7bf04b3e2d"> 174</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>
230
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div>
231
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div>
232
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</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>
233
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span> (!vfg-&gt;<a class="code" href="classSVF_1_1SVFG.html#ad2d19c5b80b01c8a7bb41100bb156279">hasDefSVFGNode</a>(pNode))</div>
234
+ <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span>;</div>
235
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</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>
236
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const VFGNode*&gt;</a> worklist;</div>
237
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;</a> visited;</div>
238
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(vNode);</div>
239
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
240
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
241
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div>
242
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</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>
243
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</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>
244
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</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; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div>
247
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</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>
248
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
249
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div>
250
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; visited.insert(succNode);</div>
251
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</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="l00201"></a><span class="lineno"> 201</span>&#160; </div>
256
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</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>
257
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div>
258
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* node = *it;</div>
259
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32">dummyVisit</a>(node);</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"> 212</span>&#160; </div>
263
+ <div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 213</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>
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; </div>
266
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div>
267
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div>
268
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</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>
269
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; );</div>
270
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
271
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div>
272
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
273
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; LLVMModuleSet::preProcessBCs(moduleNameVec);</div>
274
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
275
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
276
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::buildSVFModule(moduleNameVec);</div>
277
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
278
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div>
279
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</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>
280
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
281
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>* ander = AndersenWaveDiff::createAndersenWaveDiff(pag);</div>
282
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>
286
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
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>
288
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</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>
283
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
284
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</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>
285
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
286
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</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>
287
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
288
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</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>
289
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
290
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> svfBuilder;</div>
291
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</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>
292
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
293
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span> (Options::PTSPrint())</div>
294
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; {</div>
295
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : *svfg)</div>
296
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div>
297
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node = it.second;</div>
298
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span> (node-&gt;<a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>())</div>
299
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
300
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</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>
301
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</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>
302
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</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>
303
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; {</div>
304
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node2 = edge-&gt;getDstNode();</div>
305
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (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; <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>
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="l00269"></a><span class="lineno"> 269</span>&#160; </div>
312
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> (Options::PTSPrint())</div>
313
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div>
314
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; it : *icfg)</div>
315
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; {</div>
316
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node = it.second;</div>
317
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a>(icfg, node);</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; </div>
321
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// clean up memory</span></div>
322
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">delete</span> vfg;</div>
323
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; AndersenWaveDiff::releaseAndersenWaveDiff();</div>
324
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; SVFIR::releaseSVFIR();</div>
325
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
326
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;dumpModulesToFile(<span class="stringliteral">&quot;.svf.bc&quot;</span>);</div>
327
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div>
328
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; llvm::llvm_shutdown();</div>
329
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> 0;</div>
330
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div>
331
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
331
332
  </div><!-- fragment --></div><!-- contents -->
332
333
  <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>
333
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>
334
- <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>
335
- <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>
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#l00174">svf-ex.cpp:174</a></div></div>
336
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a151cd00e030b8e9b51b907a3da8428e5"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a151cd00e030b8e9b51b907a3da8428e5">SVF::SVFIR2AbsState::handlePhi</a></div><div class="ttdeci">void handlePhi(AbstractState &amp;es, const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01059">SVFIR2AbsState.cpp:1059</a></div></div>
337
+ <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#l00213">svf-ex.cpp:213</a></div></div>
336
338
  <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>
337
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aa36938b22e2d3521f2af9d13c2697d83"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aa36938b22e2d3521f2af9d13c2697d83">SVF::SVFIR2AbsState::handleGep</a></div><div class="ttdeci">void handleGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01018">SVFIR2AbsState.cpp:1018</a></div></div>
338
339
  <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>
339
340
  <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
341
  <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>
@@ -348,36 +349,39 @@ $(function() {
348
349
  <div class="ttc" id="aLLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
349
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#l00096">GeneralType.h:96</a></div></div>
350
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>
351
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a44deea0e4cbc98bf999598d7862fe115"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a44deea0e4cbc98bf999598d7862fe115">SVF::SVFIR2AbsState::handlePhi</a></div><div class="ttdeci">void handlePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01071">SVFIR2AbsState.cpp:1071</a></div></div>
352
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_af09515297cb9c31153ed7f32bc3febd2"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#af09515297cb9c31153ed7f32bc3febd2">SVF::SVFIR2AbsState::handleAddr</a></div><div class="ttdeci">void handleAddr(AbstractState &amp;es, const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00601">SVFIR2AbsState.cpp:601</a></div></div>
352
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>
353
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>
354
355
  <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#l00881">SVFStatements.h:881</a></div></div>
355
356
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00112">LLVMModule.h:112</a></div></div>
356
357
  <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>
358
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_abce457a32553584eb656ff0fa4e52a64"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#abce457a32553584eb656ff0fa4e52a64">SVF::SVFIR2AbsState::handleCopy</a></div><div class="ttdeci">void handleCopy(AbstractState &amp;es, const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00925">SVFIR2AbsState.cpp:925</a></div></div>
357
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>
358
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#l00670">SVFStatements.h:670</a></div></div>
359
- <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>
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#l00143">svf-ex.cpp:143</a></div></div>
360
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#l00936">SVFStatements.h:936</a></div></div>
363
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a9db48252f099848d0f152e9fa523333a"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a9db48252f099848d0f152e9fa523333a">SVF::SVFIR2AbsState::handleBinary</a></div><div class="ttdeci">void handleBinary(AbstractState &amp;es, const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00626">SVFIR2AbsState.cpp:626</a></div></div>
361
364
  <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>
362
365
  <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>
363
366
  <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>
367
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a4478a7e793920ec543d32314f13a5bb9"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a4478a7e793920ec543d32314f13a5bb9">SVF::SVFIR2AbsState::handleLoad</a></div><div class="ttdeci">void handleLoad(AbstractState &amp;es, const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00874">SVFIR2AbsState.cpp:874</a></div></div>
364
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>
365
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>
366
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>
367
371
  <div class="ttc" id="aCommandLine_8h_html"><div class="ttname"><a href="CommandLine_8h.html">CommandLine.h</a></div></div>
368
372
  <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#l00610">SVFStatements.h:610</a></div></div>
373
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a8d4535dae277ade2d1e75678ad89d950"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a8d4535dae277ade2d1e75678ad89d950">SVF::SVFIR2AbsState::handleRet</a></div><div class="ttdeci">void handleRet(AbstractState &amp;es, const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01087">SVFIR2AbsState.cpp:1087</a></div></div>
369
374
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
370
375
  <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>
371
376
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01022">SVFStatements.h:1022</a></div></div>
372
377
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00452">SVFStatements.h:452</a></div></div>
373
378
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
374
379
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
375
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a4d614da483954db61664603cf0cf72e0"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a4d614da483954db61664603cf0cf72e0">SVF::SVFIR2AbsState::handleStore</a></div><div class="ttdeci">void handleStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00912">SVFIR2AbsState.cpp:912</a></div></div>
376
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a839a881ecff03f73102c1b48d9dbfb88"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a839a881ecff03f73102c1b48d9dbfb88">SVF::SVFIR2AbsState::handleRet</a></div><div class="ttdeci">void handleRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01099">SVFIR2AbsState.cpp:1099</a></div></div>
377
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_af13e2b1c28a16e046776187de62d3c20"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#af13e2b1c28a16e046776187de62d3c20">SVF::SVFIR2AbsState::handleCmp</a></div><div class="ttdeci">void handleCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00700">SVFIR2AbsState.cpp:700</a></div></div>
378
380
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
379
381
  <div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo &amp; getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class.</div></div>
382
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a05673fde6e9f697fa6ffb8bc32fb6baa"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a05673fde6e9f697fa6ffb8bc32fb6baa">SVF::SVFIR2AbsState::handleSelect</a></div><div class="ttdeci">void handleSelect(AbstractState &amp;es, const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01031">SVFIR2AbsState.cpp:1031</a></div></div>
380
383
  <div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
384
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ac5d31c2e3387c04749195d6cdb417a7a"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ac5d31c2e3387c04749195d6cdb417a7a">SVF::SVFIR2AbsState::handleCall</a></div><div class="ttdeci">void handleCall(AbstractState &amp;es, const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01077">SVFIR2AbsState.cpp:1077</a></div></div>
381
385
  <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>
382
386
  <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>
383
387
  <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>
@@ -386,16 +390,17 @@ $(function() {
386
390
  <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#l00489">SVFStatements.h:489</a></div></div>
387
391
  <div class="ttc" id="aSVFG_8h_html"><div class="ttname"><a href="SVFG_8h.html">SVFG.h</a></div></div>
388
392
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
393
+ <div class="ttc" id="aclassSVF_1_1AbstractState_html"><div class="ttname"><a href="classSVF_1_1AbstractState.html">SVF::AbstractState</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00054">AbstractState.h:54</a></div></div>
389
394
  <div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00526">SVFStatements.h:526</a></div></div>
390
395
  <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>
391
396
  <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>
392
397
  <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>
398
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a74c008c44d3181d20819323aa83ec0ae"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a74c008c44d3181d20819323aa83ec0ae">SVF::SVFIR2AbsState::handleGep</a></div><div class="ttdeci">void handleGep(AbstractState &amp;es, const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01006">SVFIR2AbsState.cpp:1006</a></div></div>
399
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a729cc61337cfe055adc49d04676f5717"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a729cc61337cfe055adc49d04676f5717">SVF::SVFIR2AbsState::handleCmp</a></div><div class="ttdeci">void handleCmp(AbstractState &amp;es, const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00688">SVFIR2AbsState.cpp:688</a></div></div>
393
400
  <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>
394
401
  <div class="ttc" id="aSVFIR2AbsState_8h_html"><div class="ttname"><a href="SVFIR2AbsState_8h.html">SVFIR2AbsState.h</a></div></div>
395
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_acce4bce2322fe1cdcab369d906b9aee2"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#acce4bce2322fe1cdcab369d906b9aee2">SVF::SVFIR2AbsState::handleSelect</a></div><div class="ttdeci">void handleSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01043">SVFIR2AbsState.cpp:1043</a></div></div>
396
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>
397
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>
398
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a82afa83da1b1b17140b5b9c0b7eca153"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a82afa83da1b1b17140b5b9c0b7eca153">SVF::SVFIR2AbsState::handleBinary</a></div><div class="ttdeci">void handleBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00638">SVFIR2AbsState.cpp:638</a></div></div>
399
404
  <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html">SVF::SVFIR2AbsState</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8h_source.html#l00042">SVFIR2AbsState.h:42</a></div></div>
400
405
  <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#l00943">LLVMUtil.cpp:943</a></div></div>
401
406
  <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>
@@ -407,15 +412,12 @@ $(function() {
407
412
  <div class="ttc" id="aclassSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
408
413
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a6e2ff63437d07a30cc6db35de032728a"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
409
414
  <div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
410
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a2cc9783b020cb3b019d2691ab38e243a"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a2cc9783b020cb3b019d2691ab38e243a">SVF::SVFIR2AbsState::handleAddr</a></div><div class="ttdeci">void handleAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00613">SVFIR2AbsState.cpp:613</a></div></div>
411
415
  <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>
412
416
  <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>
413
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a1930df3df0fa3f955a30beb25204438c"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a1930df3df0fa3f955a30beb25204438c">SVF::SVFIR2AbsState::handleLoad</a></div><div class="ttdeci">void handleLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00886">SVFIR2AbsState.cpp:886</a></div></div>
414
417
  <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>
415
418
  <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>
416
- <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>
417
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ae9cabdfecbc7773c1b15aafc4abf15e5"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ae9cabdfecbc7773c1b15aafc4abf15e5">SVF::SVFIR2AbsState::handleCopy</a></div><div class="ttdeci">void handleCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00937">SVFIR2AbsState.cpp:937</a></div></div>
418
- <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a175a43f33d55e812ec61a349eb175157"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a175a43f33d55e812ec61a349eb175157">SVF::SVFIR2AbsState::handleCall</a></div><div class="ttdeci">void handleCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01089">SVFIR2AbsState.cpp:1089</a></div></div>
419
+ <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#l00167">svf-ex.cpp:167</a></div></div>
420
+ <div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a75204b54b40f1402d670691c0355d6b5"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a75204b54b40f1402d670691c0355d6b5">SVF::SVFIR2AbsState::handleStore</a></div><div class="ttdeci">void handleStore(AbstractState &amp;es, const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00900">SVFIR2AbsState.cpp:900</a></div></div>
419
421
  <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>
420
422
  <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>
421
423
  <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>