svf-tools 1.0.913 → 1.0.915
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AbstractInterpretation_8cpp.html +7 -5
- package/SVF-doxygen/html/AbstractInterpretation_8cpp_source.html +1593 -1610
- package/SVF-doxygen/html/AbstractInterpretation_8h_source.html +157 -144
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +797 -786
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +7 -7
- package/SVF-doxygen/html/SVFIR2AbsState_8cpp_source.html +815 -826
- package/SVF-doxygen/html/SVFIR2AbsState_8h_source.html +153 -196
- package/SVF-doxygen/html/classSVF_1_1AEStat.html +116 -120
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation-members.html +33 -33
- package/SVF-doxygen/html/classSVF_1_1AbstractInterpretation.html +1739 -1684
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +33 -33
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +471 -462
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState-members.html +35 -47
- package/SVF-doxygen/html/classSVF_1_1SVFIR2AbsState.html +1261 -1546
- package/SVF-doxygen/html/dir_9a8e7a56f4029a0d9f62b1c6d1f6e85b.html +0 -2
- package/SVF-doxygen/html/files.html +0 -1
- package/SVF-doxygen/html/functions.html +4 -7
- package/SVF-doxygen/html/functions_a.html +2 -2
- package/SVF-doxygen/html/functions_f.html +3 -3
- package/SVF-doxygen/html/functions_func.html +2 -2
- package/SVF-doxygen/html/functions_func_g.html +16 -16
- package/SVF-doxygen/html/functions_func_h.html +21 -57
- package/SVF-doxygen/html/functions_func_i.html +21 -12
- package/SVF-doxygen/html/functions_func_n.html +1 -1
- package/SVF-doxygen/html/functions_func_s.html +13 -19
- package/SVF-doxygen/html/functions_func_t.html +1 -1
- package/SVF-doxygen/html/functions_func_w.html +1 -1
- package/SVF-doxygen/html/functions_g.html +16 -16
- package/SVF-doxygen/html/functions_h.html +18 -54
- package/SVF-doxygen/html/functions_i.html +32 -23
- package/SVF-doxygen/html/functions_l.html +3 -3
- package/SVF-doxygen/html/functions_n.html +1 -1
- package/SVF-doxygen/html/functions_o.html +4 -4
- package/SVF-doxygen/html/functions_p.html +19 -17
- package/SVF-doxygen/html/functions_r.html +6 -6
- package/SVF-doxygen/html/functions_s.html +18 -26
- package/SVF-doxygen/html/functions_t.html +4 -4
- package/SVF-doxygen/html/functions_v.html +6 -6
- package/SVF-doxygen/html/functions_vars.html +4 -7
- package/SVF-doxygen/html/functions_w.html +1 -1
- package/SVF-doxygen/html/search/all_0.js +131 -132
- package/SVF-doxygen/html/search/all_1.js +504 -504
- package/SVF-doxygen/html/search/all_10.js +326 -326
- package/SVF-doxygen/html/search/all_11.js +227 -227
- package/SVF-doxygen/html/search/all_12.js +559 -562
- package/SVF-doxygen/html/search/all_13.js +186 -186
- package/SVF-doxygen/html/search/all_14.js +74 -74
- package/SVF-doxygen/html/search/all_15.js +175 -175
- package/SVF-doxygen/html/search/all_16.js +77 -77
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +27 -27
- package/SVF-doxygen/html/search/all_1a.js +174 -174
- package/SVF-doxygen/html/search/all_2.js +180 -180
- package/SVF-doxygen/html/search/all_3.js +635 -635
- package/SVF-doxygen/html/search/all_4.js +237 -237
- package/SVF-doxygen/html/search/all_5.js +120 -120
- package/SVF-doxygen/html/search/all_6.js +236 -236
- package/SVF-doxygen/html/search/all_7.js +1039 -1039
- package/SVF-doxygen/html/search/all_8.js +212 -224
- package/SVF-doxygen/html/search/all_9.js +630 -627
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +24 -24
- package/SVF-doxygen/html/search/all_c.js +111 -111
- package/SVF-doxygen/html/search/all_d.js +204 -204
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/search/classes_0.js +29 -29
- package/SVF-doxygen/html/search/classes_1.js +11 -11
- package/SVF-doxygen/html/search/classes_10.js +71 -71
- package/SVF-doxygen/html/search/classes_11.js +14 -14
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +19 -19
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +72 -72
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +7 -7
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/search/classes_8.js +57 -57
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +3 -3
- package/SVF-doxygen/html/search/defines_10.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +8 -8
- package/SVF-doxygen/html/search/defines_f.js +4 -4
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +9 -9
- package/SVF-doxygen/html/search/enums_3.js +2 -2
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_1.js +16 -16
- package/SVF-doxygen/html/search/enumvalues_10.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_11.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +50 -50
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +24 -24
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +19 -19
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +48 -48
- package/SVF-doxygen/html/search/files_0.js +18 -18
- package/SVF-doxygen/html/search/files_1.js +9 -9
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +51 -51
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +3 -3
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +10 -10
- package/SVF-doxygen/html/search/files_7.js +15 -15
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +4 -4
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +56 -57
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +366 -366
- package/SVF-doxygen/html/search/functions_10.js +140 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +291 -293
- package/SVF-doxygen/html/search/functions_13.js +52 -52
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +70 -70
- package/SVF-doxygen/html/search/functions_16.js +38 -38
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +174 -174
- package/SVF-doxygen/html/search/functions_2.js +92 -92
- package/SVF-doxygen/html/search/functions_3.js +257 -257
- package/SVF-doxygen/html/search/functions_4.js +85 -85
- package/SVF-doxygen/html/search/functions_5.js +54 -54
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +857 -857
- package/SVF-doxygen/html/search/functions_8.js +164 -176
- package/SVF-doxygen/html/search/functions_9.js +439 -436
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +22 -22
- package/SVF-doxygen/html/search/functions_d.js +81 -81
- package/SVF-doxygen/html/search/functions_e.js +34 -34
- package/SVF-doxygen/html/search/functions_f.js +58 -58
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +4 -4
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +5 -5
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +20 -20
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +65 -65
- package/SVF-doxygen/html/search/typedefs_11.js +12 -12
- package/SVF-doxygen/html/search/typedefs_12.js +13 -13
- package/SVF-doxygen/html/search/typedefs_13.js +40 -40
- package/SVF-doxygen/html/search/typedefs_14.js +11 -11
- package/SVF-doxygen/html/search/typedefs_2.js +125 -125
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +17 -17
- package/SVF-doxygen/html/search/typedefs_5.js +42 -42
- package/SVF-doxygen/html/search/typedefs_6.js +54 -54
- package/SVF-doxygen/html/search/typedefs_7.js +47 -47
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +4 -4
- package/SVF-doxygen/html/search/typedefs_a.js +28 -28
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +169 -170
- package/SVF-doxygen/html/search/variables_1.js +78 -78
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +47 -47
- package/SVF-doxygen/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/search/variables_13.js +76 -76
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +11 -11
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +17 -17
- package/SVF-doxygen/html/search/variables_2.js +40 -40
- package/SVF-doxygen/html/search/variables_3.js +143 -143
- package/SVF-doxygen/html/search/variables_4.js +51 -51
- package/SVF-doxygen/html/search/variables_5.js +39 -39
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +32 -32
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +80 -80
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +44 -44
- package/SVF-doxygen/html/search/variables_d.js +58 -58
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +31 -31
- package/SVF-doxygen/html/svf-ex_8cpp.html +199 -197
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +204 -202
- package/package.json +1 -1
- package/svf/include/AE/Svfexe/AbstractInterpretation.h +28 -21
- package/svf/include/AE/Svfexe/SVFIR2AbsState.h +37 -67
- package/svf/lib/AE/Svfexe/AbstractInterpretation.cpp +153 -169
- package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +64 -54
- package/svf/lib/AE/Svfexe/SVFIR2AbsState.cpp +134 -146
- package/svf-llvm/tools/Example/svf-ex.cpp +13 -12
- package/svf/lib/AE/Core/SVFIR2Relation.cpp +0 -193
|
@@ -155,10 +155,10 @@ Functions</h2></td></tr>
|
|
|
155
155
|
</table>
|
|
156
156
|
</div><div class="memdoc">
|
|
157
157
|
|
|
158
|
-
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#
|
|
159
|
-
<div class="fragment"><div class="line"><a name="
|
|
160
|
-
<div class="line"><a name="
|
|
161
|
-
<div class="line"><a name="
|
|
158
|
+
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00167">167</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="l00168"></a><span class="lineno"> 168</span> {</div>
|
|
160
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
|
|
161
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div>
|
|
162
162
|
</div><!-- fragment -->
|
|
163
163
|
</div>
|
|
164
164
|
</div>
|
|
@@ -197,74 +197,74 @@ Functions</h2></td></tr>
|
|
|
197
197
|
<p>Print points-to information</p>
|
|
198
198
|
<p>Collect all successor nodes on ICFG</p>
|
|
199
199
|
|
|
200
|
-
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#
|
|
201
|
-
<div class="fragment"><div class="line"><a name="
|
|
202
|
-
<div class="line"><a name="
|
|
203
|
-
<div class="line"><a name="
|
|
204
|
-
<div class="line"><a name="
|
|
205
|
-
<div class="line"><a name="
|
|
206
|
-
<div class="line"><a name="
|
|
207
|
-
<div class="line"><a name="
|
|
208
|
-
<div class="line"><a name="
|
|
209
|
-
<div class="line"><a name="
|
|
210
|
-
<div class="line"><a name="
|
|
211
|
-
<div class="line"><a name="
|
|
212
|
-
<div class="line"><a name="
|
|
213
|
-
<div class="line"><a name="
|
|
214
|
-
<div class="line"><a name="
|
|
215
|
-
<div class="line"><a name="
|
|
216
|
-
<div class="line"><a name="
|
|
217
|
-
<div class="line"><a name="
|
|
218
|
-
<div class="line"><a name="
|
|
219
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
|
|
200
|
+
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00213">213</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="l00214"></a><span class="lineno"> 214</span> {</div>
|
|
202
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
|
|
203
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  std::vector<std::string> moduleNameVec;</div>
|
|
204
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  moduleNameVec = <a class="code" href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a>(</div>
|
|
205
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  argc, argv, <span class="stringliteral">"Whole Program Points-to Analysis"</span>, <span class="stringliteral">"[options] <input-bitcode...>"</span></div>
|
|
206
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  );</div>
|
|
207
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
|
|
208
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">if</span> (Options::WriteAnder() == <span class="stringliteral">"ir_annotator"</span>)</div>
|
|
209
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  {</div>
|
|
210
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  LLVMModuleSet::preProcessBCs(moduleNameVec);</div>
|
|
211
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div>
|
|
212
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  </div>
|
|
213
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::buildSVFModule(moduleNameVec);</div>
|
|
214
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
|
|
215
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classSVF_1_1SVFIRBuilder.html">SVFIRBuilder</a> builder(svfModule);</div>
|
|
216
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = builder.build();</div>
|
|
217
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
|
|
218
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1Andersen.html">Andersen</a>* ander = AndersenWaveDiff::createAndersenWaveDiff(pag);</div>
|
|
220
219
|
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
|
|
221
|
-
<div class="line"><a name="
|
|
222
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
|
|
223
|
-
<div class="line"><a name="
|
|
224
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  </div>
|
|
225
|
-
<div class="line"><a name="
|
|
226
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
|
|
227
|
-
<div class="line"><a name="
|
|
228
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="
|
|
229
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div>
|
|
230
|
-
<div class="line"><a name="
|
|
231
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span> 
|
|
232
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span> 
|
|
233
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span> 
|
|
234
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> 
|
|
235
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="
|
|
236
|
-
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span> 
|
|
237
|
-
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> 
|
|
238
|
-
<div class="line"><a name="
|
|
239
|
-
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <
|
|
240
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> 
|
|
241
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
242
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="
|
|
243
|
-
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> 
|
|
244
|
-
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> 
|
|
245
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> 
|
|
246
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> 
|
|
247
|
-
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span> 
|
|
248
|
-
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> 
|
|
249
|
-
<div class="line"><a name="
|
|
250
|
-
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> 
|
|
251
|
-
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> 
|
|
252
|
-
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> 
|
|
253
|
-
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> 
|
|
254
|
-
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="
|
|
255
|
-
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> 
|
|
256
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> 
|
|
257
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> 
|
|
258
|
-
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> 
|
|
259
|
-
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="
|
|
260
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> 
|
|
261
|
-
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> 
|
|
262
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> 
|
|
263
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> 
|
|
264
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <
|
|
265
|
-
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> 
|
|
266
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> 
|
|
267
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
220
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  </div>
|
|
221
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1PTACallGraph.html">PTACallGraph</a>* callgraph = ander-><a class="code" href="classSVF_1_1PointerAnalysis.html#a7c9b7e5fe37ae31ba84d167945ca57df">getPTACallGraph</a>();</div>
|
|
222
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  </div>
|
|
223
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1ICFG.html">ICFG</a>* icfg = pag-><a class="code" href="classSVF_1_1SVFIR.html#abda052b73e869ed6d7c139ad1528da11">getICFG</a>();</div>
|
|
224
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div>
|
|
225
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <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>
|
|
226
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
|
|
227
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="classSVF_1_1SVFGBuilder.html">SVFGBuilder</a> svfBuilder;</div>
|
|
228
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <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="l00248"></a><span class="lineno"> 248</span>  </div>
|
|
230
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">if</span> (Options::PTSPrint())</div>
|
|
231
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div>
|
|
232
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& it : *svfg)</div>
|
|
233
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  {</div>
|
|
234
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <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="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (node-><a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>())</div>
|
|
236
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div>
|
|
237
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="svf-ex_8cpp.html#a46d99c4d06304a22985a1e7bf04b3e2d">traverseOnVFG</a>(svfg, node-><a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>());</div>
|
|
238
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="svf-ex_8cpp.html#a3128c23336edaa73601d97d202a627c4">printPts</a>(ander, node-><a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>());</div>
|
|
239
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGEdge.html">SVFGEdge</a>* edge : node-><a class="code" href="classSVF_1_1GenericNode.html#a2d9cd758d6f8c5189d9b90b74f43e009">getOutEdges</a>())</div>
|
|
240
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div>
|
|
241
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* node2 = edge->getDstNode();</div>
|
|
242
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (node2-><a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>())</div>
|
|
243
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <a class="code" href="svf-ex_8cpp.html#af6e60bf5c69a516b51753497070f4c9b">aliasQuery</a>(ander, node-><a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>(), node2-><a class="code" href="classSVF_1_1VFGNode.html#aec9bb5040f30ab722ce917af41b006f0">getValue</a>());</div>
|
|
244
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
|
245
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div>
|
|
246
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div>
|
|
247
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  }</div>
|
|
248
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
|
|
249
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span> (Options::PTSPrint())</div>
|
|
250
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  {</div>
|
|
251
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& it : *icfg)</div>
|
|
252
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div>
|
|
253
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <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="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a>(icfg, node);</div>
|
|
255
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  }</div>
|
|
256
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
257
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
|
|
258
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// clean up memory</span></div>
|
|
259
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">delete</span> vfg;</div>
|
|
260
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  AndersenWaveDiff::releaseAndersenWaveDiff();</div>
|
|
261
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  SVFIR::releaseSVFIR();</div>
|
|
262
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div>
|
|
263
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  LLVMModuleSet::getLLVMModuleSet()->dumpModulesToFile(<span class="stringliteral">".svf.bc"</span>);</div>
|
|
264
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a>();</div>
|
|
265
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  llvm::llvm_shutdown();</div>
|
|
266
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">return</span> 0;</div>
|
|
267
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> }</div>
|
|
268
268
|
</div><!-- fragment -->
|
|
269
269
|
</div>
|
|
270
270
|
</div>
|
|
@@ -348,28 +348,28 @@ Functions</h2></td></tr>
|
|
|
348
348
|
<p>An example to query/collect all successor nodes from a ICFGNode (iNode) along control-flow graph (ICFG) </p>
|
|
349
349
|
<p>Traverse along VFG</p>
|
|
350
350
|
|
|
351
|
-
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#
|
|
352
|
-
<div class="fragment"><div class="line"><a name="
|
|
353
|
-
<div class="line"><a name="
|
|
354
|
-
<div class="line"><a name="
|
|
355
|
-
<div class="line"><a name="
|
|
356
|
-
<div class="line"><a name="
|
|
357
|
-
<div class="line"><a name="
|
|
358
|
-
<div class="line"><a name="
|
|
359
|
-
<div class="line"><a name="
|
|
360
|
-
<div class="line"><a name="
|
|
361
|
-
<div class="line"><a name="
|
|
362
|
-
<div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="
|
|
364
|
-
<div class="line"><a name="
|
|
365
|
-
<div class="line"><a name="
|
|
366
|
-
<div class="line"><a name="
|
|
367
|
-
<div class="line"><a name="
|
|
368
|
-
<div class="line"><a name="
|
|
369
|
-
<div class="line"><a name="
|
|
370
|
-
<div class="line"><a name="
|
|
371
|
-
<div class="line"><a name="
|
|
372
|
-
<div class="line"><a name="
|
|
351
|
+
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00143">143</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="l00144"></a><span class="lineno"> 144</span> {</div>
|
|
353
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<const ICFGNode*></a> worklist;</div>
|
|
354
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const ICFGNode*></a> visited;</div>
|
|
355
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(iNode);</div>
|
|
356
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div>
|
|
357
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
|
|
358
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div>
|
|
359
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <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="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">ICFGNode::const_iterator</a> it = vNode-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
|
|
361
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  vNode-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
|
|
362
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div>
|
|
363
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1ICFGEdge.html">ICFGEdge</a>* edge = *it;</div>
|
|
364
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* succNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
|
|
365
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
|
|
366
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div>
|
|
367
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  visited.insert(succNode);</div>
|
|
368
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
|
|
369
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
|
|
370
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div>
|
|
371
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div>
|
|
372
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div>
|
|
373
373
|
</div><!-- fragment -->
|
|
374
374
|
</div>
|
|
375
375
|
</div>
|
|
@@ -392,63 +392,64 @@ Functions</h2></td></tr>
|
|
|
392
392
|
|
|
393
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
394
|
<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div>
|
|
395
|
-
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="
|
|
396
|
-
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <
|
|
397
|
-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> 
|
|
398
|
-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> 
|
|
399
|
-
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> 
|
|
400
|
-
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> 
|
|
401
|
-
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> 
|
|
402
|
-
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> 
|
|
403
|
-
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> 
|
|
404
|
-
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> 
|
|
405
|
-
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> 
|
|
406
|
-
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> 
|
|
407
|
-
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> 
|
|
408
|
-
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> 
|
|
409
|
-
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> 
|
|
410
|
-
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
|
|
411
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> 
|
|
412
|
-
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span> 
|
|
413
|
-
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> 
|
|
414
|
-
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> 
|
|
415
|
-
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> 
|
|
416
|
-
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> 
|
|
417
|
-
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> 
|
|
418
|
-
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> 
|
|
419
|
-
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> 
|
|
420
|
-
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> 
|
|
421
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
|
|
422
|
-
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> 
|
|
423
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
424
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> 
|
|
425
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> 
|
|
426
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 
|
|
427
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  gep->
|
|
428
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> 
|
|
429
|
-
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> 
|
|
430
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> 
|
|
431
|
-
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> 
|
|
432
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> 
|
|
433
|
-
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> 
|
|
434
|
-
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> 
|
|
435
|
-
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> 
|
|
436
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> 
|
|
437
|
-
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> 
|
|
438
|
-
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span> 
|
|
439
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> 
|
|
440
|
-
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> 
|
|
441
|
-
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span> 
|
|
442
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> 
|
|
443
|
-
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> 
|
|
444
|
-
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> 
|
|
445
|
-
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> 
|
|
446
|
-
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> 
|
|
447
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> 
|
|
448
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> 
|
|
449
|
-
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> 
|
|
450
|
-
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> 
|
|
451
|
-
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div>
|
|
395
|
+
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a> es;</div>
|
|
396
|
+
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classSVF_1_1SVFIR2AbsState.html">SVFIR2AbsState</a>* svfir2AbsState = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html">SVFIR2AbsState</a>(SVFIR::getPAG());</div>
|
|
397
|
+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a>* stmt: node-><a class="code" href="classSVF_1_1ICFGNode.html#a6c68f52dd90728073fb79141df9b0661">getSVFStmts</a>())</div>
|
|
398
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div>
|
|
399
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr = SVFUtil::dyn_cast<AddrStmt>(stmt))</div>
|
|
400
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div>
|
|
401
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#af09515297cb9c31153ed7f32bc3febd2">handleAddr</a>(es, addr);</div>
|
|
402
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
|
|
403
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <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<BinaryOPStmt>(stmt))</div>
|
|
404
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div>
|
|
405
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a9db48252f099848d0f152e9fa523333a">handleBinary</a>(es, binary);</div>
|
|
406
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
|
|
407
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <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<CmpStmt>(stmt))</div>
|
|
408
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div>
|
|
409
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a729cc61337cfe055adc49d04676f5717">handleCmp</a>(es, cmp);</div>
|
|
410
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div>
|
|
411
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <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<LoadStmt>(stmt))</div>
|
|
412
|
+
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div>
|
|
413
|
+
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a4478a7e793920ec543d32314f13a5bb9">handleLoad</a>(es, load);</div>
|
|
414
|
+
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
|
415
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <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<StoreStmt>(stmt))</div>
|
|
416
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  {</div>
|
|
417
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a75204b54b40f1402d670691c0355d6b5">handleStore</a>(es, store);</div>
|
|
418
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div>
|
|
419
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <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<CopyStmt>(stmt))</div>
|
|
420
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div>
|
|
421
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#abce457a32553584eb656ff0fa4e52a64">handleCopy</a>(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>);</div>
|
|
422
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div>
|
|
423
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <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<GepStmt>(stmt))</div>
|
|
424
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div>
|
|
425
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (gep->isConstantOffset())</div>
|
|
426
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div>
|
|
427
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  gep->accumulateConstantByteOffset();</div>
|
|
428
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  gep->accumulateConstantOffset();</div>
|
|
429
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div>
|
|
430
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a74c008c44d3181d20819323aa83ec0ae">handleGep</a>(es, gep);</div>
|
|
431
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
|
432
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <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<SelectStmt>(stmt))</div>
|
|
433
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div>
|
|
434
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a05673fde6e9f697fa6ffb8bc32fb6baa">handleSelect</a>(es, select);</div>
|
|
435
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div>
|
|
436
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <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<PhiStmt>(stmt))</div>
|
|
437
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {</div>
|
|
438
|
+
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a151cd00e030b8e9b51b907a3da8428e5">handlePhi</a>(es, phi);</div>
|
|
439
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div>
|
|
440
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <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<CallPE>(stmt))</div>
|
|
441
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div>
|
|
442
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// To handle Call Edge</span></div>
|
|
443
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#ac5d31c2e3387c04749195d6cdb417a7a">handleCall</a>(es, callPE);</div>
|
|
444
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div>
|
|
445
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <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<RetPE>(stmt))</div>
|
|
446
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  {</div>
|
|
447
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  svfir2AbsState-><a class="code" href="classSVF_1_1SVFIR2AbsState.html#a8d4535dae277ade2d1e75678ad89d950">handleRet</a>(es, retPE);</div>
|
|
448
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  }</div>
|
|
449
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">else</span></div>
|
|
450
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"implement this part"</span>);</div>
|
|
451
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div>
|
|
452
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div>
|
|
452
453
|
</div><!-- fragment -->
|
|
453
454
|
</div>
|
|
454
455
|
</div>
|
|
@@ -482,48 +483,48 @@ Functions</h2></td></tr>
|
|
|
482
483
|
<p>Collect all LLVM Values</p>
|
|
483
484
|
<p>can only query VFGNode involving top-level pointers (starting with % or @ in LLVM IR) PAGNode* pNode = vfg->getLHSTopLevPtr(node); Value* val = pNode->getValue();</p>
|
|
484
485
|
|
|
485
|
-
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#
|
|
486
|
-
<div class="fragment"><div class="line"><a name="
|
|
487
|
-
<div class="line"><a name="
|
|
488
|
-
<div class="line"><a name="
|
|
489
|
-
<div class="line"><a name="
|
|
490
|
-
<div class="line"><a name="
|
|
491
|
-
<div class="line"><a name="
|
|
492
|
-
<div class="line"><a name="
|
|
493
|
-
<div class="line"><a name="
|
|
494
|
-
<div class="line"><a name="
|
|
495
|
-
<div class="line"><a name="
|
|
496
|
-
<div class="line"><a name="
|
|
497
|
-
<div class="line"><a name="
|
|
498
|
-
<div class="line"><a name="
|
|
499
|
-
<div class="line"><a name="
|
|
500
|
-
<div class="line"><a name="
|
|
501
|
-
<div class="line"><a name="
|
|
502
|
-
<div class="line"><a name="
|
|
503
|
-
<div class="line"><a name="
|
|
504
|
-
<div class="line"><a name="
|
|
505
|
-
<div class="line"><a name="
|
|
506
|
-
<div class="line"><a name="
|
|
507
|
-
<div class="line"><a name="
|
|
508
|
-
<div class="line"><a name="
|
|
509
|
-
<div class="line"><a name="
|
|
510
|
-
<div class="line"><a name="
|
|
511
|
-
<div class="line"><a name="
|
|
512
|
-
<div class="line"><a name="
|
|
513
|
-
<div class="line"><a name="
|
|
514
|
-
<div class="line"><a name="
|
|
515
|
-
<div class="line"><a name="
|
|
516
|
-
<div class="line"><a name="
|
|
517
|
-
<div class="line"><a name="
|
|
486
|
+
<p class="definition">Definition at line <a class="el" href="svf-ex_8cpp_source.html#l00174">174</a> of file <a class="el" href="svf-ex_8cpp_source.html">svf-ex.cpp</a>.</p>
|
|
487
|
+
<div class="fragment"><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> {</div>
|
|
488
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a>* pag = SVFIR::getPAG();</div>
|
|
489
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pNode = pag-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(pag-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(svfval));</div>
|
|
490
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">if</span> (!vfg-><a class="code" href="classSVF_1_1SVFG.html#ad2d19c5b80b01c8a7bb41100bb156279">hasDefSVFGNode</a>(pNode))</div>
|
|
491
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span>;</div>
|
|
492
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* vNode = vfg-><a class="code" href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">getDefSVFGNode</a>(pNode);</div>
|
|
493
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList<const VFGNode*></a> worklist;</div>
|
|
494
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const VFGNode*></a> visited;</div>
|
|
495
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(vNode);</div>
|
|
496
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  </div>
|
|
497
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">while</span> (!worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">empty</a>())</div>
|
|
498
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {</div>
|
|
499
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <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>
|
|
500
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">VFGNode::const_iterator</a> it = vNode-><a class="code" href="classSVF_1_1GenericNode.html#aa4f103330118c8976bf95e4bf53416eb">OutEdgeBegin</a>(), eit =</div>
|
|
501
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  vNode-><a class="code" href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">OutEdgeEnd</a>(); it != eit; ++it)</div>
|
|
502
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div>
|
|
503
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classSVF_1_1VFGEdge.html">VFGEdge</a>* edge = *it;</div>
|
|
504
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* succNode = edge-><a class="code" href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">getDstNode</a>();</div>
|
|
505
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">if</span> (visited.find(succNode) == visited.end())</div>
|
|
506
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div>
|
|
507
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  visited.insert(succNode);</div>
|
|
508
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  worklist.<a class="code" href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">push</a>(succNode);</div>
|
|
509
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div>
|
|
510
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div>
|
|
511
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div>
|
|
512
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
|
513
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const VFGNode*>::const_iterator</a> it = visited.begin(), eit = visited.end(); it!=eit; ++it)</div>
|
|
514
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div>
|
|
515
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">VFGNode</a>* node = *it;</div>
|
|
516
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32">dummyVisit</a>(node);</div>
|
|
517
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div>
|
|
518
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> }</div>
|
|
518
519
|
</div><!-- fragment -->
|
|
519
520
|
</div>
|
|
520
521
|
</div>
|
|
521
522
|
</div><!-- contents -->
|
|
522
523
|
<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 &data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
|
|
523
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>
|
|
524
|
-
<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#
|
|
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#l00174">svf-ex.cpp:174</a></div></div>
|
|
526
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a151cd00e030b8e9b51b907a3da8428e5"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a151cd00e030b8e9b51b907a3da8428e5">SVF::SVFIR2AbsState::handlePhi</a></div><div class="ttdeci">void handlePhi(AbstractState &es, const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01059">SVFIR2AbsState.cpp:1059</a></div></div>
|
|
525
527
|
<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>
|
|
526
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aa36938b22e2d3521f2af9d13c2697d83"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aa36938b22e2d3521f2af9d13c2697d83">SVF::SVFIR2AbsState::handleGep</a></div><div class="ttdeci">void handleGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01018">SVFIR2AbsState.cpp:1018</a></div></div>
|
|
527
528
|
<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
529
|
<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>
|
|
529
530
|
<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>
|
|
@@ -534,46 +535,50 @@ Functions</h2></td></tr>
|
|
|
534
535
|
<div class="ttc" id="aclassSVF_1_1SVFG_html_a8e7a945f4266e8dc7dcfff2ad6494bfb"><div class="ttname"><a href="classSVF_1_1SVFG.html#a8e7a945f4266e8dc7dcfff2ad6494bfb">SVF::SVFG::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">Given a pagNode, return its definition site.</div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8h_source.html#l00171">SVFG.h:171</a></div></div>
|
|
535
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>
|
|
536
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< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00096">GeneralType.h:96</a></div></div>
|
|
537
|
-
<div class="ttc" id="
|
|
538
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_af09515297cb9c31153ed7f32bc3febd2"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#af09515297cb9c31153ed7f32bc3febd2">SVF::SVFIR2AbsState::handleAddr</a></div><div class="ttdeci">void handleAddr(AbstractState &es, const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00601">SVFIR2AbsState.cpp:601</a></div></div>
|
|
538
539
|
<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>
|
|
539
540
|
<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 & getSVFStmts() const</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00127">ICFGNode.h:127</a></div></div>
|
|
540
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#l00881">SVFStatements.h:881</a></div></div>
|
|
541
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>
|
|
542
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>
|
|
544
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_abce457a32553584eb656ff0fa4e52a64"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#abce457a32553584eb656ff0fa4e52a64">SVF::SVFIR2AbsState::handleCopy</a></div><div class="ttdeci">void handleCopy(AbstractState &es, const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00925">SVFIR2AbsState.cpp:925</a></div></div>
|
|
543
545
|
<div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00670">SVFStatements.h:670</a></div></div>
|
|
544
|
-
<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#
|
|
546
|
+
<div class="ttc" id="asvf-ex_8cpp_html_a19f3fe331a1e7050a513672a91743b96"><div class="ttname"><a href="svf-ex_8cpp.html#a19f3fe331a1e7050a513672a91743b96">traverseOnICFG</a></div><div class="ttdeci">void traverseOnICFG(ICFG *icfg, const ICFGNode *iNode)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00143">svf-ex.cpp:143</a></div></div>
|
|
545
547
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00936">SVFStatements.h:936</a></div></div>
|
|
548
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a9db48252f099848d0f152e9fa523333a"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a9db48252f099848d0f152e9fa523333a">SVF::SVFIR2AbsState::handleBinary</a></div><div class="ttdeci">void handleBinary(AbstractState &es, const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00626">SVFIR2AbsState.cpp:626</a></div></div>
|
|
546
549
|
<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>
|
|
547
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>
|
|
548
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>
|
|
552
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a4478a7e793920ec543d32314f13a5bb9"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a4478a7e793920ec543d32314f13a5bb9">SVF::SVFIR2AbsState::handleLoad</a></div><div class="ttdeci">void handleLoad(AbstractState &es, const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00874">SVFIR2AbsState.cpp:874</a></div></div>
|
|
549
553
|
<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>
|
|
550
554
|
<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>
|
|
551
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#l00610">SVFStatements.h:610</a></div></div>
|
|
556
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a8d4535dae277ade2d1e75678ad89d950"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a8d4535dae277ade2d1e75678ad89d950">SVF::SVFIR2AbsState::handleRet</a></div><div class="ttdeci">void handleRet(AbstractState &es, const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01087">SVFIR2AbsState.cpp:1087</a></div></div>
|
|
552
557
|
<div class="ttc" id="aclassOptionBase_html_a4fb6c6e4a1754d702c6c1730f54457e5"><div class="ttname"><a href="classOptionBase.html#a4fb6c6e4a1754d702c6c1730f54457e5">OptionBase::parseOptions</a></div><div class="ttdeci">static std::vector< std::string > parseOptions(int argc, char *argv[], std::string description, std::string callFormat)</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00075">CommandLine.h:75</a></div></div>
|
|
553
558
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01022">SVFStatements.h:1022</a></div></div>
|
|
554
559
|
<div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00452">SVFStatements.h:452</a></div></div>
|
|
555
560
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
556
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a4d614da483954db61664603cf0cf72e0"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a4d614da483954db61664603cf0cf72e0">SVF::SVFIR2AbsState::handleStore</a></div><div class="ttdeci">void handleStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00912">SVFIR2AbsState.cpp:912</a></div></div>
|
|
557
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a839a881ecff03f73102c1b48d9dbfb88"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a839a881ecff03f73102c1b48d9dbfb88">SVF::SVFIR2AbsState::handleRet</a></div><div class="ttdeci">void handleRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01099">SVFIR2AbsState.cpp:1099</a></div></div>
|
|
558
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_af13e2b1c28a16e046776187de62d3c20"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#af13e2b1c28a16e046776187de62d3c20">SVF::SVFIR2AbsState::handleCmp</a></div><div class="ttdeci">void handleCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00700">SVFIR2AbsState.cpp:700</a></div></div>
|
|
559
561
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
|
|
560
562
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_a4dfb43679e9fa794ebad99b6584c32ec"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4dfb43679e9fa794ebad99b6584c32ec">SVF::PointerAnalysis::getPts</a></div><div class="ttdeci">virtual const PointsTo & getPts(NodeID ptr)=0</div><div class="ttdoc">Get points-to targets of a pointer. It needs to be implemented in child class.</div></div>
|
|
563
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a05673fde6e9f697fa6ffb8bc32fb6baa"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a05673fde6e9f697fa6ffb8bc32fb6baa">SVF::SVFIR2AbsState::handleSelect</a></div><div class="ttdeci">void handleSelect(AbstractState &es, const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01031">SVFIR2AbsState.cpp:1031</a></div></div>
|
|
561
564
|
<div class="ttc" id="aclassSVF_1_1SVFIRBuilder_html"><div class="ttname"><a href="classSVF_1_1SVFIRBuilder.html">SVF::SVFIRBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIRBuilder_8h_source.html#l00046">SVFIRBuilder.h:46</a></div></div>
|
|
565
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ac5d31c2e3387c04749195d6cdb417a7a"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ac5d31c2e3387c04749195d6cdb417a7a">SVF::SVFIR2AbsState::handleCall</a></div><div class="ttdeci">void handleCall(AbstractState &es, const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01077">SVFIR2AbsState.cpp:1077</a></div></div>
|
|
562
566
|
<div class="ttc" id="aclassSVF_1_1SVFStmt_html"><div class="ttname"><a href="classSVF_1_1SVFStmt.html">SVF::SVFStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00051">SVFStatements.h:51</a></div></div>
|
|
563
567
|
<div class="ttc" id="aclassSVF_1_1VFGNode_html"><div class="ttname"><a href="classSVF_1_1VFGNode.html">SVF::VFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00046">VFGNode.h:46</a></div></div>
|
|
564
568
|
<div class="ttc" id="aclassSVF_1_1PointerAnalysis_html_ae1323233941cdc9b99332e4b954a2217"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ae1323233941cdc9b99332e4b954a2217">SVF::PointerAnalysis::alias</a></div><div class="ttdeci">virtual AliasResult alias(const SVFValue *V1, const SVFValue *V2)=0</div><div class="ttdoc">Interface exposed to users of our pointer analysis, given Value infos.</div></div>
|
|
565
569
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
566
570
|
<div class="ttc" id="aclassSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00489">SVFStatements.h:489</a></div></div>
|
|
567
571
|
<div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
|
|
572
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html"><div class="ttname"><a href="classSVF_1_1AbstractState.html">SVF::AbstractState</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00054">AbstractState.h:54</a></div></div>
|
|
568
573
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html"><div class="ttname"><a href="classSVF_1_1GepStmt.html">SVF::GepStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00526">SVFStatements.h:526</a></div></div>
|
|
569
574
|
<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>
|
|
570
575
|
<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>
|
|
571
576
|
<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>
|
|
577
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a74c008c44d3181d20819323aa83ec0ae"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a74c008c44d3181d20819323aa83ec0ae">SVF::SVFIR2AbsState::handleGep</a></div><div class="ttdeci">void handleGep(AbstractState &es, const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01006">SVFIR2AbsState.cpp:1006</a></div></div>
|
|
578
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a729cc61337cfe055adc49d04676f5717"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a729cc61337cfe055adc49d04676f5717">SVF::SVFIR2AbsState::handleCmp</a></div><div class="ttdeci">void handleCmp(AbstractState &es, const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00688">SVFIR2AbsState.cpp:688</a></div></div>
|
|
572
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>
|
|
573
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_acce4bce2322fe1cdcab369d906b9aee2"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#acce4bce2322fe1cdcab369d906b9aee2">SVF::SVFIR2AbsState::handleSelect</a></div><div class="ttdeci">void handleSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01043">SVFIR2AbsState.cpp:1043</a></div></div>
|
|
574
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>
|
|
575
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>
|
|
576
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a82afa83da1b1b17140b5b9c0b7eca153"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a82afa83da1b1b17140b5b9c0b7eca153">SVF::SVFIR2AbsState::handleBinary</a></div><div class="ttdeci">void handleBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00638">SVFIR2AbsState.cpp:638</a></div></div>
|
|
577
582
|
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html">SVF::SVFIR2AbsState</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8h_source.html#l00042">SVFIR2AbsState.h:42</a></div></div>
|
|
578
583
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00943">LLVMUtil.cpp:943</a></div></div>
|
|
579
584
|
<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>
|
|
@@ -585,14 +590,11 @@ Functions</h2></td></tr>
|
|
|
585
590
|
<div class="ttc" id="aclassSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
586
591
|
<div class="ttc" id="aclassSVF_1_1PointsTo_html_a6e2ff63437d07a30cc6db35de032728a"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a6e2ff63437d07a30cc6db35de032728a">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
587
592
|
<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>
|
|
588
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a2cc9783b020cb3b019d2691ab38e243a"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a2cc9783b020cb3b019d2691ab38e243a">SVF::SVFIR2AbsState::handleAddr</a></div><div class="ttdeci">void handleAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00613">SVFIR2AbsState.cpp:613</a></div></div>
|
|
589
593
|
<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>
|
|
590
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a1930df3df0fa3f955a30beb25204438c"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a1930df3df0fa3f955a30beb25204438c">SVF::SVFIR2AbsState::handleLoad</a></div><div class="ttdeci">void handleLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00886">SVFIR2AbsState.cpp:886</a></div></div>
|
|
591
594
|
<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>
|
|
592
595
|
<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>
|
|
593
|
-
<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#
|
|
594
|
-
<div class="ttc" id="
|
|
595
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a175a43f33d55e812ec61a349eb175157"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a175a43f33d55e812ec61a349eb175157">SVF::SVFIR2AbsState::handleCall</a></div><div class="ttdeci">void handleCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l01089">SVFIR2AbsState.cpp:1089</a></div></div>
|
|
596
|
+
<div class="ttc" id="asvf-ex_8cpp_html_a9d173e935829fe04cef71e75ada50a32"><div class="ttname"><a href="svf-ex_8cpp.html#a9d173e935829fe04cef71e75ada50a32">dummyVisit</a></div><div class="ttdeci">void dummyVisit(const VFGNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00167">svf-ex.cpp:167</a></div></div>
|
|
597
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a75204b54b40f1402d670691c0355d6b5"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a75204b54b40f1402d670691c0355d6b5">SVF::SVFIR2AbsState::handleStore</a></div><div class="ttdeci">void handleStore(AbstractState &es, const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00900">SVFIR2AbsState.cpp:900</a></div></div>
|
|
596
598
|
<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 & getOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00193">GenericGraph.h:193</a></div></div>
|
|
597
599
|
<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>
|
|
598
600
|
<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>
|