svf-tools 1.0.896 → 1.0.897

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/SVF-doxygen/html/globals_a.html +1 -1
  2. package/SVF-doxygen/html/globals_d.html +3 -0
  3. package/SVF-doxygen/html/globals_func_a.html +1 -1
  4. package/SVF-doxygen/html/globals_func_d.html +3 -0
  5. package/SVF-doxygen/html/globals_func_p.html +1 -1
  6. package/SVF-doxygen/html/globals_func_t.html +1 -1
  7. package/SVF-doxygen/html/globals_p.html +1 -1
  8. package/SVF-doxygen/html/globals_t.html +1 -1
  9. package/SVF-doxygen/html/globals_vars.html +3 -3
  10. package/SVF-doxygen/html/globals_z.html +3 -3
  11. package/SVF-doxygen/html/search/all_1.js +1 -1
  12. package/SVF-doxygen/html/search/all_10.js +325 -325
  13. package/SVF-doxygen/html/search/all_11.js +226 -226
  14. package/SVF-doxygen/html/search/all_12.js +570 -570
  15. package/SVF-doxygen/html/search/all_13.js +207 -207
  16. package/SVF-doxygen/html/search/all_14.js +70 -70
  17. package/SVF-doxygen/html/search/all_15.js +176 -176
  18. package/SVF-doxygen/html/search/all_16.js +77 -77
  19. package/SVF-doxygen/html/search/all_17.js +1 -1
  20. package/SVF-doxygen/html/search/all_18.js +1 -1
  21. package/SVF-doxygen/html/search/all_19.js +26 -26
  22. package/SVF-doxygen/html/search/all_1a.js +179 -179
  23. package/SVF-doxygen/html/search/all_4.js +42 -41
  24. package/SVF-doxygen/html/search/all_5.js +126 -126
  25. package/SVF-doxygen/html/search/all_6.js +232 -232
  26. package/SVF-doxygen/html/search/all_7.js +1047 -1047
  27. package/SVF-doxygen/html/search/all_8.js +215 -215
  28. package/SVF-doxygen/html/search/all_9.js +629 -629
  29. package/SVF-doxygen/html/search/all_a.js +46 -46
  30. package/SVF-doxygen/html/search/all_b.js +26 -26
  31. package/SVF-doxygen/html/search/all_c.js +115 -115
  32. package/SVF-doxygen/html/search/all_d.js +204 -204
  33. package/SVF-doxygen/html/search/all_e.js +209 -209
  34. package/SVF-doxygen/html/search/all_f.js +122 -122
  35. package/SVF-doxygen/html/search/classes_0.js +28 -28
  36. package/SVF-doxygen/html/search/classes_1.js +11 -11
  37. package/SVF-doxygen/html/search/classes_10.js +74 -74
  38. package/SVF-doxygen/html/search/classes_11.js +14 -14
  39. package/SVF-doxygen/html/search/classes_12.js +2 -2
  40. package/SVF-doxygen/html/search/classes_13.js +10 -10
  41. package/SVF-doxygen/html/search/classes_14.js +19 -19
  42. package/SVF-doxygen/html/search/classes_15.js +1 -1
  43. package/SVF-doxygen/html/search/classes_2.js +73 -73
  44. package/SVF-doxygen/html/search/classes_3.js +35 -35
  45. package/SVF-doxygen/html/search/classes_4.js +8 -8
  46. package/SVF-doxygen/html/search/classes_5.js +28 -28
  47. package/SVF-doxygen/html/search/classes_6.js +98 -98
  48. package/SVF-doxygen/html/search/classes_7.js +38 -38
  49. package/SVF-doxygen/html/search/classes_8.js +59 -59
  50. package/SVF-doxygen/html/search/classes_9.js +1 -1
  51. package/SVF-doxygen/html/search/classes_a.js +12 -12
  52. package/SVF-doxygen/html/search/classes_b.js +29 -29
  53. package/SVF-doxygen/html/search/classes_c.js +6 -6
  54. package/SVF-doxygen/html/search/classes_d.js +19 -19
  55. package/SVF-doxygen/html/search/classes_e.js +36 -36
  56. package/SVF-doxygen/html/search/classes_f.js +25 -25
  57. package/SVF-doxygen/html/search/defines_0.js +3 -3
  58. package/SVF-doxygen/html/search/defines_1.js +3 -3
  59. package/SVF-doxygen/html/search/defines_10.js +2 -2
  60. package/SVF-doxygen/html/search/defines_2.js +30 -30
  61. package/SVF-doxygen/html/search/defines_3.js +20 -20
  62. package/SVF-doxygen/html/search/defines_4.js +3 -3
  63. package/SVF-doxygen/html/search/defines_5.js +4 -4
  64. package/SVF-doxygen/html/search/defines_6.js +2 -2
  65. package/SVF-doxygen/html/search/defines_7.js +5 -5
  66. package/SVF-doxygen/html/search/defines_8.js +11 -11
  67. package/SVF-doxygen/html/search/defines_9.js +9 -9
  68. package/SVF-doxygen/html/search/defines_a.js +2 -2
  69. package/SVF-doxygen/html/search/defines_b.js +1 -1
  70. package/SVF-doxygen/html/search/defines_c.js +4 -4
  71. package/SVF-doxygen/html/search/defines_d.js +2 -2
  72. package/SVF-doxygen/html/search/defines_e.js +8 -8
  73. package/SVF-doxygen/html/search/defines_f.js +4 -4
  74. package/SVF-doxygen/html/search/enums_0.js +4 -4
  75. package/SVF-doxygen/html/search/enums_1.js +2 -2
  76. package/SVF-doxygen/html/search/enums_10.js +1 -1
  77. package/SVF-doxygen/html/search/enums_11.js +1 -1
  78. package/SVF-doxygen/html/search/enums_2.js +8 -8
  79. package/SVF-doxygen/html/search/enums_3.js +1 -1
  80. package/SVF-doxygen/html/search/enums_4.js +4 -4
  81. package/SVF-doxygen/html/search/enums_5.js +1 -1
  82. package/SVF-doxygen/html/search/enums_6.js +2 -2
  83. package/SVF-doxygen/html/search/enums_7.js +2 -2
  84. package/SVF-doxygen/html/search/enums_8.js +4 -4
  85. package/SVF-doxygen/html/search/enums_9.js +1 -1
  86. package/SVF-doxygen/html/search/enums_a.js +1 -1
  87. package/SVF-doxygen/html/search/enums_b.js +7 -7
  88. package/SVF-doxygen/html/search/enums_c.js +1 -1
  89. package/SVF-doxygen/html/search/enums_d.js +4 -4
  90. package/SVF-doxygen/html/search/enums_e.js +2 -2
  91. package/SVF-doxygen/html/search/enums_f.js +4 -4
  92. package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
  93. package/SVF-doxygen/html/search/enumvalues_1.js +15 -15
  94. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  95. package/SVF-doxygen/html/search/enumvalues_11.js +4 -4
  96. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  97. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  98. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  99. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  100. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  101. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  102. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  103. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  104. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  105. package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
  106. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  107. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  108. package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
  109. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  110. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  111. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  112. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  113. package/SVF-doxygen/html/search/enumvalues_f.js +47 -47
  114. package/SVF-doxygen/html/search/files_0.js +16 -16
  115. package/SVF-doxygen/html/search/files_1.js +9 -9
  116. package/SVF-doxygen/html/search/files_10.js +8 -8
  117. package/SVF-doxygen/html/search/files_11.js +8 -8
  118. package/SVF-doxygen/html/search/files_12.js +2 -2
  119. package/SVF-doxygen/html/search/files_2.js +53 -53
  120. package/SVF-doxygen/html/search/files_3.js +14 -14
  121. package/SVF-doxygen/html/search/files_4.js +5 -5
  122. package/SVF-doxygen/html/search/files_5.js +13 -13
  123. package/SVF-doxygen/html/search/files_6.js +10 -10
  124. package/SVF-doxygen/html/search/files_7.js +17 -17
  125. package/SVF-doxygen/html/search/files_8.js +13 -13
  126. package/SVF-doxygen/html/search/files_9.js +18 -18
  127. package/SVF-doxygen/html/search/files_a.js +3 -3
  128. package/SVF-doxygen/html/search/files_b.js +4 -4
  129. package/SVF-doxygen/html/search/files_c.js +20 -20
  130. package/SVF-doxygen/html/search/files_d.js +4 -4
  131. package/SVF-doxygen/html/search/files_e.js +62 -62
  132. package/SVF-doxygen/html/search/files_f.js +8 -8
  133. package/SVF-doxygen/html/search/functions_0.js +13 -13
  134. package/SVF-doxygen/html/search/functions_1.js +368 -368
  135. package/SVF-doxygen/html/search/functions_10.js +140 -140
  136. package/SVF-doxygen/html/search/functions_11.js +140 -140
  137. package/SVF-doxygen/html/search/functions_12.js +299 -299
  138. package/SVF-doxygen/html/search/functions_13.js +73 -73
  139. package/SVF-doxygen/html/search/functions_14.js +41 -41
  140. package/SVF-doxygen/html/search/functions_15.js +72 -72
  141. package/SVF-doxygen/html/search/functions_16.js +38 -38
  142. package/SVF-doxygen/html/search/functions_17.js +3 -3
  143. package/SVF-doxygen/html/search/functions_18.js +179 -179
  144. package/SVF-doxygen/html/search/functions_2.js +94 -94
  145. package/SVF-doxygen/html/search/functions_3.js +261 -261
  146. package/SVF-doxygen/html/search/functions_4.js +85 -84
  147. package/SVF-doxygen/html/search/functions_5.js +57 -57
  148. package/SVF-doxygen/html/search/functions_6.js +65 -65
  149. package/SVF-doxygen/html/search/functions_7.js +863 -863
  150. package/SVF-doxygen/html/search/functions_8.js +162 -162
  151. package/SVF-doxygen/html/search/functions_9.js +438 -438
  152. package/SVF-doxygen/html/search/functions_a.js +30 -30
  153. package/SVF-doxygen/html/search/functions_b.js +2 -2
  154. package/SVF-doxygen/html/search/functions_c.js +25 -25
  155. package/SVF-doxygen/html/search/functions_d.js +82 -82
  156. package/SVF-doxygen/html/search/functions_e.js +36 -36
  157. package/SVF-doxygen/html/search/functions_f.js +58 -58
  158. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  159. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  160. package/SVF-doxygen/html/search/related_0.js +4 -4
  161. package/SVF-doxygen/html/search/related_1.js +2 -2
  162. package/SVF-doxygen/html/search/related_2.js +2 -2
  163. package/SVF-doxygen/html/search/related_3.js +2 -2
  164. package/SVF-doxygen/html/search/related_4.js +2 -2
  165. package/SVF-doxygen/html/search/related_5.js +1 -1
  166. package/SVF-doxygen/html/search/related_6.js +2 -2
  167. package/SVF-doxygen/html/search/related_7.js +5 -5
  168. package/SVF-doxygen/html/search/related_8.js +2 -2
  169. package/SVF-doxygen/html/search/related_9.js +4 -4
  170. package/SVF-doxygen/html/search/related_a.js +19 -19
  171. package/SVF-doxygen/html/search/related_b.js +4 -4
  172. package/SVF-doxygen/html/search/related_c.js +2 -2
  173. package/SVF-doxygen/html/search/related_d.js +12 -12
  174. package/SVF-doxygen/html/search/related_e.js +2 -2
  175. package/SVF-doxygen/html/search/related_f.js +2 -2
  176. package/SVF-doxygen/html/search/typedefs_0.js +19 -19
  177. package/SVF-doxygen/html/search/typedefs_1.js +27 -27
  178. package/SVF-doxygen/html/search/typedefs_10.js +63 -63
  179. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  180. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  181. package/SVF-doxygen/html/search/typedefs_13.js +40 -40
  182. package/SVF-doxygen/html/search/typedefs_14.js +11 -11
  183. package/SVF-doxygen/html/search/typedefs_2.js +125 -125
  184. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  185. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  186. package/SVF-doxygen/html/search/typedefs_5.js +42 -42
  187. package/SVF-doxygen/html/search/typedefs_6.js +54 -54
  188. package/SVF-doxygen/html/search/typedefs_7.js +47 -47
  189. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  190. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  191. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  192. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  193. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  194. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  195. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  196. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  197. package/SVF-doxygen/html/search/variables_0.js +177 -177
  198. package/SVF-doxygen/html/search/variables_1.js +76 -76
  199. package/SVF-doxygen/html/search/variables_10.js +98 -98
  200. package/SVF-doxygen/html/search/variables_11.js +46 -46
  201. package/SVF-doxygen/html/search/variables_12.js +93 -93
  202. package/SVF-doxygen/html/search/variables_13.js +76 -76
  203. package/SVF-doxygen/html/search/variables_14.js +14 -14
  204. package/SVF-doxygen/html/search/variables_15.js +49 -49
  205. package/SVF-doxygen/html/search/variables_16.js +11 -11
  206. package/SVF-doxygen/html/search/variables_17.js +1 -1
  207. package/SVF-doxygen/html/search/variables_18.js +17 -17
  208. package/SVF-doxygen/html/search/variables_2.js +40 -40
  209. package/SVF-doxygen/html/search/variables_3.js +142 -142
  210. package/SVF-doxygen/html/search/variables_4.js +51 -51
  211. package/SVF-doxygen/html/search/variables_5.js +39 -39
  212. package/SVF-doxygen/html/search/variables_6.js +66 -66
  213. package/SVF-doxygen/html/search/variables_7.js +34 -34
  214. package/SVF-doxygen/html/search/variables_8.js +8 -8
  215. package/SVF-doxygen/html/search/variables_9.js +79 -79
  216. package/SVF-doxygen/html/search/variables_a.js +4 -4
  217. package/SVF-doxygen/html/search/variables_b.js +10 -10
  218. package/SVF-doxygen/html/search/variables_c.js +45 -45
  219. package/SVF-doxygen/html/search/variables_d.js +57 -57
  220. package/SVF-doxygen/html/search/variables_e.js +123 -123
  221. package/SVF-doxygen/html/search/variables_f.js +31 -31
  222. package/SVF-doxygen/html/svf-ex_8cpp.html +259 -209
  223. package/SVF-doxygen/html/svf-ex_8cpp_source.html +229 -202
  224. package/package.json +1 -1
  225. package/svf-llvm/tools/Example/svf-ex.cpp +49 -30
@@ -83,22 +83,24 @@ $(function() {
83
83
  <table class="memberdecls">
84
84
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
85
85
  Functions</h2></td></tr>
86
- <tr class="memitem:ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f">aliasQuery</a> (<a class="el" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta, <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *v1, <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *v2)</td></tr>
87
- <tr class="separator:ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
88
- <tr class="memitem:a985b6c880c7922538046c6a1fa987829"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#a985b6c880c7922538046c6a1fa987829">printPts</a> (<a class="el" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta, <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *val)</td></tr>
89
- <tr class="separator:a985b6c880c7922538046c6a1fa987829"><td class="memSeparator" colspan="2">&#160;</td></tr>
86
+ <tr class="memitem:af6e60bf5c69a516b51753497070f4c9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943">SVF::AliasResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#af6e60bf5c69a516b51753497070f4c9b">aliasQuery</a> (<a class="el" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *v1, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *v2)</td></tr>
87
+ <tr class="separator:af6e60bf5c69a516b51753497070f4c9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
88
+ <tr class="memitem:a3128c23336edaa73601d97d202a627c4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cJSON_8cpp.html#ae1adbce218e7a9d09164012443191d24">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#a3128c23336edaa73601d97d202a627c4">printPts</a> (<a class="el" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a> *pta, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *svfval)</td></tr>
89
+ <tr class="separator:a3128c23336edaa73601d97d202a627c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
90
90
  <tr class="memitem:a8fa9e6583c354b1883a32b8abf98779f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#a8fa9e6583c354b1883a32b8abf98779f">traverseOnSVFStmt</a> (const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node)</td></tr>
91
91
  <tr class="separator:a8fa9e6583c354b1883a32b8abf98779f"><td class="memSeparator" colspan="2">&#160;</td></tr>
92
92
  <tr class="memitem:a19f3fe331a1e7050a513672a91743b96"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a> (<a class="el" href="classSVF_1_1ICFG.html">ICFG</a> *icfg, const <a class="el" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *iNode)</td></tr>
93
93
  <tr class="separator:a19f3fe331a1e7050a513672a91743b96"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
- <tr class="memitem:ad58149e5445ad22ce478339e103ab42b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#ad58149e5445ad22ce478339e103ab42b">traverseOnVFG</a> (const <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> *vfg, <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *val)</td></tr>
95
- <tr class="separator:ad58149e5445ad22ce478339e103ab42b"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
+ <tr class="memitem:a9d173e935829fe04cef71e75ada50a32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32">dummyVisit</a> (const <a class="el" href="classSVF_1_1VFGNode.html">VFGNode</a> *node)</td></tr>
95
+ <tr class="separator:a9d173e935829fe04cef71e75ada50a32"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
+ <tr class="memitem:a46d99c4d06304a22985a1e7bf04b3e2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#a46d99c4d06304a22985a1e7bf04b3e2d">traverseOnVFG</a> (const <a class="el" href="classSVF_1_1SVFG.html">SVFG</a> *vfg, const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *svfval)</td></tr>
97
+ <tr class="separator:a46d99c4d06304a22985a1e7bf04b3e2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
98
  <tr class="memitem:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a> (int argc, char **argv)</td></tr>
97
99
  <tr class="separator:a3c04138a5bfe5d72780bb7e82a18e627"><td class="memSeparator" colspan="2">&#160;</td></tr>
98
100
  </table>
99
101
  <h2 class="groupheader">Function Documentation</h2>
100
- <a id="ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f"></a>
101
- <h2 class="memtitle"><span class="permalink"><a href="#ad2f24f5ef6a8eaf0e4a77a8a4d31bc9f">&#9670;&nbsp;</a></span>aliasQuery()</h2>
102
+ <a id="af6e60bf5c69a516b51753497070f4c9b"></a>
103
+ <h2 class="memtitle"><span class="permalink"><a href="#af6e60bf5c69a516b51753497070f4c9b">&#9670;&nbsp;</a></span>aliasQuery()</h2>
102
104
 
103
105
  <div class="memitem">
104
106
  <div class="memproto">
@@ -112,13 +114,13 @@ Functions</h2></td></tr>
112
114
  <tr>
113
115
  <td class="paramkey"></td>
114
116
  <td></td>
115
- <td class="paramtype"><a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
117
+ <td class="paramtype">const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
116
118
  <td class="paramname"><em>v1</em>, </td>
117
119
  </tr>
118
120
  <tr>
119
121
  <td class="paramkey"></td>
120
122
  <td></td>
121
- <td class="paramtype"><a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
123
+ <td class="paramtype">const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
122
124
  <td class="paramname"><em>v2</em>&#160;</td>
123
125
  </tr>
124
126
  <tr>
@@ -128,12 +130,35 @@ Functions</h2></td></tr>
128
130
  </tr>
129
131
  </table>
130
132
  </div><div class="memdoc">
131
- <p>An example to query alias results of two LLVM values </p>
133
+ <p>An example to query alias results of two <a class="el" href="namespaceSVF.html" title="for isBitcode">SVF</a> values </p>
132
134
 
133
- <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00043">43</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
134
- <div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
135
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(v1,v2);</div>
136
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div>
135
+ <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00044">44</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
136
+ <div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div>
137
+ <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">alias</a>(v1, v2);</div>
138
+ <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div>
139
+ </div><!-- fragment -->
140
+ </div>
141
+ </div>
142
+ <a id="a9d173e935829fe04cef71e75ada50a32"></a>
143
+ <h2 class="memtitle"><span class="permalink"><a href="#a9d173e935829fe04cef71e75ada50a32">&#9670;&nbsp;</a></span>dummyVisit()</h2>
144
+
145
+ <div class="memitem">
146
+ <div class="memproto">
147
+ <table class="memname">
148
+ <tr>
149
+ <td class="memname">void dummyVisit </td>
150
+ <td>(</td>
151
+ <td class="paramtype">const <a class="el" href="classSVF_1_1VFGNode.html">VFGNode</a> *&#160;</td>
152
+ <td class="paramname"><em>node</em></td><td>)</td>
153
+ <td></td>
154
+ </tr>
155
+ </table>
156
+ </div><div class="memdoc">
157
+
158
+ <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00166">166</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
159
+ <div class="fragment"><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div>
160
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; </div>
161
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div>
137
162
  </div><!-- fragment -->
138
163
  </div>
139
164
  </div>
@@ -164,72 +189,87 @@ Functions</h2></td></tr>
164
189
  </div><div class="memdoc">
165
190
  <p>Build Program Assignment Graph (SVFIR)</p>
166
191
  <p>Create Andersen's pointer analysis</p>
167
- <p>Query aliases aliasQuery(ander,value1,value2);</p>
168
- <p>Print points-to information printPts(ander, value1);</p>
169
192
  <p>Call Graph</p>
170
193
  <p>ICFG</p>
171
194
  <p>Value-Flow Graph (VFG)</p>
172
195
  <p>Sparse value-flow graph (SVFG)</p>
173
- <p>Collect uses of an LLVM Value traverseOnVFG(svfg, value);</p>
196
+ <p>Collect uses of an LLVM Value</p>
197
+ <p>Print points-to information</p>
174
198
  <p>Collect all successor nodes on ICFG</p>
175
199
 
176
- <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00205">205</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
177
- <div class="fragment"><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div>
178
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
179
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div>
180
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div>
181
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; argc, argv, <span class="stringliteral">&quot;Whole Program Points-to Analysis&quot;</span>, <span class="stringliteral">&quot;[options] &lt;input-bitcode...&gt;&quot;</span></div>
182
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; );</div>
183
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
184
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">&quot;ir_annotator&quot;</span>)</div>
185
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div>
186
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; LLVMModuleSet::preProcessBCs(moduleNameVec);</div>
187
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
188
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
189
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::buildSVFModule(moduleNameVec);</div>
200
+ <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00212">212</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
201
+ <div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div>
202
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
203
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; std::vector&lt;std::string&gt; moduleNameVec;</div>
204
+ <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>
205
+ <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>
206
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; );</div>
190
207
  <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
191
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div>
192
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div>
193
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; </div>
208
+ <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>
209
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; {</div>
210
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; LLVMModuleSet::preProcessBCs(moduleNameVec);</div>
211
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
194
212
  <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
195
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>* ander = AndersenWaveDiff::createAndersenWaveDiff(pag);</div>
196
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
213
+ <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>
214
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; </div>
215
+ <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>
216
+ <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.build();</div>
197
217
  <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
218
+ <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>
198
219
  <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div>
199
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph = ander-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div>
200
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; </div>
201
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-&gt;<a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
202
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; icfg-&gt;<a class="code" href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">dump</a>(<span class="stringliteral">&quot;icfg&quot;</span>);</div>
220
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
221
+ <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>
222
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
223
+ <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>
203
224
  <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
204
225
  <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>
205
226
  <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
206
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> svfBuilder(<span class="keyword">true</span>);</div>
207
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">//SVFG* svfg =</span></div>
208
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; svfBuilder.buildFullSVFG(ander);</div>
209
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div>
210
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
211
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div>
212
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it : *icfg)</div>
213
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
214
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node = it.second;</div>
215
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a>(icfg, node);</div>
216
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
217
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
218
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// clean up memory</span></div>
219
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">delete</span> vfg;</div>
220
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; AndersenWaveDiff::releaseAndersenWaveDiff();</div>
221
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; SVFIR::releaseSVFIR();</div>
222
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
223
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; LLVMModuleSet::getLLVMModuleSet()-&gt;dumpModulesToFile(<span class="stringliteral">&quot;.svf.bc&quot;</span>);</div>
224
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div>
225
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; llvm::llvm_shutdown();</div>
226
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> 0;</div>
227
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;}</div>
227
+ <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>
228
+ <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>
229
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; </div>
230
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span> (Options::PTSPrint())</div>
231
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; {</div>
232
+ <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>
233
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div>
234
+ <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>
235
+ <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>
236
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
237
+ <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>
238
+ <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>
239
+ <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>
240
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; {</div>
241
+ <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>
242
+ <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>
243
+ <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>
244
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
245
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
246
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div>
247
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div>
248
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
249
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (Options::PTSPrint())</div>
250
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
251
+ <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>
252
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
253
+ <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>
254
+ <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>
255
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
256
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
257
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; </div>
258
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// clean up memory</span></div>
259
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">delete</span> vfg;</div>
260
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; AndersenWaveDiff::releaseAndersenWaveDiff();</div>
261
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; SVFIR::releaseSVFIR();</div>
262
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
263
+ <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>
264
+ <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>
265
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; llvm::llvm_shutdown();</div>
266
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> 0;</div>
267
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div>
228
268
  </div><!-- fragment -->
229
269
  </div>
230
270
  </div>
231
- <a id="a985b6c880c7922538046c6a1fa987829"></a>
232
- <h2 class="memtitle"><span class="permalink"><a href="#a985b6c880c7922538046c6a1fa987829">&#9670;&nbsp;</a></span>printPts()</h2>
271
+ <a id="a3128c23336edaa73601d97d202a627c4"></a>
272
+ <h2 class="memtitle"><span class="permalink"><a href="#a3128c23336edaa73601d97d202a627c4">&#9670;&nbsp;</a></span>printPts()</h2>
233
273
 
234
274
  <div class="memitem">
235
275
  <div class="memproto">
@@ -243,8 +283,8 @@ Functions</h2></td></tr>
243
283
  <tr>
244
284
  <td class="paramkey"></td>
245
285
  <td></td>
246
- <td class="paramtype"><a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
247
- <td class="paramname"><em>val</em>&#160;</td>
286
+ <td class="paramtype">const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
287
+ <td class="paramname"><em>svfval</em>&#160;</td>
248
288
  </tr>
249
289
  <tr>
250
290
  <td></td>
@@ -253,30 +293,30 @@ Functions</h2></td></tr>
253
293
  </tr>
254
294
  </table>
255
295
  </div><div class="memdoc">
256
- <p>An example to print points-to set of an LLVM value </p>
296
+ <p>An example to print points-to set of an <a class="el" href="namespaceSVF.html" title="for isBitcode">SVF</a> value </p>
257
297
 
258
- <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00051">51</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
259
- <div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div>
260
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
261
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
262
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::stringstream rawstr(str);</div>
263
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
264
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pNodeId = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(val);</div>
265
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pNodeId);</div>
266
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), ie = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
267
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; ii != ie; ii++)</div>
268
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
269
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
270
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* targetObj = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii);</div>
271
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
272
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; {</div>
273
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() &lt;&lt; <span class="stringliteral">&quot;)\t &quot;</span>;</div>
274
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
275
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
276
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
277
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
278
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
279
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div>
298
+ <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00052">52</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
299
+ <div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div>
300
+ <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
301
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
302
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; raw_string_ostream rawstr(str);</div>
303
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
304
+ <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> pNodeId = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfval);</div>
305
+ <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; pts = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">getPts</a>(pNodeId);</div>
306
+ <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ii = pts.<a class="code" href="classSVF_1_1PointsTo.html#ad5b582d2672617806c61e6170d0b5a7e">begin</a>(), ie = pts.<a class="code" href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">end</a>();</div>
307
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; ii != ie; ii++)</div>
308
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div>
309
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; *ii &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
310
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* targetObj = pta-&gt;<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(*ii);</div>
311
+ <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
312
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
313
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;(&quot;</span> &lt;&lt; targetObj-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() &lt;&lt; <span class="stringliteral">&quot;)\t &quot;</span>;</div>
314
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
315
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
316
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
317
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div>
318
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
319
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div>
280
320
  </div><!-- fragment -->
281
321
  </div>
282
322
  </div>
@@ -308,28 +348,28 @@ Functions</h2></td></tr>
308
348
  <p>An example to query/collect all successor nodes from a ICFGNode (iNode) along control-flow graph (ICFG) </p>
309
349
  <p>Traverse along VFG</p>
310
350
 
311
- <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00141">141</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
312
- <div class="fragment"><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div>
313
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const ICFGNode*&gt;</a> worklist;</div>
314
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const ICFGNode*&gt;</a> visited;</div>
315
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(iNode);</div>
316
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
317
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
318
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
319
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
320
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">ICFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
321
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
322
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div>
323
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div>
324
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
325
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
326
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
327
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; visited.insert(succNode);</div>
328
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
329
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
330
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
331
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
332
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div>
351
+ <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00142">142</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
352
+ <div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div>
353
+ <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>
354
+ <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>
355
+ <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>
356
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
357
+ <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>
358
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
359
+ <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>
360
+ <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>
361
+ <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>
362
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div>
363
+ <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>
364
+ <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>
365
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
366
+ <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
367
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; visited.insert(succNode);</div>
368
+ <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>
369
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
370
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
371
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div>
372
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div>
333
373
  </div><!-- fragment -->
334
374
  </div>
335
375
  </div>
@@ -350,70 +390,70 @@ Functions</h2></td></tr>
350
390
  </div><div class="memdoc">
351
391
  <p>An example to query/collect all SVFStmt from a ICFGNode (iNode) </p>
352
392
 
353
- <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00077">77</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
354
- <div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div>
355
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>* svfir2ExeState = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>(SVFIR::getPAG());</div>
356
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* stmt: node-&gt;<a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
357
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div>
358
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr = SVFUtil::dyn_cast&lt;AddrStmt&gt;(stmt))</div>
359
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; {</div>
360
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">translateAddr</a>(addr);</div>
361
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
362
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary = SVFUtil::dyn_cast&lt;BinaryOPStmt&gt;(stmt))</div>
363
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div>
364
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">translateBinary</a>(binary);</div>
365
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div>
366
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp = SVFUtil::dyn_cast&lt;CmpStmt&gt;(stmt))</div>
367
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
368
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">translateCmp</a>(cmp);</div>
369
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
370
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load = SVFUtil::dyn_cast&lt;LoadStmt&gt;(stmt))</div>
371
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
372
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">translateLoad</a>(load);</div>
373
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
374
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store = SVFUtil::dyn_cast&lt;StoreStmt&gt;(stmt))</div>
375
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div>
376
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">translateStore</a>(store);</div>
377
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
378
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a> = SVFUtil::dyn_cast&lt;CopyStmt&gt;(stmt))</div>
379
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
380
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">translateCopy</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</div>
381
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
382
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep = SVFUtil::dyn_cast&lt;GepStmt&gt;(stmt))</div>
383
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
384
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (gep-&gt;isConstantOffset())</div>
385
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
386
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; gep-&gt;accumulateConstantByteOffset();</div>
387
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; gep-&gt;accumulateConstantOffset();</div>
388
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
389
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">translateGep</a>(gep);</div>
390
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
391
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select = SVFUtil::dyn_cast&lt;SelectStmt&gt;(stmt))</div>
392
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
393
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">translateSelect</a>(select);</div>
394
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
395
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi = SVFUtil::dyn_cast&lt;PhiStmt&gt;(stmt))</div>
396
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
397
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">translatePhi</a>(phi);</div>
398
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
399
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE = SVFUtil::dyn_cast&lt;CallPE&gt;(stmt))</div>
400
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
401
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// To handle Call Edge</span></div>
402
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">translateCall</a>(callPE);</div>
403
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
404
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE = SVFUtil::dyn_cast&lt;RetPE&gt;(stmt))</div>
405
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div>
406
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">translateRet</a>(retPE);</div>
407
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
408
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">else</span></div>
409
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;implement this part&quot;</span>);</div>
410
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
411
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div>
393
+ <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00078">78</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
394
+ <div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div>
395
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>* svfir2ExeState = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html">SVFIR2ItvExeState</a>(SVFIR::getPAG());</div>
396
+ <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>
397
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; {</div>
398
+ <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>
399
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
400
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">translateAddr</a>(addr);</div>
401
+ <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
402
+ <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>
403
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
404
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">translateBinary</a>(binary);</div>
405
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
406
+ <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>
407
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
408
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">translateCmp</a>(cmp);</div>
409
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
410
+ <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>
411
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
412
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">translateLoad</a>(load);</div>
413
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
414
+ <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>
415
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
416
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">translateStore</a>(store);</div>
417
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
418
+ <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>
419
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</div>
420
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">translateCopy</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</div>
421
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
422
+ <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>
423
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
424
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (gep-&gt;isConstantOffset())</div>
425
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
426
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; gep-&gt;accumulateConstantByteOffset();</div>
427
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; gep-&gt;accumulateConstantOffset();</div>
428
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
429
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">translateGep</a>(gep);</div>
430
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
431
+ <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>
432
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div>
433
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">translateSelect</a>(select);</div>
434
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
435
+ <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>
436
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div>
437
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">translatePhi</a>(phi);</div>
438
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
439
+ <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>
440
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
441
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// To handle Call Edge</span></div>
442
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">translateCall</a>(callPE);</div>
443
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
444
+ <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>
445
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
446
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; svfir2ExeState-&gt;<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">translateRet</a>(retPE);</div>
447
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
448
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">else</span></div>
449
+ <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>
450
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
451
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
412
452
  </div><!-- fragment -->
413
453
  </div>
414
454
  </div>
415
- <a id="ad58149e5445ad22ce478339e103ab42b"></a>
416
- <h2 class="memtitle"><span class="permalink"><a href="#ad58149e5445ad22ce478339e103ab42b">&#9670;&nbsp;</a></span>traverseOnVFG()</h2>
455
+ <a id="a46d99c4d06304a22985a1e7bf04b3e2d"></a>
456
+ <h2 class="memtitle"><span class="permalink"><a href="#a46d99c4d06304a22985a1e7bf04b3e2d">&#9670;&nbsp;</a></span>traverseOnVFG()</h2>
417
457
 
418
458
  <div class="memitem">
419
459
  <div class="memproto">
@@ -427,8 +467,8 @@ Functions</h2></td></tr>
427
467
  <tr>
428
468
  <td class="paramkey"></td>
429
469
  <td></td>
430
- <td class="paramtype"><a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
431
- <td class="paramname"><em>val</em>&#160;</td>
470
+ <td class="paramtype">const <a class="el" href="classSVF_1_1SVFValue.html">SVFValue</a> *&#160;</td>
471
+ <td class="paramname"><em>svfval</em>&#160;</td>
432
472
  </tr>
433
473
  <tr>
434
474
  <td></td>
@@ -440,39 +480,41 @@ Functions</h2></td></tr>
440
480
  <p>An example to query/collect all the uses of a definition of a value along value-flow graph (VFG) </p>
441
481
  <p>Traverse along VFG</p>
442
482
  <p>Collect all LLVM Values</p>
443
- <p>can only query VFGNode involving top-level pointers (starting with % or @ in LLVM IR) PAGNode* pNode = vfg-&gt;getLHSTopLevPtr(node); SVFValue* val = pNode-&gt;getValue();</p>
483
+ <p>can only query VFGNode involving top-level pointers (starting with % or @ in LLVM IR) PAGNode* pNode = vfg-&gt;getLHSTopLevPtr(node); Value* val = pNode-&gt;getValue();</p>
444
484
 
445
- <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00168">168</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
446
- <div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div>
447
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div>
448
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
449
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pNode = pag-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(val));</div>
450
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = vfg-&gt;<a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pNode);</div>
451
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList&lt;const VFGNode*&gt;</a> worklist;</div>
452
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;</a> visited;</div>
453
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(vNode);</div>
454
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
455
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
456
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
457
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">pop</a>();</div>
458
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">VFGNode::const_iterator</a> it = vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
459
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; vNode-&gt;<a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
460
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
461
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div>
462
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* succNode = edge-&gt;<a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
463
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
464
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; {</div>
465
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; visited.insert(succNode);</div>
466
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
467
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
468
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
469
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
470
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; </div>
471
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set&lt;const VFGNode*&gt;::const_iterator</a> it = visited.begin(), eit = visited.end(); it!=eit; ++it)</div>
472
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
473
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// const VFGNode* node = *it;</span></div>
474
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment"></span> }</div>
475
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}</div>
485
+ <p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00173">173</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
486
+ <div class="fragment"><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div>
487
+ <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>
488
+ <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>
489
+ <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>
490
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span>;</div>
491
+ <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>
492
+ <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>
493
+ <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>
494
+ <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>
495
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
496
+ <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>
497
+ <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
498
+ <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>
499
+ <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>
500
+ <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>
501
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
502
+ <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>
503
+ <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>
504
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
505
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
506
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; visited.insert(succNode);</div>
507
+ <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>
508
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
509
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
510
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
511
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
512
+ <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>
513
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
514
+ <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>
515
+ <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>
516
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
517
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div>
476
518
  </div><!-- fragment -->
477
519
  </div>
478
520
  </div>
@@ -480,7 +522,10 @@ Functions</h2></td></tr>
480
522
  <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>
481
523
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00931">SVFIR2ItvExeState.cpp:931</a></div></div>
482
524
  <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>
525
+ <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>
483
526
  <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>
527
+ <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>
528
+ <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>
484
529
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
485
530
  <div class="ttc" id="aclassSVF_1_1Andersen_html"><div class="ttname"><a href="classSVF_1_1Andersen.html">SVF::Andersen</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00156">Andersen.h:156</a></div></div>
486
531
  <div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
@@ -490,13 +535,14 @@ Functions</h2></td></tr>
490
535
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00869">SVFIR2ItvExeState.cpp:869</a></div></div>
491
536
  <div class="ttc" id="aclassSVF_1_1IRGraph_html_a43514023a4f4d0c32f536f51443b0efc"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">SVF::IRGraph::getValueNode</a></div><div class="ttdeci">NodeID getValueNode(const SVFValue *V)</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00137">IRGraph.h:137</a></div></div>
492
537
  <div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00092">GeneralType.h:92</a></div></div>
538
+ <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>
493
539
  <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>
494
540
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00470">SVFIR2ItvExeState.cpp:470</a></div></div>
495
541
  <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00829">SVFStatements.h:829</a></div></div>
496
542
  <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>
497
543
  <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>
498
544
  <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00618">SVFStatements.h:618</a></div></div>
499
- <div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00141">svf-ex.cpp:141</a></div></div>
545
+ <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>
500
546
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00884">SVFStatements.h:884</a></div></div>
501
547
  <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>
502
548
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00558">SVFIR2ItvExeState.cpp:558</a></div></div>
@@ -504,6 +550,7 @@ Functions</h2></td></tr>
504
550
  <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>
505
551
  <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>
506
552
  <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>
553
+ <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>
507
554
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00897">SVFIR2ItvExeState.cpp:897</a></div></div>
508
555
  <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00558">SVFStatements.h:558</a></div></div>
509
556
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00742">SVFIR2ItvExeState.cpp:742</a></div></div>
@@ -527,8 +574,10 @@ Functions</h2></td></tr>
527
574
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00813">SVFIR2ItvExeState.cpp:813</a></div></div>
528
575
  <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#l00474">SVFStatements.h:474</a></div></div>
529
576
  <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>
577
+ <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>
530
578
  <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>
531
579
  <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>
580
+ <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>
532
581
  <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>
533
582
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00931">LLVMUtil.cpp:931</a></div></div>
534
583
  <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>
@@ -542,8 +591,9 @@ Functions</h2></td></tr>
542
591
  <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>
543
592
  <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>
544
593
  <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>
545
- <div class="ttc" id="aclassSVF_1_1ICFG_html_a999956500bbd605326531480546db9ba"><div class="ttname"><a href="classSVF_1_1ICFG.html#a999956500bbd605326531480546db9ba">SVF::ICFG::dump</a></div><div class="ttdeci">void dump(const std::string &amp;file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file.</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00443">ICFG.cpp:443</a></div></div>
546
594
  <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>
595
+ <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>
596
+ <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>
547
597
  <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>
548
598
  <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>
549
599
  <div class="ttc" id="aclassSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00101">GenericGraph.h:101</a></div></div>