svf-tools 1.0.893 → 1.0.895
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/AbstractExecution_8cpp.html +3 -3
- package/SVF-doxygen/html/AbstractExecution_8cpp_source.html +1746 -1753
- package/SVF-doxygen/html/AbstractExecution_8h.html +0 -2
- package/SVF-doxygen/html/AbstractExecution_8h_source.html +284 -335
- package/SVF-doxygen/html/BufOverflowChecker_8cpp_source.html +773 -791
- package/SVF-doxygen/html/BufOverflowChecker_8h.html +0 -2
- package/SVF-doxygen/html/BufOverflowChecker_8h_source.html +48 -81
- package/SVF-doxygen/html/ObjTypeInference_8cpp_source.html +24 -24
- package/SVF-doxygen/html/ae_8cpp.html +16 -19
- package/SVF-doxygen/html/ae_8cpp_source.html +16 -19
- package/SVF-doxygen/html/annotated.html +434 -436
- package/SVF-doxygen/html/classSVF_1_1AEStat.html +168 -168
- package/SVF-doxygen/html/classSVF_1_1AbstractExecution-members.html +49 -24
- package/SVF-doxygen/html/classSVF_1_1AbstractExecution.html +2533 -1041
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker-members.html +71 -41
- package/SVF-doxygen/html/classSVF_1_1BufOverflowChecker.html +777 -63
- package/SVF-doxygen/html/classSVF_1_1ObjTypeInference.html +24 -24
- package/SVF-doxygen/html/classes.html +418 -421
- package/SVF-doxygen/html/functions.html +8 -12
- package/SVF-doxygen/html/functions_a.html +10 -11
- package/SVF-doxygen/html/functions_b.html +5 -9
- package/SVF-doxygen/html/functions_c.html +26 -28
- package/SVF-doxygen/html/functions_d.html +2 -2
- package/SVF-doxygen/html/functions_e.html +2 -2
- package/SVF-doxygen/html/functions_enum.html +1 -1
- package/SVF-doxygen/html/functions_eval_m.html +2 -2
- package/SVF-doxygen/html/functions_eval_s.html +2 -2
- package/SVF-doxygen/html/functions_eval_u.html +1 -1
- package/SVF-doxygen/html/functions_func.html +9 -12
- package/SVF-doxygen/html/functions_func_b.html +2 -5
- package/SVF-doxygen/html/functions_func_c.html +25 -27
- package/SVF-doxygen/html/functions_func_d.html +2 -2
- package/SVF-doxygen/html/functions_func_g.html +15 -16
- package/SVF-doxygen/html/functions_func_h.html +6 -6
- package/SVF-doxygen/html/functions_func_i.html +9 -13
- package/SVF-doxygen/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/functions_func_s.html +19 -20
- package/SVF-doxygen/html/functions_func_t.html +1 -1
- package/SVF-doxygen/html/functions_func_~.html +0 -3
- package/SVF-doxygen/html/functions_g.html +21 -22
- package/SVF-doxygen/html/functions_h.html +6 -6
- package/SVF-doxygen/html/functions_i.html +15 -19
- package/SVF-doxygen/html/functions_l.html +5 -5
- package/SVF-doxygen/html/functions_m.html +2 -2
- package/SVF-doxygen/html/functions_o.html +15 -15
- package/SVF-doxygen/html/functions_p.html +13 -13
- package/SVF-doxygen/html/functions_r.html +4 -2
- package/SVF-doxygen/html/functions_s.html +21 -22
- package/SVF-doxygen/html/functions_t.html +5 -5
- package/SVF-doxygen/html/functions_type_c.html +1 -1
- package/SVF-doxygen/html/functions_u.html +1 -1
- package/SVF-doxygen/html/functions_vars.html +8 -12
- package/SVF-doxygen/html/functions_vars_b.html +0 -3
- package/SVF-doxygen/html/functions_w.html +7 -13
- package/SVF-doxygen/html/functions_~.html +0 -3
- package/SVF-doxygen/html/hierarchy.html +629 -631
- package/SVF-doxygen/html/namespaceSVF.html +5 -9
- package/SVF-doxygen/html/search/all_0.js +11 -11
- package/SVF-doxygen/html/search/all_1.js +5 -5
- package/SVF-doxygen/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/search/all_11.js +226 -226
- package/SVF-doxygen/html/search/all_12.js +570 -570
- package/SVF-doxygen/html/search/all_13.js +207 -207
- package/SVF-doxygen/html/search/all_14.js +70 -70
- package/SVF-doxygen/html/search/all_15.js +176 -176
- 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 +26 -26
- package/SVF-doxygen/html/search/all_1a.js +179 -180
- package/SVF-doxygen/html/search/all_2.js +65 -66
- package/SVF-doxygen/html/search/all_3.js +640 -640
- package/SVF-doxygen/html/search/all_4.js +235 -235
- package/SVF-doxygen/html/search/all_5.js +126 -126
- package/SVF-doxygen/html/search/all_6.js +232 -232
- package/SVF-doxygen/html/search/all_7.js +1047 -1047
- package/SVF-doxygen/html/search/all_8.js +215 -215
- package/SVF-doxygen/html/search/all_9.js +629 -630
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +204 -204
- package/SVF-doxygen/html/search/all_e.js +209 -209
- package/SVF-doxygen/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/search/classes_0.js +28 -29
- package/SVF-doxygen/html/search/classes_1.js +11 -12
- package/SVF-doxygen/html/search/classes_10.js +74 -74
- 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 +73 -73
- package/SVF-doxygen/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/search/classes_4.js +8 -8
- 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 +38 -38
- package/SVF-doxygen/html/search/classes_8.js +59 -59
- 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 +4 -4
- 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 +4 -4
- 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 +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +4 -4
- 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 +15 -15
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +4 -4
- 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 +3 -3
- 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 +47 -47
- 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 +23 -23
- 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 +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +47 -47
- package/SVF-doxygen/html/search/files_0.js +16 -16
- 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 +53 -53
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- 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 +17 -17
- 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 +62 -62
- 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 +368 -369
- 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 +299 -299
- package/SVF-doxygen/html/search/functions_13.js +73 -73
- package/SVF-doxygen/html/search/functions_14.js +41 -41
- package/SVF-doxygen/html/search/functions_15.js +72 -72
- 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 +179 -180
- package/SVF-doxygen/html/search/functions_2.js +94 -95
- package/SVF-doxygen/html/search/functions_3.js +261 -261
- package/SVF-doxygen/html/search/functions_4.js +84 -84
- package/SVF-doxygen/html/search/functions_5.js +57 -57
- package/SVF-doxygen/html/search/functions_6.js +65 -65
- package/SVF-doxygen/html/search/functions_7.js +863 -863
- package/SVF-doxygen/html/search/functions_8.js +162 -162
- package/SVF-doxygen/html/search/functions_9.js +438 -439
- 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 +25 -25
- package/SVF-doxygen/html/search/functions_d.js +82 -82
- package/SVF-doxygen/html/search/functions_e.js +36 -36
- 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 +12 -12
- 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 +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -27
- package/SVF-doxygen/html/search/typedefs_10.js +63 -63
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- 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 +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- 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 +177 -177
- package/SVF-doxygen/html/search/variables_1.js +76 -76
- package/SVF-doxygen/html/search/variables_10.js +98 -98
- package/SVF-doxygen/html/search/variables_11.js +46 -46
- 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 -41
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- 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 +34 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -8
- package/SVF-doxygen/html/search/variables_9.js +79 -79
- 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 +45 -45
- package/SVF-doxygen/html/search/variables_d.js +57 -57
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +31 -31
- package/package.json +1 -1
- package/svf/include/AE/Svfexe/AbstractExecution.h +55 -102
- package/svf/include/AE/Svfexe/BufOverflowChecker.h +12 -33
- package/svf/lib/AE/Svfexe/AbstractExecution.cpp +59 -64
- package/svf/lib/AE/Svfexe/BufOverflowChecker.cpp +44 -59
- package/svf-llvm/lib/ObjTypeInference.cpp +24 -24
- package/svf-llvm/tools/AE/ae.cpp +1 -2
|
@@ -80,8 +80,6 @@ $(function() {
|
|
|
80
80
|
Classes</h2></td></tr>
|
|
81
81
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structSVF_1_1BufOverflowException.html">SVF::BufOverflowException</a></td></tr>
|
|
82
82
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
83
|
-
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BufOverflowCheckerAPI.html">SVF::BufOverflowCheckerAPI</a></td></tr>
|
|
84
|
-
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
85
83
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BufOverflowChecker.html">SVF::BufOverflowChecker</a></td></tr>
|
|
86
84
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
87
85
|
</table><table class="memberdecls">
|
|
@@ -171,72 +171,50 @@ $(function() {
|
|
|
171
171
|
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="structSVF_1_1BufOverflowException.html#a3227be2f0eed6dd0215aa47ea484205c"> 100</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* <a class="code" href="structSVF_1_1BufOverflowException.html#a3227be2f0eed6dd0215aa47ea484205c">_allocVar</a>;</div>
|
|
172
172
|
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> };</div>
|
|
173
173
|
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div>
|
|
174
|
-
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="
|
|
174
|
+
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1BufOverflowChecker.html"> 103</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BufOverflowChecker.html">BufOverflowChecker</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AbstractExecution.html">AbstractExecution</a></div>
|
|
175
175
|
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div>
|
|
176
176
|
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">public</span>:</div>
|
|
177
|
-
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="
|
|
178
|
-
<div class="line"><a name="l00107"></a><span class="lineno"
|
|
179
|
-
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> 
|
|
180
|
-
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="
|
|
181
|
-
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="
|
|
182
|
-
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span> 
|
|
183
|
-
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> 
|
|
184
|
-
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="
|
|
177
|
+
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1BufOverflowChecker.html#adcfa49d892daef07e7d4274ab8d34b6f"> 106</a></span>  <a class="code" href="classSVF_1_1BufOverflowChecker.html#adcfa49d892daef07e7d4274ab8d34b6f">BufOverflowChecker</a>() : <a class="code" href="classSVF_1_1AbstractExecution.html">AbstractExecution</a>()</div>
|
|
178
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div>
|
|
179
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classSVF_1_1BufOverflowChecker.html#af0e2276001df7d51c45b22d5d11ca09b">initExtFunMap</a>();</div>
|
|
180
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classSVF_1_1AbstractExecution.html#ad36d48c0ef82de915d9339c4f47cbd70">_kind</a> = <a class="code" href="namespaceSVF.html#a41375daa7cc99317d0aa2a21dc643b88aa5aa2ddadb5f0392b52dcbe487fe0ecd">AEKind::BufOverflowChecker</a>;</div>
|
|
181
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classSVF_1_1BufOverflowChecker.html#aed959fce840cbea32d3567ee1ac01e82">initExtAPIBufOverflowCheckRules</a>();</div>
|
|
182
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div>
|
|
183
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
|
184
|
+
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classSVF_1_1BufOverflowChecker.html#ace460f7684aedf51c9907c995b94b653"> 113</a></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#ace460f7684aedf51c9907c995b94b653">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractExecution.html">AbstractExecution</a>* ae)</div>
|
|
185
185
|
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  {</div>
|
|
186
|
-
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span>
|
|
186
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> ae-><a class="code" href="classSVF_1_1AbstractExecution.html#a6c381287424a3623cfdae5a75d2a9c9b">getKind</a>() == <a class="code" href="namespaceSVF.html#a41375daa7cc99317d0aa2a21dc643b88aa5aa2ddadb5f0392b52dcbe487fe0ecd">AEKind::BufOverflowChecker</a>;</div>
|
|
187
187
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
|
188
188
|
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
|
189
|
-
<div class="line"><a name="
|
|
190
|
-
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  </div>
|
|
191
|
-
<div class="line"><a name="
|
|
192
|
-
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
|
|
193
|
-
<div class="line"><a name="
|
|
194
|
-
<div class="line"><a name="
|
|
195
|
-
<div class="line"><a name="
|
|
196
|
-
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </div>
|
|
197
|
-
<div class="line"><a name="
|
|
198
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
|
|
189
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">protected</span>:</div>
|
|
190
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#af0e2276001df7d51c45b22d5d11ca09b">initExtFunMap</a>() <span class="keyword">override</span>;</div>
|
|
191
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
|
192
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#aed959fce840cbea32d3567ee1ac01e82">initExtAPIBufOverflowCheckRules</a>();</div>
|
|
193
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
|
194
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a1ed3cb0a1a118d9e505b192841a58dde">handleExtAPI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *call) <span class="keyword">override</span>;</div>
|
|
195
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#ad8b2f2fa6f22b9d1655135c819cbad8a">detectStrcpy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *call);</div>
|
|
196
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#aa68f8aef09481d7c07dc59d7dfb83822">detectStrcat</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a> *call);</div>
|
|
197
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
|
|
198
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#ace5ad1d6a63d5392044fee2ecbc9236e">canSafelyAccessMemory</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &len, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *curNode);</div>
|
|
199
199
|
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  </div>
|
|
200
|
-
<div class="line"><a name="l00169"></a><span class="lineno"
|
|
201
|
-
<div class="line"><a name="
|
|
202
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> };</div>
|
|
203
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
|
|
204
|
-
<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1BufOverflowChecker.html"> 173</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1BufOverflowChecker.html">BufOverflowChecker</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1AbstractExecution.html">AbstractExecution</a></div>
|
|
205
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> {</div>
|
|
206
|
-
<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1BufOverflowChecker.html#a563fed00ad732985dbe7a7e2c6525e6a"> 175</a></span>  <span class="keyword">friend</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a563fed00ad732985dbe7a7e2c6525e6a">BufOverflowCheckerAPI</a>;</div>
|
|
200
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> <span class="keyword">private</span>:</div>
|
|
201
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a0b79c3694a08100d2d8d1b8109998131">handleSVFStatement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt) <span class="keyword">override</span>;</div>
|
|
207
202
|
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
|
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="
|
|
220
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword"> </span>{</div>
|
|
221
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <a class="code" href="classSVF_1_1AbstractExecution.html#a26f8c21bd96ae22ca2e72af6fbfa410c">_api</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a563fed00ad732985dbe7a7e2c6525e6a">BufOverflowCheckerAPI</a>(<span class="keyword">this</span>, <a class="code" href="classSVF_1_1AbstractExecution.html#a74a55a4d4941c85bdfed81f060049bf0">_stat</a>);</div>
|
|
222
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div>
|
|
223
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  </div>
|
|
224
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword">private</span>:</div>
|
|
225
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a0b79c3694a08100d2d8d1b8109998131">handleSVFStatement</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStmt.html">SVFStmt</a> *stmt) <span class="keyword">override</span>;</div>
|
|
226
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
|
|
227
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#afa6b30220b0b3261205a909def9ca44e">handleICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a> *node) <span class="keyword">override</span>;</div>
|
|
228
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
|
229
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a52de7d619e8746a70718719306d7c5a1">detectBufOverflow</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node);</div>
|
|
230
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
|
|
231
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a7c11b81809cb087317cbea654a589f75">addBugToRecoder</a>(<span class="keyword">const</span> <a class="code" href="structSVF_1_1BufOverflowException.html">BufOverflowException</a>& e, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node);</div>
|
|
232
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div>
|
|
233
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
|
234
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> };</div>
|
|
235
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> }</div>
|
|
203
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#afa6b30220b0b3261205a909def9ca44e">handleICFGNode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a> *node) <span class="keyword">override</span>;</div>
|
|
204
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  </div>
|
|
205
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a52de7d619e8746a70718719306d7c5a1">detectBufOverflow</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *node);</div>
|
|
206
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
|
|
207
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a7c11b81809cb087317cbea654a589f75">addBugToRecoder</a>(<span class="keyword">const</span> <a class="code" href="structSVF_1_1BufOverflowException.html">BufOverflowException</a>& e, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a>* node);</div>
|
|
208
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  </div>
|
|
209
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="keyword">private</span>:</div>
|
|
210
|
+
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1BufOverflowChecker.html#a0088456e712c555cbfba6203aec38037"> 201</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, const GepStmt*></a> <a class="code" href="classSVF_1_1BufOverflowChecker.html#a0088456e712c555cbfba6203aec38037">_addrToGep</a>;</div>
|
|
211
|
+
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classSVF_1_1BufOverflowChecker.html#af83b65ed98cd4e0f6cd92962e7392d4d"> 202</a></span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<std::string, std::vector<std::pair<u32_t, u32_t></a>>> <a class="code" href="classSVF_1_1BufOverflowChecker.html#af83b65ed98cd4e0f6cd92962e7392d4d">_extAPIBufOverflowCheckRules</a>;</div>
|
|
212
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  </div>
|
|
213
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> };</div>
|
|
214
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> }</div>
|
|
236
215
|
</div><!-- fragment --></div><!-- contents -->
|
|
237
|
-
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html">SVF::AbstractExecution</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#
|
|
238
|
-
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_ad36d48c0ef82de915d9339c4f47cbd70"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#ad36d48c0ef82de915d9339c4f47cbd70">SVF::AbstractExecution::_kind</a></div><div class="ttdeci">AEKind _kind</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#
|
|
239
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowCheckerAPI_html_a62a7eb3560c8ec158c2fe0c1fc95189d"><div class="ttname"><a href="classSVF_1_1BufOverflowCheckerAPI.html#a62a7eb3560c8ec158c2fe0c1fc95189d">SVF::BufOverflowCheckerAPI::canSafelyAccessMemory</a></div><div class="ttdeci">bool canSafelyAccessMemory(const SVFValue *value, const IntervalValue &len, const ICFGNode *curNode)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00497">BufOverflowChecker.cpp:497</a></div></div>
|
|
216
|
+
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html">SVF::AbstractExecution</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00108">AbstractExecution.h:108</a></div></div>
|
|
217
|
+
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_ad36d48c0ef82de915d9339c4f47cbd70"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#ad36d48c0ef82de915d9339c4f47cbd70">SVF::AbstractExecution::_kind</a></div><div class="ttdeci">AEKind _kind</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00349">AbstractExecution.h:349</a></div></div>
|
|
240
218
|
<div class="ttc" id="aAbstractExecution_8h_html"><div class="ttname"><a href="AbstractExecution_8h.html">AbstractExecution.h</a></div></div>
|
|
241
219
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a645203900fcf19bb3118d0eacb21f137"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a645203900fcf19bb3118d0eacb21f137">SVF::BufOverflowException::getAllocVar</a></div><div class="ttdeci">const SVFValue * getAllocVar() const</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00086">BufOverflowChecker.h:86</a></div></div>
|
|
242
220
|
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_afa6b30220b0b3261205a909def9ca44e"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#afa6b30220b0b3261205a909def9ca44e">SVF::BufOverflowChecker::handleICFGNode</a></div><div class="ttdeci">virtual void handleICFGNode(const SVF::ICFGNode *node) override</div></div>
|
|
@@ -244,55 +222,44 @@ $(function() {
|
|
|
244
222
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a4eb54eb3943f96e60f89d2fdd99f08c0"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a4eb54eb3943f96e60f89d2fdd99f08c0">SVF::BufOverflowException::what</a></div><div class="ttdeci">const char * what() const noexcept override</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00091">BufOverflowChecker.h:91</a></div></div>
|
|
245
223
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_aa436c171dc79cbc55281bdad17370d3f"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#aa436c171dc79cbc55281bdad17370d3f">SVF::BufOverflowException::setAllocLb</a></div><div class="ttdeci">void setAllocLb(u32_t allocLb)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00051">BufOverflowChecker.h:51</a></div></div>
|
|
246
224
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html">SVF::BufOverflowException</a></div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00036">BufOverflowChecker.h:36</a></div></div>
|
|
247
|
-
<div class="ttc" id="
|
|
225
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_ad8b2f2fa6f22b9d1655135c819cbad8a"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#ad8b2f2fa6f22b9d1655135c819cbad8a">SVF::BufOverflowChecker::detectStrcpy</a></div><div class="ttdeci">bool detectStrcpy(const CallICFGNode *call)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00123">BufOverflowChecker.cpp:123</a></div></div>
|
|
248
226
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a6d6801e705ce872340bc2722fade01ca"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a6d6801e705ce872340bc2722fade01ca">SVF::BufOverflowException::_allocUb</a></div><div class="ttdeci">u32_t _allocUb</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00099">BufOverflowChecker.h:99</a></div></div>
|
|
249
227
|
<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>
|
|
250
228
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_aedeb24d82f36ba581fa32de47f531a1f"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#aedeb24d82f36ba581fa32de47f531a1f">SVF::BufOverflowException::setAllocUb</a></div><div class="ttdeci">void setAllocUb(u32_t allocUb)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00061">BufOverflowChecker.h:61</a></div></div>
|
|
251
229
|
<div class="ttc" id="anamespaceSVF_html_a41375daa7cc99317d0aa2a21dc643b88aa5aa2ddadb5f0392b52dcbe487fe0ecd"><div class="ttname"><a href="namespaceSVF.html#a41375daa7cc99317d0aa2a21dc643b88aa5aa2ddadb5f0392b52dcbe487fe0ecd">SVF::AEKind::BufOverflowChecker</a></div><div class="ttdeci">@ BufOverflowChecker</div></div>
|
|
252
230
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a95463e50b7e92f46cb095fd2a706257a"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a95463e50b7e92f46cb095fd2a706257a">SVF::BufOverflowException::getAccessUb</a></div><div class="ttdeci">u32_t getAccessUb() const</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00076">BufOverflowChecker.h:76</a></div></div>
|
|
253
|
-
<div class="ttc" id="
|
|
254
|
-
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a6c381287424a3623cfdae5a75d2a9c9b"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a6c381287424a3623cfdae5a75d2a9c9b">SVF::AbstractExecution::getKind</a></div><div class="ttdeci">AEKind getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00138">AbstractExecution.h:138</a></div></div>
|
|
231
|
+
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a6c381287424a3623cfdae5a75d2a9c9b"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a6c381287424a3623cfdae5a75d2a9c9b">SVF::AbstractExecution::getKind</a></div><div class="ttdeci">AEKind getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00132">AbstractExecution.h:132</a></div></div>
|
|
255
232
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_ade4a2ef6faf5677945804e8c1539cbbc"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#ade4a2ef6faf5677945804e8c1539cbbc">SVF::BufOverflowException::setAccessUb</a></div><div class="ttdeci">void setAccessUb(u32_t accessUb)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00081">BufOverflowChecker.h:81</a></div></div>
|
|
256
|
-
<div class="ttc" id="
|
|
233
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_aed959fce840cbea32d3567ee1ac01e82"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#aed959fce840cbea32d3567ee1ac01e82">SVF::BufOverflowChecker::initExtAPIBufOverflowCheckRules</a></div><div class="ttdeci">void initExtAPIBufOverflowCheckRules()</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00076">BufOverflowChecker.cpp:76</a></div></div>
|
|
234
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_aa68f8aef09481d7c07dc59d7dfb83822"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#aa68f8aef09481d7c07dc59d7dfb83822">SVF::BufOverflowChecker::detectStrcat</a></div><div class="ttdeci">bool detectStrcat(const CallICFGNode *call)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00372">BufOverflowChecker.cpp:372</a></div></div>
|
|
257
235
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a9c169e68b0c793909d643e3e266434fe"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a9c169e68b0c793909d643e3e266434fe">SVF::BufOverflowException::getAccessLb</a></div><div class="ttdeci">u32_t getAccessLb() const</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00066">BufOverflowChecker.h:66</a></div></div>
|
|
258
236
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
|
|
259
237
|
<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>
|
|
260
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_adcfa49d892daef07e7d4274ab8d34b6f"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#adcfa49d892daef07e7d4274ab8d34b6f">SVF::BufOverflowChecker::BufOverflowChecker</a></div><div class="ttdeci">BufOverflowChecker()</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#
|
|
238
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_adcfa49d892daef07e7d4274ab8d34b6f"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#adcfa49d892daef07e7d4274ab8d34b6f">SVF::BufOverflowChecker::BufOverflowChecker</a></div><div class="ttdeci">BufOverflowChecker()</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00106">BufOverflowChecker.h:106</a></div></div>
|
|
261
239
|
<div class="ttc" id="aclassSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00385">ICFGNode.h:385</a></div></div>
|
|
262
|
-
<div class="ttc" id="
|
|
263
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowCheckerAPI_html_a9832ccaca3754bfd4acc2a851c8e0cb4"><div class="ttname"><a href="classSVF_1_1BufOverflowCheckerAPI.html#a9832ccaca3754bfd4acc2a851c8e0cb4">SVF::BufOverflowCheckerAPI::classof</a></div><div class="ttdeci">static bool classof(const AEAPI *api)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00113">BufOverflowChecker.h:113</a></div></div>
|
|
240
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_ace5ad1d6a63d5392044fee2ecbc9236e"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#ace5ad1d6a63d5392044fee2ecbc9236e">SVF::BufOverflowChecker::canSafelyAccessMemory</a></div><div class="ttdeci">bool canSafelyAccessMemory(const SVFValue *value, const IntervalValue &len, const ICFGNode *curNode)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00485">BufOverflowChecker.cpp:485</a></div></div>
|
|
264
241
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_ac7acc98da0c61a5b9835125bf3d2999d"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#ac7acc98da0c61a5b9835125bf3d2999d">SVF::BufOverflowException::_allocLb</a></div><div class="ttdeci">u32_t _allocLb</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00099">BufOverflowChecker.h:99</a></div></div>
|
|
265
242
|
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_a52de7d619e8746a70718719306d7c5a1"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#a52de7d619e8746a70718719306d7c5a1">SVF::BufOverflowChecker::detectBufOverflow</a></div><div class="ttdeci">bool detectBufOverflow(const ICFGNode *node)</div></div>
|
|
266
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_ace460f7684aedf51c9907c995b94b653"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#ace460f7684aedf51c9907c995b94b653">SVF::BufOverflowChecker::classof</a></div><div class="ttdeci">static bool classof(const AbstractExecution *ae)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#
|
|
243
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_ace460f7684aedf51c9907c995b94b653"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#ace460f7684aedf51c9907c995b94b653">SVF::BufOverflowChecker::classof</a></div><div class="ttdeci">static bool classof(const AbstractExecution *ae)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00113">BufOverflowChecker.h:113</a></div></div>
|
|
267
244
|
<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>
|
|
245
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_af83b65ed98cd4e0f6cd92962e7392d4d"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#af83b65ed98cd4e0f6cd92962e7392d4d">SVF::BufOverflowChecker::_extAPIBufOverflowCheckRules</a></div><div class="ttdeci">Map< std::string, std::vector< std::pair< u32_t, u32_t > > > _extAPIBufOverflowCheckRules</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00202">BufOverflowChecker.h:202</a></div></div>
|
|
268
246
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a09144623a46e13e561db8b282440e6fc"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a09144623a46e13e561db8b282440e6fc">SVF::BufOverflowException::getAllocUb</a></div><div class="ttdeci">u32_t getAllocUb() const</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00056">BufOverflowChecker.h:56</a></div></div>
|
|
269
247
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html"><div class="ttname"><a href="classSVF_1_1IntervalValue.html">SVF::IntervalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00043">IntervalValue.h:43</a></div></div>
|
|
270
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowCheckerAPI_html_ad8c1d7dfcb2fcd14fe0d8911b83500fd"><div class="ttname"><a href="classSVF_1_1BufOverflowCheckerAPI.html#ad8c1d7dfcb2fcd14fe0d8911b83500fd">SVF::BufOverflowCheckerAPI::BufOverflowCheckerAPI</a></div><div class="ttdeci">BufOverflowCheckerAPI()=delete</div></div>
|
|
271
248
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_af8a7272c33f826f0079d5a31f6c5d547"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#af8a7272c33f826f0079d5a31f6c5d547">SVF::BufOverflowException::getAllocLb</a></div><div class="ttdeci">u32_t getAllocLb() const</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00046">BufOverflowChecker.h:46</a></div></div>
|
|
272
|
-
<div class="ttc" id="
|
|
273
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ab549486e45e0c775c75f0f8749797a1c"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ab549486e45e0c775c75f0f8749797a1c">SVF::AEAPI::getKind</a></div><div class="ttdeci">AEKind getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00314">AbstractExecution.h:314</a></div></div>
|
|
274
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html">SVF::BufOverflowChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00173">BufOverflowChecker.h:173</a></div></div>
|
|
275
|
-
<div class="ttc" id="aclassSVF_1_1AbstractExecution_html_a74a55a4d4941c85bdfed81f060049bf0"><div class="ttname"><a href="classSVF_1_1AbstractExecution.html#a74a55a4d4941c85bdfed81f060049bf0">SVF::AbstractExecution::_stat</a></div><div class="ttdeci">AEStat * _stat</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00248">AbstractExecution.h:248</a></div></div>
|
|
249
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html">SVF::BufOverflowChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00103">BufOverflowChecker.h:103</a></div></div>
|
|
276
250
|
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_a0b79c3694a08100d2d8d1b8109998131"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#a0b79c3694a08100d2d8d1b8109998131">SVF::BufOverflowChecker::handleSVFStatement</a></div><div class="ttdeci">virtual void handleSVFStatement(const SVFStmt *stmt) override</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00062">BufOverflowChecker.cpp:62</a></div></div>
|
|
277
|
-
<div class="ttc" id="
|
|
278
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_a563fed00ad732985dbe7a7e2c6525e6a"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#a563fed00ad732985dbe7a7e2c6525e6a">SVF::BufOverflowChecker::BufOverflowCheckerAPI</a></div><div class="ttdeci">friend BufOverflowCheckerAPI</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00175">BufOverflowChecker.h:175</a></div></div>
|
|
279
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowCheckerAPI_html_a6a4afd9b4546d0a01dc869c6672f6dc6"><div class="ttname"><a href="classSVF_1_1BufOverflowCheckerAPI.html#a6a4afd9b4546d0a01dc869c6672f6dc6">SVF::BufOverflowCheckerAPI::handleExtAPI</a></div><div class="ttdeci">void handleExtAPI(const CallICFGNode *call)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00421">BufOverflowChecker.cpp:421</a></div></div>
|
|
280
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowCheckerAPI_html_a950ff9c290eef3ed8b4343aaa527946e"><div class="ttname"><a href="classSVF_1_1BufOverflowCheckerAPI.html#a950ff9c290eef3ed8b4343aaa527946e">SVF::BufOverflowCheckerAPI::initExtAPIBufOverflowCheckRules</a></div><div class="ttdeci">void initExtAPIBufOverflowCheckRules()</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00077">BufOverflowChecker.cpp:77</a></div></div>
|
|
251
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_af0e2276001df7d51c45b22d5d11ca09b"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#af0e2276001df7d51c45b22d5d11ca09b">SVF::BufOverflowChecker::initExtFunMap</a></div><div class="ttdeci">virtual void initExtFunMap() override</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00133">BufOverflowChecker.cpp:133</a></div></div>
|
|
281
252
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_add564a4b3a2d36953936f217e794ded0"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#add564a4b3a2d36953936f217e794ded0">SVF::BufOverflowException::_msg</a></div><div class="ttdeci">std::string _msg</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00098">BufOverflowChecker.h:98</a></div></div>
|
|
282
|
-
<div class="ttc" id="aclassSVF_1_1AEStat_html"><div class="ttname"><a href="classSVF_1_1AEStat.html">SVF::AEStat</a></div><div class="ttdoc">AEStat: Statistic for AE.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00057">AbstractExecution.h:57</a></div></div>
|
|
283
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowCheckerAPI_html_ae88696790ca4f3392c7dc76c74619f46"><div class="ttname"><a href="classSVF_1_1BufOverflowCheckerAPI.html#ae88696790ca4f3392c7dc76c74619f46">SVF::BufOverflowCheckerAPI::detectStrcat</a></div><div class="ttdeci">bool detectStrcat(const CallICFGNode *call)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00382">BufOverflowChecker.cpp:382</a></div></div>
|
|
284
253
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a3227be2f0eed6dd0215aa47ea484205c"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a3227be2f0eed6dd0215aa47ea484205c">SVF::BufOverflowException::_allocVar</a></div><div class="ttdeci">const SVFValue * _allocVar</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00100">BufOverflowChecker.h:100</a></div></div>
|
|
285
254
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a3b4548e9ff028f4de2aee57ac9f8a6a2"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a3b4548e9ff028f4de2aee57ac9f8a6a2">SVF::BufOverflowException::BufOverflowException</a></div><div class="ttdeci">BufOverflowException(std::string msg, u32_t allocLb, u32_t allocUb, u32_t accessLb, u32_t accessUb, const SVFValue *allocVal)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00039">BufOverflowChecker.h:39</a></div></div>
|
|
286
|
-
<div class="ttc" id="
|
|
255
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_a1ed3cb0a1a118d9e505b192841a58dde"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#a1ed3cb0a1a118d9e505b192841a58dde">SVF::BufOverflowChecker::handleExtAPI</a></div><div class="ttdeci">void handleExtAPI(const CallICFGNode *call) override</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8cpp_source.html#l00410">BufOverflowChecker.cpp:410</a></div></div>
|
|
287
256
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a7a81a6ff4877a87f1a09c14cc70b1cc0"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a7a81a6ff4877a87f1a09c14cc70b1cc0">SVF::BufOverflowException::_accessLb</a></div><div class="ttdeci">u32_t _accessLb</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00099">BufOverflowChecker.h:99</a></div></div>
|
|
288
|
-
<div class="ttc" id="
|
|
257
|
+
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_a0088456e712c555cbfba6203aec38037"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#a0088456e712c555cbfba6203aec38037">SVF::BufOverflowChecker::_addrToGep</a></div><div class="ttdeci">Map< NodeID, const GepStmt * > _addrToGep</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00201">BufOverflowChecker.h:201</a></div></div>
|
|
289
258
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_acd607960043c7073d32220e7e3c1a5b9"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#acd607960043c7073d32220e7e3c1a5b9">SVF::BufOverflowException::_accessUb</a></div><div class="ttdeci">u32_t _accessUb</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00099">BufOverflowChecker.h:99</a></div></div>
|
|
290
|
-
<div class="ttc" id="aclassSVF_1_1AEAPI_html_ac647ce8e5e4e14303a4c8c8fc6321492"><div class="ttname"><a href="classSVF_1_1AEAPI.html#ac647ce8e5e4e14303a4c8c8fc6321492">SVF::AEAPI::_kind</a></div><div class="ttdeci">AEKind _kind</div><div class="ttdef"><b>Definition:</b> <a href="AbstractExecution_8h_source.html#l00430">AbstractExecution.h:430</a></div></div>
|
|
291
259
|
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00097">GeneralType.h:97</a></div></div>
|
|
292
260
|
<div class="ttc" id="astructSVF_1_1BufOverflowException_html_a5ba160b90bcd053ca2bb25484dfa0147"><div class="ttname"><a href="structSVF_1_1BufOverflowException.html#a5ba160b90bcd053ca2bb25484dfa0147">SVF::BufOverflowException::setAccessLb</a></div><div class="ttdeci">void setAccessLb(u32_t accessLb)</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00071">BufOverflowChecker.h:71</a></div></div>
|
|
293
261
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00046">GeneralType.h:46</a></div></div>
|
|
294
262
|
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_a7c11b81809cb087317cbea654a589f75"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#a7c11b81809cb087317cbea654a589f75">SVF::BufOverflowChecker::addBugToRecoder</a></div><div class="ttdeci">void addBugToRecoder(const BufOverflowException &e, const ICFGNode *node)</div></div>
|
|
295
|
-
<div class="ttc" id="aclassSVF_1_1BufOverflowChecker_html_a4787d2e56aa374763656b7942f0ed52f"><div class="ttname"><a href="classSVF_1_1BufOverflowChecker.html#a4787d2e56aa374763656b7942f0ed52f">SVF::BufOverflowChecker::initExtAPI</a></div><div class="ttdeci">void initExtAPI() override</div><div class="ttdef"><b>Definition:</b> <a href="BufOverflowChecker_8h_source.html#l00188">BufOverflowChecker.h:188</a></div></div>
|
|
296
263
|
<!-- start footer part -->
|
|
297
264
|
<hr class="footer"/><address class="footer"><small>
|
|
298
265
|
Generated by  <a href="http://www.doxygen.org/index.html">
|
|
@@ -266,9 +266,9 @@ $(function() {
|
|
|
266
266
|
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div>
|
|
267
267
|
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *gepInst = SVFUtil::dyn_cast<GetElementPtrInst>(curValue))</div>
|
|
268
268
|
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  insertInferSite(gepInst);</div>
|
|
269
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: curValue->
|
|
269
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &it: curValue->users())</div>
|
|
270
270
|
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div>
|
|
271
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *loadInst = SVFUtil::dyn_cast<LoadInst>(it
|
|
271
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *loadInst = SVFUtil::dyn_cast<LoadInst>(it))</div>
|
|
272
272
|
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  {</div>
|
|
273
273
|
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">/*</span></div>
|
|
274
274
|
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment"> * infer based on load, e.g.,</span></div>
|
|
@@ -278,7 +278,7 @@ $(function() {
|
|
|
278
278
|
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment"> */</span></div>
|
|
279
279
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  insertInferSite(loadInst);</div>
|
|
280
280
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div>
|
|
281
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *storeInst = SVFUtil::dyn_cast<StoreInst>(it
|
|
281
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *storeInst = SVFUtil::dyn_cast<StoreInst>(it))</div>
|
|
282
282
|
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  {</div>
|
|
283
283
|
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span> (storeInst->getPointerOperand() == curValue)</div>
|
|
284
284
|
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div>
|
|
@@ -292,7 +292,7 @@ $(function() {
|
|
|
292
292
|
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div>
|
|
293
293
|
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">else</span></div>
|
|
294
294
|
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div>
|
|
295
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &nit: storeInst->getPointerOperand()->
|
|
295
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &nit: storeInst->getPointerOperand()->users())</div>
|
|
296
296
|
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  {</div>
|
|
297
297
|
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">/*</span></div>
|
|
298
298
|
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment"> * propagate across store (value operand) and load</span></div>
|
|
@@ -301,8 +301,8 @@ $(function() {
|
|
|
301
301
|
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment"> %q = load i8*, i8** %p</span></div>
|
|
302
302
|
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment"> ..infer based on %q..</span></div>
|
|
303
303
|
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment"> */</span></div>
|
|
304
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(nit
|
|
305
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  insertInferSitesOrPushWorklist(nit
|
|
304
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(nit))</div>
|
|
305
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  insertInferSitesOrPushWorklist(nit);</div>
|
|
306
306
|
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div>
|
|
307
307
|
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">/*</span></div>
|
|
308
308
|
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span> <span class="comment"> * infer based on store (value operand) <- gep (result element)</span></div>
|
|
@@ -322,18 +322,18 @@ $(function() {
|
|
|
322
322
|
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *gepBase = gepInst->getPointerOperand();</div>
|
|
323
323
|
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<LoadInst>(gepBase)) <span class="keywordflow">continue</span>;</div>
|
|
324
324
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keyword">const</span> <span class="keyword">auto</span> *load = SVFUtil::dyn_cast<LoadInst>(gepBase);</div>
|
|
325
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &loadUse: load->getPointerOperand()->
|
|
325
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &loadUse: load->getPointerOperand()->users())</div>
|
|
326
326
|
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div>
|
|
327
|
-
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (loadUse
|
|
327
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (loadUse == load || !SVFUtil::isa<LoadInst>(loadUse))</div>
|
|
328
328
|
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">continue</span>;</div>
|
|
329
|
-
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &gepUse: loadUse
|
|
329
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &gepUse: loadUse->users())</div>
|
|
330
330
|
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  {</div>
|
|
331
|
-
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<GetElementPtrInst>(gepUse
|
|
332
|
-
<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> &loadUse2: gepUse
|
|
331
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (!SVFUtil::isa<GetElementPtrInst>(gepUse)) <span class="keywordflow">continue</span>;</div>
|
|
332
|
+
<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> &loadUse2: gepUse->users())</div>
|
|
333
333
|
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div>
|
|
334
|
-
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(loadUse2
|
|
334
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(loadUse2))</div>
|
|
335
335
|
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  {</div>
|
|
336
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  insertInferSitesOrPushWorklist(loadUse2
|
|
336
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  insertInferSitesOrPushWorklist(loadUse2);</div>
|
|
337
337
|
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div>
|
|
338
338
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  }</div>
|
|
339
339
|
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  }</div>
|
|
@@ -343,7 +343,7 @@ $(function() {
|
|
|
343
343
|
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div>
|
|
344
344
|
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
|
|
345
345
|
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div>
|
|
346
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *gepInst = SVFUtil::dyn_cast<GetElementPtrInst>(it
|
|
346
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *gepInst = SVFUtil::dyn_cast<GetElementPtrInst>(it))</div>
|
|
347
347
|
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  {</div>
|
|
348
348
|
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">/*</span></div>
|
|
349
349
|
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment"> * infer based on gep (pointer operand)</span></div>
|
|
@@ -354,17 +354,17 @@ $(function() {
|
|
|
354
354
|
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (gepInst->getPointerOperand() == curValue)</div>
|
|
355
355
|
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  insertInferSite(gepInst);</div>
|
|
356
356
|
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
357
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *bitcast = SVFUtil::dyn_cast<BitCastInst>(it
|
|
357
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *bitcast = SVFUtil::dyn_cast<BitCastInst>(it))</div>
|
|
358
358
|
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
359
359
|
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="comment">// continue on bitcast</span></div>
|
|
360
360
|
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  insertInferSitesOrPushWorklist(bitcast);</div>
|
|
361
361
|
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div>
|
|
362
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *phiNode = SVFUtil::dyn_cast<PHINode>(it
|
|
362
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *phiNode = SVFUtil::dyn_cast<PHINode>(it))</div>
|
|
363
363
|
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div>
|
|
364
364
|
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// continue on bitcast</span></div>
|
|
365
365
|
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  insertInferSitesOrPushWorklist(phiNode);</div>
|
|
366
366
|
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div>
|
|
367
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *retInst = SVFUtil::dyn_cast<ReturnInst>(it
|
|
367
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *retInst = SVFUtil::dyn_cast<ReturnInst>(it))</div>
|
|
368
368
|
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
|
369
369
|
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">/*</span></div>
|
|
370
370
|
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> <span class="comment"> * propagate from return to caller</span></div>
|
|
@@ -377,9 +377,9 @@ $(function() {
|
|
|
377
377
|
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment"> %call = call i8* @malloc_wrapper()</span></div>
|
|
378
378
|
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment"> ..infer based on %call..</span></div>
|
|
379
379
|
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment"> */</span></div>
|
|
380
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &callsite: retInst->getFunction()->
|
|
380
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &callsite: retInst->getFunction()->users())</div>
|
|
381
381
|
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  {</div>
|
|
382
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *callBase = SVFUtil::dyn_cast<CallBase>(callsite
|
|
382
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *callBase = SVFUtil::dyn_cast<CallBase>(callsite))</div>
|
|
383
383
|
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div>
|
|
384
384
|
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// skip function as parameter</span></div>
|
|
385
385
|
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// e.g., call void @foo(%struct.ssl_ctx_st* %9, i32 (i8*, i32, i32, i8*)* @passwd_callback)</span></div>
|
|
@@ -388,7 +388,7 @@ $(function() {
|
|
|
388
388
|
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  }</div>
|
|
389
389
|
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div>
|
|
390
390
|
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div>
|
|
391
|
-
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *callBase = SVFUtil::dyn_cast<CallBase>(it
|
|
391
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *callBase = SVFUtil::dyn_cast<CallBase>(it))</div>
|
|
392
392
|
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div>
|
|
393
393
|
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="comment">/*</span></div>
|
|
394
394
|
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment"> * propagate from callsite to callee</span></div>
|
|
@@ -503,9 +503,9 @@ $(function() {
|
|
|
503
503
|
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div>
|
|
504
504
|
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *loadInst = SVFUtil::dyn_cast<LoadInst>(curValue))</div>
|
|
505
505
|
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div>
|
|
506
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &use: loadInst->getPointerOperand()->
|
|
506
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &use: loadInst->getPointerOperand()->users())</div>
|
|
507
507
|
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  {</div>
|
|
508
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a> *storeInst = SVFUtil::dyn_cast<StoreInst>(use
|
|
508
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab696aab940eb187dc81217efe8649af5">StoreInst</a> *storeInst = SVFUtil::dyn_cast<StoreInst>(use))</div>
|
|
509
509
|
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div>
|
|
510
510
|
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">if</span> (storeInst->getPointerOperand() == loadInst->getPointerOperand())</div>
|
|
511
511
|
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  {</div>
|
|
@@ -516,9 +516,9 @@ $(function() {
|
|
|
516
516
|
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div>
|
|
517
517
|
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *argument = SVFUtil::dyn_cast<Argument>(curValue))</div>
|
|
518
518
|
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div>
|
|
519
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &use: argument->getParent()->
|
|
519
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &use: argument->getParent()->users())</div>
|
|
520
520
|
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  {</div>
|
|
521
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a> *callBase = SVFUtil::dyn_cast<CallBase>(use
|
|
521
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a> *callBase = SVFUtil::dyn_cast<CallBase>(use))</div>
|
|
522
522
|
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  {</div>
|
|
523
523
|
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// skip function as parameter</span></div>
|
|
524
524
|
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="comment">// e.g., call void @foo(%struct.ssl_ctx_st* %9, i32 (i8*, i32, i32, i8*)* @passwd_callback)</span></div>
|