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
|
@@ -168,35 +168,35 @@ $(function() {
|
|
|
168
168
|
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div>
|
|
169
169
|
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div>
|
|
170
170
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </div>
|
|
171
|
-
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
171
|
+
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a037e4c0e35b1fd45df3a969c6d054a1e"> 111</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a037e4c0e35b1fd45df3a969c6d054a1e">SVFIR2AbsState::getZExtValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div>
|
|
172
172
|
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> {</div>
|
|
173
173
|
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = var-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>();</div>
|
|
174
174
|
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFIntegerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
175
175
|
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  {</div>
|
|
176
176
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bits = <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getByteSize() * 8;</div>
|
|
177
|
-
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (
|
|
177
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().is_numeral())</div>
|
|
178
178
|
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  {</div>
|
|
179
179
|
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (bits == 8)</div>
|
|
180
180
|
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div>
|
|
181
|
-
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  int8_t signed_i8_value =
|
|
181
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  int8_t signed_i8_value = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
182
182
|
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span>uint8_t<span class="keyword">></span>(signed_i8_value);</div>
|
|
183
183
|
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
184
184
|
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div>
|
|
185
185
|
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 16)</div>
|
|
186
186
|
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  {</div>
|
|
187
|
-
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> signed_i16_value =
|
|
187
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">s16_t</a> signed_i16_value = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
188
188
|
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a7c3a917e8b1d3253982e0a1a37b74d93">u16_t</a><span class="keyword">></span>(signed_i16_value);</div>
|
|
189
189
|
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
190
190
|
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div>
|
|
191
191
|
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 32)</div>
|
|
192
192
|
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div>
|
|
193
|
-
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> signed_i32_value =
|
|
193
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> signed_i32_value = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
194
194
|
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> unsigned_value = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a><span class="keyword">></span>(signed_i32_value);</div>
|
|
195
195
|
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(unsigned_value, unsigned_value);</div>
|
|
196
196
|
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div>
|
|
197
197
|
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bits == 64)</div>
|
|
198
198
|
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  {</div>
|
|
199
|
-
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> signed_i64_value =
|
|
199
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> signed_i64_value = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().getIntNumeral();</div>
|
|
200
200
|
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)signed_i64_value, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)signed_i64_value);</div>
|
|
201
201
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// we only support i64 at most</span></div>
|
|
202
202
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div>
|
|
@@ -213,18 +213,18 @@ $(function() {
|
|
|
213
213
|
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"cannot support non-integer type"</span>);</div>
|
|
214
214
|
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> }</div>
|
|
215
215
|
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  </div>
|
|
216
|
-
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
216
|
+
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a7dbb2fcda16a2879d4b508ab41d6919d"> 156</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a7dbb2fcda16a2879d4b508ab41d6919d">SVFIR2AbsState::getSExtValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* var)</div>
|
|
217
217
|
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> {</div>
|
|
218
|
-
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span>
|
|
218
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval();</div>
|
|
219
219
|
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> }</div>
|
|
220
220
|
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
|
221
|
-
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
221
|
+
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#accc3a4574ab5dd71149b4266dd19ca2f"> 161</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#accc3a4574ab5dd71149b4266dd19ca2f">SVFIR2AbsState::getFPToSIntValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
222
222
|
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> {</div>
|
|
223
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (
|
|
223
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().is_real())</div>
|
|
224
224
|
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div>
|
|
225
225
|
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
226
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">double</span> float_lb =
|
|
227
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">double</span> float_ub =
|
|
226
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">double</span> float_lb = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().lb().getRealNumeral();</div>
|
|
227
|
+
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordtype">double</span> float_ub = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getRealNumeral();</div>
|
|
228
228
|
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// get the int value of ub and lb</span></div>
|
|
229
229
|
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(float_lb);</div>
|
|
230
230
|
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a><span class="keyword">></span>(float_ub);</div>
|
|
@@ -232,17 +232,17 @@ $(function() {
|
|
|
232
232
|
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div>
|
|
233
233
|
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">else</span></div>
|
|
234
234
|
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  {</div>
|
|
235
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> getSExtValue(var);</div>
|
|
235
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> getSExtValue(es, var);</div>
|
|
236
236
|
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  }</div>
|
|
237
237
|
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div>
|
|
238
238
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  </div>
|
|
239
|
-
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
239
|
+
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a8ceffd42b533a28fffa665537e14d4e8"> 179</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a8ceffd42b533a28fffa665537e14d4e8">SVFIR2AbsState::getFPToUIntValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
240
240
|
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div>
|
|
241
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (
|
|
241
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">if</span> (es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().is_real())</div>
|
|
242
242
|
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div>
|
|
243
243
|
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
244
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">double</span> float_lb =
|
|
245
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">double</span> float_ub =
|
|
244
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">double</span> float_lb = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().lb().getRealNumeral();</div>
|
|
245
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">double</span> float_ub = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getRealNumeral();</div>
|
|
246
246
|
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// get the int value of ub and lb</span></div>
|
|
247
247
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> int_lb = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a><span class="keyword">></span>(float_lb);</div>
|
|
248
248
|
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> int_ub = <span class="keyword">static_cast<</span><a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a><span class="keyword">></span>(float_ub);</div>
|
|
@@ -250,37 +250,37 @@ $(function() {
|
|
|
250
250
|
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
251
251
|
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">else</span></div>
|
|
252
252
|
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
253
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> getZExtValue(var);</div>
|
|
253
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> getZExtValue(es, var);</div>
|
|
254
254
|
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
255
255
|
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div>
|
|
256
256
|
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
|
257
|
-
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
257
|
+
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#aba8911ddb22a7e9736f7676ed1d99a82"> 197</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#aba8911ddb22a7e9736f7676ed1d99a82">SVFIR2AbsState::getSIntToFPValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
258
258
|
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> {</div>
|
|
259
259
|
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// get the sint value of ub and lb</span></div>
|
|
260
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_lb =
|
|
261
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_ub =
|
|
260
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_lb = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().lb().getIntNumeral();</div>
|
|
261
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> sint_ub = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getIntNumeral();</div>
|
|
262
262
|
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
263
263
|
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordtype">double</span> float_lb = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(sint_lb);</div>
|
|
264
264
|
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordtype">double</span> float_ub = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(sint_ub);</div>
|
|
265
265
|
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(float_lb, float_ub);</div>
|
|
266
266
|
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> }</div>
|
|
267
267
|
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
|
|
268
|
-
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
268
|
+
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#ab6c5effe0a781740bdee4d12583c5c8e"> 208</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#ab6c5effe0a781740bdee4d12583c5c8e">SVFIR2AbsState::getUIntToFPValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var)</div>
|
|
269
269
|
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> {</div>
|
|
270
270
|
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// get the uint value of ub and lb</span></div>
|
|
271
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_lb =
|
|
272
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_ub =
|
|
271
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_lb = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().lb().getIntNumeral();</div>
|
|
272
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> uint_ub = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getIntNumeral();</div>
|
|
273
273
|
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// get the float value of ub and lb</span></div>
|
|
274
274
|
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordtype">double</span> float_lb = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(uint_lb);</div>
|
|
275
275
|
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">double</span> float_ub = <span class="keyword">static_cast<</span><span class="keywordtype">double</span><span class="keyword">></span>(uint_ub);</div>
|
|
276
276
|
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(float_lb, float_ub);</div>
|
|
277
277
|
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div>
|
|
278
278
|
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  </div>
|
|
279
|
-
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
279
|
+
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a8bc2d298ea7a239cd06f5462045da14f"> 219</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a8bc2d298ea7a239cd06f5462045da14f">SVFIR2AbsState::getTruncValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* dstType)</div>
|
|
280
280
|
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> {</div>
|
|
281
281
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// get the value of ub and lb</span></div>
|
|
282
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_lb =
|
|
283
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_ub =
|
|
282
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_lb = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().lb().getIntNumeral();</div>
|
|
283
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> int_ub = es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval().ub().getIntNumeral();</div>
|
|
284
284
|
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// get dst type</span></div>
|
|
285
285
|
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> dst_bits = dstType-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>() * 8;</div>
|
|
286
286
|
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (dst_bits == 8)</div>
|
|
@@ -325,815 +325,805 @@ $(function() {
|
|
|
325
325
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
|
326
326
|
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> }</div>
|
|
327
327
|
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
|
|
328
|
-
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
328
|
+
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a0bdeaa3dac43c85cfac9195592db3fc9"> 268</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a0bdeaa3dac43c85cfac9195592db3fc9">SVFIR2AbsState::getFPTruncValue</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVF::SVFVar</a>* var, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* dstType)</div>
|
|
329
329
|
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> {</div>
|
|
330
330
|
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="comment">// TODO: now we do not really handle fptrunc</span></div>
|
|
331
|
-
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span>
|
|
331
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> es[var-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()].getInterval();</div>
|
|
332
332
|
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> }</div>
|
|
333
333
|
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
|
|
334
|
-
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#
|
|
334
|
+
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#ad4ae901d5e3fe20c155e508884a5bf7f"> 274</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#ad4ae901d5e3fe20c155e508884a5bf7f">SVFIR2AbsState::widenAddrs</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&rhs)</div>
|
|
335
335
|
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> {</div>
|
|
336
|
-
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &
|
|
336
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>)</div>
|
|
337
337
|
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  {</div>
|
|
338
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> 
|
|
339
|
-
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> 
|
|
340
|
-
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> 
|
|
341
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> 
|
|
342
|
-
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> 
|
|
343
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> 
|
|
344
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> 
|
|
345
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
|
|
346
|
-
<div class="line"><a name="l00286"></a><span class="lineno"
|
|
347
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> 
|
|
348
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
349
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> 
|
|
350
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> 
|
|
351
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> 
|
|
352
|
-
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> 
|
|
353
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> 
|
|
354
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> 
|
|
355
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> 
|
|
356
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> 
|
|
357
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
358
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
359
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
|
|
360
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> 
|
|
361
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> 
|
|
362
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> 
|
|
363
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> 
|
|
364
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> 
|
|
365
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> 
|
|
366
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> 
|
|
367
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> 
|
|
368
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> 
|
|
369
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> 
|
|
370
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> 
|
|
371
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> 
|
|
372
|
-
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> 
|
|
373
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> 
|
|
374
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> 
|
|
375
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> 
|
|
376
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> 
|
|
377
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> 
|
|
378
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> 
|
|
379
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> 
|
|
380
|
-
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> 
|
|
381
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> 
|
|
382
|
-
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> 
|
|
383
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> 
|
|
384
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> 
|
|
385
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> 
|
|
386
|
-
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> 
|
|
387
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> 
|
|
388
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> 
|
|
389
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> 
|
|
390
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> 
|
|
391
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
|
|
392
|
-
<div class="line"><a name="l00332"></a><span class="lineno"
|
|
393
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> 
|
|
394
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> 
|
|
395
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> 
|
|
396
|
-
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> 
|
|
397
|
-
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> 
|
|
398
|
-
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> 
|
|
399
|
-
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> 
|
|
400
|
-
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> 
|
|
401
|
-
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> 
|
|
402
|
-
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> 
|
|
403
|
-
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span> 
|
|
404
|
-
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> 
|
|
405
|
-
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> 
|
|
406
|
-
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> 
|
|
407
|
-
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> 
|
|
408
|
-
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> 
|
|
409
|
-
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> 
|
|
410
|
-
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> 
|
|
411
|
-
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> 
|
|
412
|
-
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> 
|
|
413
|
-
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> 
|
|
414
|
-
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> 
|
|
415
|
-
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span> 
|
|
416
|
-
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> 
|
|
417
|
-
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span> 
|
|
418
|
-
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> 
|
|
419
|
-
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> 
|
|
420
|
-
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> 
|
|
421
|
-
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> 
|
|
422
|
-
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> 
|
|
423
|
-
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> 
|
|
424
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> 
|
|
425
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> 
|
|
426
|
-
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> 
|
|
427
|
-
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> 
|
|
428
|
-
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> 
|
|
429
|
-
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> 
|
|
430
|
-
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span> 
|
|
431
|
-
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  </div>
|
|
432
|
-
<div class="line"><a name="l00372"></a><span class="lineno"
|
|
433
|
-
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> 
|
|
434
|
-
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> 
|
|
435
|
-
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> 
|
|
436
|
-
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span> 
|
|
437
|
-
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> 
|
|
438
|
-
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span> 
|
|
439
|
-
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> 
|
|
440
|
-
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> 
|
|
441
|
-
<div class="line"><a name="
|
|
442
|
-
<div class="line"><a name="
|
|
443
|
-
<div class="line"><a name="
|
|
444
|
-
<div class="line"><a name="
|
|
445
|
-
<div class="line"><a name="
|
|
446
|
-
<div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="
|
|
449
|
-
<div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="l00415"></a><span class="lineno"
|
|
454
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span> 
|
|
455
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span> 
|
|
456
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> 
|
|
457
|
-
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span> 
|
|
458
|
-
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> 
|
|
459
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> 
|
|
460
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span> 
|
|
461
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> 
|
|
462
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> 
|
|
463
|
-
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span> 
|
|
464
|
-
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span> 
|
|
465
|
-
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span> 
|
|
466
|
-
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span> 
|
|
467
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span> 
|
|
468
|
-
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> 
|
|
469
|
-
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">
|
|
470
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span> 
|
|
471
|
-
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span> 
|
|
472
|
-
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span> 
|
|
473
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> 
|
|
474
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> 
|
|
475
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> 
|
|
476
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> 
|
|
477
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
478
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> 
|
|
479
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> 
|
|
480
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> 
|
|
481
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> 
|
|
482
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> 
|
|
483
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> 
|
|
484
|
-
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> 
|
|
485
|
-
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span> 
|
|
486
|
-
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span> 
|
|
487
|
-
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> 
|
|
488
|
-
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span> 
|
|
489
|
-
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span> 
|
|
490
|
-
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span> 
|
|
491
|
-
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span> 
|
|
492
|
-
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span> 
|
|
493
|
-
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span> 
|
|
494
|
-
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span> 
|
|
495
|
-
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span> 
|
|
496
|
-
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span> 
|
|
497
|
-
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> 
|
|
498
|
-
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span> 
|
|
499
|
-
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span> 
|
|
500
|
-
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span> 
|
|
501
|
-
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> 
|
|
502
|
-
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> 
|
|
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="l00485"></a><span class="lineno"
|
|
516
|
-
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span> 
|
|
517
|
-
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> 
|
|
518
|
-
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="
|
|
519
|
-
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> 
|
|
520
|
-
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> 
|
|
521
|
-
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> 
|
|
522
|
-
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> 
|
|
523
|
-
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> 
|
|
524
|
-
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span> 
|
|
525
|
-
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span> 
|
|
526
|
-
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span> 
|
|
527
|
-
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span> 
|
|
528
|
-
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> 
|
|
529
|
-
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> 
|
|
530
|
-
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> 
|
|
531
|
-
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span> 
|
|
532
|
-
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> 
|
|
533
|
-
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">
|
|
338
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.find(rhsItem.first);</div>
|
|
339
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.end())</div>
|
|
340
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div>
|
|
341
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">if</span> (rhsItem.second.isAddr())</div>
|
|
342
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  {</div>
|
|
343
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: rhsItem.second.getAddrs())</div>
|
|
344
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div>
|
|
345
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">if</span> (!lhsIter->second.getAddrs().contains(addr))</div>
|
|
346
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div>
|
|
347
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i < (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
|
|
348
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  {</div>
|
|
349
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  lhsIter->second.join_with(getGepObjAddress(es, getInternalID(addr), i));</div>
|
|
350
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div>
|
|
351
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div>
|
|
352
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div>
|
|
353
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div>
|
|
354
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div>
|
|
355
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div>
|
|
356
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#a816695606ef796ce97c42ac4053de47e">_addrToAbsVal</a>)</div>
|
|
357
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div>
|
|
358
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#a816695606ef796ce97c42ac4053de47e">_addrToAbsVal</a>.find(rhsItem.first);</div>
|
|
359
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#a816695606ef796ce97c42ac4053de47e">_addrToAbsVal</a>.end())</div>
|
|
360
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div>
|
|
361
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">if</span> (rhsItem.second.isAddr())</div>
|
|
362
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  {</div>
|
|
363
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& addr : rhsItem.second.getAddrs())</div>
|
|
364
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div>
|
|
365
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">if</span> (!lhsIter->second.getAddrs().contains(addr))</div>
|
|
366
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div>
|
|
367
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i < (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
368
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  i++)</div>
|
|
369
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div>
|
|
370
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  lhsIter->second.join_with(</div>
|
|
371
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  getGepObjAddress(es, getInternalID(addr), i));</div>
|
|
372
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div>
|
|
373
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div>
|
|
374
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div>
|
|
375
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div>
|
|
376
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div>
|
|
377
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div>
|
|
378
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> }</div>
|
|
379
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
|
|
380
|
+
<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a4abde8e78108675a6980c362857cc7f0"> 320</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a4abde8e78108675a6980c362857cc7f0">SVFIR2AbsState::narrowAddrs</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>&rhs)</div>
|
|
381
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> {</div>
|
|
382
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>)</div>
|
|
383
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  {</div>
|
|
384
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.find(rhsItem.first);</div>
|
|
385
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">_varToAbsVal</a>.end())</div>
|
|
386
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  {</div>
|
|
387
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (lhsIter->second.isAddr())</div>
|
|
388
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  {</div>
|
|
389
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: lhsIter->second.getAddrs())</div>
|
|
390
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div>
|
|
391
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">if</span> (!rhsItem.second.getAddrs().contains(addr))</div>
|
|
392
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div>
|
|
393
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  lhsIter->second = rhsItem.second;</div>
|
|
394
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">break</span>;</div>
|
|
395
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  }</div>
|
|
396
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div>
|
|
397
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div>
|
|
398
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div>
|
|
399
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div>
|
|
400
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &rhsItem: rhs.<a class="code" href="classSVF_1_1AbstractState.html#a816695606ef796ce97c42ac4053de47e">_addrToAbsVal</a>)</div>
|
|
401
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div>
|
|
402
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1AbstractState.html#a816695606ef796ce97c42ac4053de47e">_addrToAbsVal</a>.find(rhsItem.first);</div>
|
|
403
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1AbstractState.html#a816695606ef796ce97c42ac4053de47e">_addrToAbsVal</a>.end())</div>
|
|
404
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  {</div>
|
|
405
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">if</span> (lhsIter->second.isAddr())</div>
|
|
406
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div>
|
|
407
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& addr : lhsIter->second.getAddrs())</div>
|
|
408
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div>
|
|
409
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">if</span> (!rhsItem.second.getAddrs().contains(addr))</div>
|
|
410
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  {</div>
|
|
411
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  lhsIter->second = rhsItem.second;</div>
|
|
412
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">break</span>;</div>
|
|
413
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div>
|
|
414
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  }</div>
|
|
415
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div>
|
|
416
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div>
|
|
417
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div>
|
|
418
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span> }</div>
|
|
419
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  </div>
|
|
420
|
+
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#aaca7dc6ee9a3c8ea6e3eca094c7c3045"> 360</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#aaca7dc6ee9a3c8ea6e3eca094c7c3045">SVFIR2AbsState::getGepObjAddress</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pointer, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
|
|
421
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> {</div>
|
|
422
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  assert(!getAddrs(es, pointer).getAddrs().empty());</div>
|
|
423
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> addrs = getAddrs(es, pointer);</div>
|
|
424
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> ret = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>();</div>
|
|
425
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>())</div>
|
|
426
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  {</div>
|
|
427
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> baseObj = getInternalID(addr);</div>
|
|
428
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">if</span> (baseObj == 0)</div>
|
|
429
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div>
|
|
430
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  ret.<a class="code" href="structSVF_1_1AbstractValue.html#a5cc67e56c658a6833b1bf9235f2a73ba">insertAddr</a>(getVirtualMemAddress(0));</div>
|
|
431
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">continue</span>;</div>
|
|
432
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  }</div>
|
|
433
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  assert(SVFUtil::isa<ObjVar>(_svfir->getGNode(baseObj)) && <span class="stringliteral">"Fail to get the base object address!"</span>);</div>
|
|
434
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepObj = _svfir->getGepObjVar(baseObj, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
435
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  initSVFVar(es, gepObj);</div>
|
|
436
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  ret.<a class="code" href="structSVF_1_1AbstractValue.html#a5cc67e56c658a6833b1bf9235f2a73ba">insertAddr</a>(getVirtualMemAddress(gepObj));</div>
|
|
437
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div>
|
|
438
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">return</span> ret;</div>
|
|
439
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> }</div>
|
|
440
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  </div>
|
|
441
|
+
<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#aec9a351850857fa3c6fb23c58317cb0d"> 403</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#aec9a351850857fa3c6fb23c58317cb0d">SVFIR2AbsState::getByteOffset</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
442
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> {</div>
|
|
443
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
444
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)gep-><a class="code" href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">accumulateConstantByteOffset</a>());</div>
|
|
445
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0); <span class="comment">// Initialize the result interval 'res' to 0.</span></div>
|
|
446
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="comment">// Loop through the offsetVarAndGepTypePairVec in reverse order.</span></div>
|
|
447
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
448
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div>
|
|
449
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a>* idxOperandVar =</div>
|
|
450
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first;</div>
|
|
451
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* idxOperandType =</div>
|
|
452
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].second;</div>
|
|
453
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="comment">// calculating Array/Ptr by elemByteSize * indexOperand</span></div>
|
|
454
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFArrayType>(idxOperandType) || SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
455
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div>
|
|
456
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemByteSize = 1;</div>
|
|
457
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>* arrOperandType = SVFUtil::dyn_cast<SVFArrayType>(idxOperandType))</div>
|
|
458
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  elemByteSize = arrOperandType->getTypeOfElement()->getByteSize();</div>
|
|
459
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(idxOperandType))</div>
|
|
460
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  elemByteSize = gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">getByteSize</a>();</div>
|
|
461
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">else</span></div>
|
|
462
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"idxOperandType must be ArrType or PtrType"</span>);</div>
|
|
463
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast<SVFConstantInt>(idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()))</div>
|
|
464
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div>
|
|
465
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemByteSize >= op->getSExtValue() ?op->getSExtValue() * elemByteSize</div>
|
|
466
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
467
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, lb);</div>
|
|
468
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div>
|
|
469
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">else</span></div>
|
|
470
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  {</div>
|
|
471
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir->getValueNode(idxOperandVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>());</div>
|
|
472
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxVal = es[idx].getInterval();</div>
|
|
473
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">isBottom</a>())</div>
|
|
474
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
475
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">else</span></div>
|
|
476
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  {</div>
|
|
477
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="comment">// if lb or ub is negative number, set 0.</span></div>
|
|
478
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="comment">// if lb or ub is positive number, guarantee lb/ub * elemByteSize <= MaxFieldLimit</span></div>
|
|
479
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> ub = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < 0) ? 0 :</div>
|
|
480
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  (<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
481
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
482
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> lb = (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < 0) ? 0 :</div>
|
|
483
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  ((<span class="keywordtype">double</span>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() /</div>
|
|
484
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  elemByteSize >= idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>()) ? elemByteSize * idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() : <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
485
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lb, ub);</div>
|
|
486
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  }</div>
|
|
487
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div>
|
|
488
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div>
|
|
489
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="comment">// Process struct subtype by calculating the byte offset from beginning to the field of struct</span></div>
|
|
490
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>* structOperandType = SVFUtil::dyn_cast<SVFStructType>(idxOperandType))</div>
|
|
491
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  {</div>
|
|
492
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">getStructFieldOffset</a>(</div>
|
|
493
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  idxOperandVar, structOperandType));</div>
|
|
494
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  }</div>
|
|
495
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">else</span></div>
|
|
496
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  {</div>
|
|
497
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"gep type pair only support arr/ptr/struct"</span>);</div>
|
|
498
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div>
|
|
499
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
500
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">return</span> res; <span class="comment">// Return the resulting byte offset as an IntervalValue.</span></div>
|
|
501
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span> }</div>
|
|
502
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  </div>
|
|
503
|
+
<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#af3f15bd1ccf90a4e11a4dcfda2f2aa47"> 473</a></span> <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#af3f15bd1ccf90a4e11a4dcfda2f2aa47">SVFIR2AbsState::getItvOfFlattenedElemIndex</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
504
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> {</div>
|
|
505
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">isConstantOffset</a>())</div>
|
|
506
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)gep-><a class="code" href="classSVF_1_1GepStmt.html#a1dd264b9f3b43d04aa1396443ad6ad33">accumulateConstantOffset</a>());</div>
|
|
507
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
508
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
509
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  {</div>
|
|
510
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">AccessPath::IdxOperandPair</a> IdxVarAndType =</div>
|
|
511
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i];</div>
|
|
512
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value =</div>
|
|
513
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">getOffsetVarAndGepTypePairVec</a>()[i].first->getValue();</div>
|
|
514
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = IdxVarAndType.second;</div>
|
|
515
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// idxLb/Ub is the flattened offset generated by the current OffsetVarAndGepTypePair</span></div>
|
|
516
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxLb;</div>
|
|
517
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> idxUb;</div>
|
|
518
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">// get lb and ub of the index value</span></div>
|
|
519
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* constInt = SVFUtil::dyn_cast<SVFConstantInt>(value))</div>
|
|
520
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  idxLb = idxUb = constInt->getSExtValue();</div>
|
|
521
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordflow">else</span></div>
|
|
522
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  {</div>
|
|
523
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> idxItv = es[_svfir->getValueNode(value)].getInterval();</div>
|
|
524
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">if</span> (idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">isBottom</a>())</div>
|
|
525
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  idxLb = idxUb = 0;</div>
|
|
526
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">else</span></div>
|
|
527
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div>
|
|
528
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  idxLb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
529
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  idxUb = idxItv.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>();</div>
|
|
530
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  }</div>
|
|
531
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div>
|
|
532
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="comment">// for pointer type, flattened index = elemNum * idx</span></div>
|
|
533
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span> (SVFUtil::isa<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
534
534
|
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  {</div>
|
|
535
|
-
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="
|
|
536
|
-
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <
|
|
537
|
-
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> 
|
|
538
|
-
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span> 
|
|
539
|
-
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> 
|
|
540
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> 
|
|
541
|
-
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> 
|
|
542
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> 
|
|
543
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span> 
|
|
544
|
-
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span> 
|
|
545
|
-
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span> 
|
|
546
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> 
|
|
547
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span> 
|
|
548
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span> 
|
|
549
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span> 
|
|
550
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> 
|
|
551
|
-
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span> 
|
|
552
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> 
|
|
553
|
-
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span> 
|
|
554
|
-
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> 
|
|
555
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> 
|
|
556
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> 
|
|
557
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span> 
|
|
558
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> 
|
|
559
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> 
|
|
560
|
-
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> 
|
|
561
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> 
|
|
562
|
-
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> 
|
|
563
|
-
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> 
|
|
564
|
-
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> 
|
|
565
|
-
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> 
|
|
566
|
-
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> 
|
|
567
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> 
|
|
568
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> 
|
|
569
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span> 
|
|
570
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> 
|
|
571
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> 
|
|
572
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> 
|
|
573
|
-
<div class="line"><a name="
|
|
574
|
-
<div class="line"><a name="
|
|
575
|
-
<div class="line"><a name="
|
|
576
|
-
<div class="line"><a name="
|
|
577
|
-
<div class="line"><a name="
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
583
|
-
<div class="line"><a name="
|
|
584
|
-
<div class="line"><a name="
|
|
585
|
-
<div class="line"><a name="
|
|
586
|
-
<div class="line"><a name="
|
|
587
|
-
<div class="line"><a name="
|
|
588
|
-
<div class="line"><a name="
|
|
589
|
-
<div class="line"><a name="
|
|
590
|
-
<div class="line"><a name="
|
|
591
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> 
|
|
592
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> 
|
|
593
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> 
|
|
594
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> 
|
|
595
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> 
|
|
596
|
-
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> 
|
|
597
|
-
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> 
|
|
598
|
-
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> 
|
|
599
|
-
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> 
|
|
600
|
-
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> 
|
|
601
|
-
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> 
|
|
602
|
-
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> 
|
|
603
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> 
|
|
604
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> 
|
|
605
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> 
|
|
535
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> elemNum = gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a7b4921dea37246f0f08dffa7db384a61">gepSrcPointeeType</a>());</div>
|
|
536
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  idxLb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemNum < idxLb? <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(): idxLb * elemNum;</div>
|
|
537
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  idxUb = (double)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() / elemNum < idxUb? <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(): idxUb * elemNum;</div>
|
|
538
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div>
|
|
539
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="comment">// for array or struct, get flattened index from SymbolTable Info</span></div>
|
|
540
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">else</span></div>
|
|
541
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  {</div>
|
|
542
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">Options::ModelArrays</a>())</div>
|
|
543
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  {</div>
|
|
544
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keyword">const</span> std::vector<u32_t>& so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
|
|
545
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  -><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
546
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  -><a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
|
|
547
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">if</span> (so.empty() || idxUb >= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() || idxLb < 0)</div>
|
|
548
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  {</div>
|
|
549
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  idxLb = idxUb = 0;</div>
|
|
550
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  }</div>
|
|
551
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">else</span></div>
|
|
552
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  {</div>
|
|
553
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  idxLb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
554
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxLb);</div>
|
|
555
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  idxUb = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
556
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, idxUb);</div>
|
|
557
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  }</div>
|
|
558
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  }</div>
|
|
559
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">else</span></div>
|
|
560
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  idxLb = idxUb = 0;</div>
|
|
561
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div>
|
|
562
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(idxLb, idxUb);</div>
|
|
563
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div>
|
|
564
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  res.<a class="code" href="structSVF_1_1AbstractValue.html#a078ac137e60c5a2585a649f7ec40a8a8">meet_with</a>(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()));</div>
|
|
565
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">if</span> (res.<a class="code" href="structSVF_1_1AbstractValue.html#a8b1af972fa8a4e40347990d179ec1c52">isBottom</a>())</div>
|
|
566
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  {</div>
|
|
567
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
568
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  }</div>
|
|
569
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">return</span> res;</div>
|
|
570
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> }</div>
|
|
571
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  </div>
|
|
572
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  </div>
|
|
573
|
+
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#ae0801d4df0304e422ee4cc1b60d2ffb3"> 548</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#ae0801d4df0304e422ee4cc1b60d2ffb3">SVFIR2AbsState::initObjVar</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
|
|
574
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> {</div>
|
|
575
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  </div>
|
|
576
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">if</span> (objVar-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
577
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div>
|
|
578
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-><a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
|
|
579
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">if</span> (obj-><a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
|
|
580
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  {</div>
|
|
581
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *consInt = SVFUtil::dyn_cast<SVFConstantInt>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
582
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  {</div>
|
|
583
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> numeral = consInt->getSExtValue();</div>
|
|
584
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
|
|
585
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  }</div>
|
|
586
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>* consFP = SVFUtil::dyn_cast<SVFConstantFP>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
587
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP->getFPValue(), consFP->getFPValue());</div>
|
|
588
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFConstantNullPtr>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
589
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
590
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<SVFGlobalValue>(obj-><a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
|
|
591
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  {</div>
|
|
592
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  es[varId] = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>(getVirtualMemAddress(varId));</div>
|
|
593
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div>
|
|
594
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  </div>
|
|
595
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (obj-><a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-><a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
|
|
596
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
597
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">else</span></div>
|
|
598
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
599
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  }</div>
|
|
600
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">else</span></div>
|
|
601
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  es[varId] = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>(getVirtualMemAddress(varId));</div>
|
|
602
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div>
|
|
603
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">else</span></div>
|
|
604
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  es[varId] = <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>(getVirtualMemAddress(varId));</div>
|
|
605
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> }</div>
|
|
606
606
|
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  </div>
|
|
607
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> 
|
|
608
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> 
|
|
609
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> 
|
|
610
|
-
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span> 
|
|
611
|
-
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> 
|
|
612
|
-
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span> 
|
|
613
|
-
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> 
|
|
614
|
-
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> 
|
|
615
|
-
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span> 
|
|
616
|
-
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span> 
|
|
617
|
-
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> }</div>
|
|
618
|
-
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  </div>
|
|
619
|
-
<div class="line"><a name="l00595"></a><span class="lineno"
|
|
620
|
-
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> 
|
|
621
|
-
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> 
|
|
622
|
-
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> 
|
|
623
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> 
|
|
624
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> 
|
|
625
|
-
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> 
|
|
626
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> 
|
|
627
|
-
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> 
|
|
628
|
-
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> 
|
|
629
|
-
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> 
|
|
630
|
-
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> 
|
|
631
|
-
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span> 
|
|
632
|
-
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span> 
|
|
633
|
-
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span> 
|
|
634
|
-
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span> }</div>
|
|
635
|
-
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  </div>
|
|
607
|
+
<div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#aa992d91842053a6a651976cdb49199e4"> 583</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#aa992d91842053a6a651976cdb49199e4">SVFIR2AbsState::initSVFVar</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
|
|
608
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> {</div>
|
|
609
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">if</span> (inVarToValTable(es, varId) || es.<a class="code" href="classSVF_1_1AbstractState.html#aa34516a95191c5ec56ce44a117e8b018">inVarToAddrsTable</a>(varId)) <span class="keywordflow">return</span>;</div>
|
|
610
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
|
|
611
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div>
|
|
612
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="comment">// write objvar into cache instead of exestate</span></div>
|
|
613
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast<ObjVar>(svfVar))</div>
|
|
614
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  {</div>
|
|
615
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  initObjVar(es, objVar, varId);</div>
|
|
616
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">return</span>;</div>
|
|
617
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div>
|
|
618
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">else</span></div>
|
|
619
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div>
|
|
620
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not an obj var?"</span>);</div>
|
|
621
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div>
|
|
622
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> }</div>
|
|
623
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  </div>
|
|
624
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  </div>
|
|
625
|
+
<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#af09515297cb9c31153ed7f32bc3febd2"> 601</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#af09515297cb9c31153ed7f32bc3febd2">SVFIR2AbsState::handleAddr</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr)</div>
|
|
626
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> {</div>
|
|
627
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  initSVFVar(es, addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
628
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">if</span> (inVarToValTable(es, addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
629
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  {</div>
|
|
630
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="comment">// if addr RHS is integerType(i8 i32 etc), value should be limited.</span></div>
|
|
631
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">if</span> (addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a4bc7962d519c1c0380b5a6a144c91c51">getKind</a>() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a>)</div>
|
|
632
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  {</div>
|
|
633
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  es[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()].meet_with(getRangeLimitFromType(addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()));</div>
|
|
634
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  }</div>
|
|
635
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  es[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = es[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
|
|
636
636
|
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  </div>
|
|
637
|
-
<div class="line"><a name="l00613"></a><span class="lineno"
|
|
638
|
-
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span> 
|
|
639
|
-
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span> 
|
|
640
|
-
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span> 
|
|
641
|
-
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span> 
|
|
642
|
-
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span> 
|
|
643
|
-
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span> 
|
|
644
|
-
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> 
|
|
645
|
-
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span> 
|
|
646
|
-
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> 
|
|
647
|
-
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> 
|
|
637
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  }</div>
|
|
638
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(es, addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
639
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  {</div>
|
|
640
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  es[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] =</div>
|
|
641
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  es[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
|
|
642
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  }</div>
|
|
643
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">else</span></div>
|
|
644
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  {</div>
|
|
645
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not number or virtual addrs?"</span>);</div>
|
|
646
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div>
|
|
647
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span> }</div>
|
|
648
648
|
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  </div>
|
|
649
|
-
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span> 
|
|
650
|
-
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span> 
|
|
651
|
-
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> 
|
|
652
|
-
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span> 
|
|
653
|
-
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span> 
|
|
654
|
-
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span> 
|
|
655
|
-
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">
|
|
656
|
-
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span> 
|
|
657
|
-
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span> 
|
|
658
|
-
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span> 
|
|
659
|
-
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span> 
|
|
660
|
-
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  </div>
|
|
661
|
-
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  </div>
|
|
662
|
-
<div class="line"><a name="l00638"></a><span class="lineno"
|
|
663
|
-
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> 
|
|
664
|
-
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> 
|
|
665
|
-
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> 
|
|
666
|
-
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span> 
|
|
667
|
-
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span> 
|
|
668
|
-
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span> 
|
|
669
|
-
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span> 
|
|
670
|
-
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span> 
|
|
671
|
-
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <a class="code" href="
|
|
672
|
-
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <a class="code" href="
|
|
673
|
-
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span> 
|
|
674
|
-
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span> 
|
|
675
|
-
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
676
|
-
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
677
|
-
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span> 
|
|
678
|
-
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> 
|
|
679
|
-
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span> 
|
|
680
|
-
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
681
|
-
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span> 
|
|
682
|
-
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> 
|
|
683
|
-
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> 
|
|
684
|
-
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> 
|
|
685
|
-
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> 
|
|
686
|
-
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span> 
|
|
687
|
-
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span> 
|
|
688
|
-
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
689
|
-
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> 
|
|
690
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> 
|
|
691
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> 
|
|
692
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span> 
|
|
693
|
-
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span> 
|
|
694
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
695
|
-
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  resVal = (lhs
|
|
649
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  </div>
|
|
650
|
+
<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a9db48252f099848d0f152e9fa523333a"> 626</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a9db48252f099848d0f152e9fa523333a">SVFIR2AbsState::handleBinary</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary)</div>
|
|
651
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span> {</div>
|
|
652
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
653
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
654
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = binary-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
655
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">if</span> (!inVarToValTable(es, op0)) es[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
656
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keywordflow">if</span> (!inVarToValTable(es, op1)) es[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
657
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">if</span> (inVarToValTable(es, op0) && inVarToValTable(es, op1))</div>
|
|
658
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  {</div>
|
|
659
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &lhs = es[op0], &rhs = es[op1];</div>
|
|
660
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> resVal;</div>
|
|
661
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">switch</span> (binary-><a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
|
|
662
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  {</div>
|
|
663
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
|
|
664
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
|
|
665
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  resVal = (lhs + rhs);</div>
|
|
666
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">break</span>;</div>
|
|
667
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
|
|
668
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
|
|
669
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  resVal = (lhs - rhs);</div>
|
|
670
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">break</span>;</div>
|
|
671
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
|
|
672
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
|
|
673
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  resVal = (lhs * rhs);</div>
|
|
674
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keywordflow">break</span>;</div>
|
|
675
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
|
|
676
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
|
|
677
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
|
|
678
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  resVal = (lhs / rhs);</div>
|
|
679
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">break</span>;</div>
|
|
680
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
|
|
681
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
|
|
682
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
|
|
683
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  resVal = (lhs % rhs);</div>
|
|
684
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">break</span>;</div>
|
|
685
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
|
|
686
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  resVal = (lhs ^ rhs);</div>
|
|
687
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keywordflow">break</span>;</div>
|
|
688
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
|
|
689
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  resVal = (lhs & rhs);</div>
|
|
690
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keywordflow">break</span>;</div>
|
|
691
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
|
|
692
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  resVal = (lhs | rhs);</div>
|
|
693
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  <span class="keywordflow">break</span>;</div>
|
|
694
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
|
|
695
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  resVal = (lhs >> rhs);</div>
|
|
696
696
|
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">break</span>;</div>
|
|
697
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
698
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  resVal = (lhs
|
|
697
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
|
|
698
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  resVal = (lhs << rhs);</div>
|
|
699
699
|
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">break</span>;</div>
|
|
700
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
701
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  resVal = (lhs &
|
|
700
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
|
|
701
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  resVal = (lhs >> rhs);</div>
|
|
702
702
|
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  <span class="keywordflow">break</span>;</div>
|
|
703
|
-
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">
|
|
704
|
-
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> 
|
|
705
|
-
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="
|
|
706
|
-
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> 
|
|
707
|
-
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span> 
|
|
708
|
-
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> 
|
|
709
|
-
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span> 
|
|
710
|
-
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> 
|
|
711
|
-
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> 
|
|
712
|
-
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> 
|
|
713
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> 
|
|
714
|
-
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> 
|
|
715
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span> 
|
|
716
|
-
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span> 
|
|
717
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> 
|
|
718
|
-
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> 
|
|
719
|
-
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> 
|
|
720
|
-
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> 
|
|
721
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> 
|
|
722
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> 
|
|
723
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  </div>
|
|
724
|
-
<div class="line"><a name="l00700"></a><span class="lineno"
|
|
725
|
-
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> 
|
|
726
|
-
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> 
|
|
727
|
-
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> 
|
|
728
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
729
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> 
|
|
730
|
-
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> 
|
|
731
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="
|
|
732
|
-
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <a class="code" href="
|
|
733
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="
|
|
734
|
-
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> 
|
|
735
|
-
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> 
|
|
736
|
-
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> 
|
|
737
|
-
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
738
|
-
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
739
|
-
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
740
|
-
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  resVal = (lhs
|
|
741
|
-
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="
|
|
742
|
-
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> 
|
|
743
|
-
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
744
|
-
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
745
|
-
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
746
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  resVal = (lhs
|
|
703
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">default</span>:</div>
|
|
704
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  {</div>
|
|
705
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined binary: "</span>);</div>
|
|
706
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  }</div>
|
|
707
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  }</div>
|
|
708
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  es[res] = resVal;</div>
|
|
709
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div>
|
|
710
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> }</div>
|
|
711
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  </div>
|
|
712
|
+
<div class="line"><a name="l00688"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a729cc61337cfe055adc49d04676f5717"> 688</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a729cc61337cfe055adc49d04676f5717">SVFIR2AbsState::handleCmp</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp)</div>
|
|
713
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span> {</div>
|
|
714
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
|
|
715
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
|
|
716
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = cmp-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
717
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">if</span> (inVarToValTable(es, op0) && inVarToValTable(es, op1))</div>
|
|
718
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  {</div>
|
|
719
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> resVal;</div>
|
|
720
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &lhs = es[op0], &rhs = es[op1];</div>
|
|
721
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="comment">//AbstractValue</span></div>
|
|
722
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
723
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
724
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  {</div>
|
|
725
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
726
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
727
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
728
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  resVal = (lhs == rhs);</div>
|
|
729
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="comment">// resVal = (lhs.getInterval() == rhs.getInterval());</span></div>
|
|
730
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keywordflow">break</span>;</div>
|
|
731
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
732
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
733
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
734
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  resVal = (lhs != rhs);</div>
|
|
735
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">break</span>;</div>
|
|
736
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
737
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
738
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
739
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
740
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  resVal = (lhs > rhs);</div>
|
|
741
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordflow">break</span>;</div>
|
|
742
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
743
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
744
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
745
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
746
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  resVal = (lhs >= rhs);</div>
|
|
747
747
|
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordflow">break</span>;</div>
|
|
748
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
749
|
-
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
750
|
-
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
751
|
-
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
752
|
-
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  resVal = (lhs &
|
|
748
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
749
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
750
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
751
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
752
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  resVal = (lhs < rhs);</div>
|
|
753
753
|
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">break</span>;</div>
|
|
754
|
-
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
755
|
-
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
756
|
-
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
757
|
-
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
758
|
-
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  resVal = (lhs &
|
|
754
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
755
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
756
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
757
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
758
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  resVal = (lhs <= rhs);</div>
|
|
759
759
|
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">break</span>;</div>
|
|
760
|
-
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
761
|
-
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span> 
|
|
762
|
-
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> 
|
|
763
|
-
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
764
|
-
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  resVal = (
|
|
760
|
+
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
761
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
762
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">break</span>;</div>
|
|
763
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
764
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
765
765
|
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">break</span>;</div>
|
|
766
|
-
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">
|
|
767
|
-
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> 
|
|
768
|
-
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> 
|
|
769
|
-
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> 
|
|
770
|
-
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> 
|
|
771
|
-
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> 
|
|
772
|
-
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> 
|
|
773
|
-
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> 
|
|
774
|
-
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> 
|
|
775
|
-
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <
|
|
776
|
-
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> 
|
|
777
|
-
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> 
|
|
778
|
-
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="
|
|
779
|
-
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> 
|
|
780
|
-
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> 
|
|
781
|
-
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> 
|
|
782
|
-
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span> 
|
|
783
|
-
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> 
|
|
784
|
-
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> 
|
|
785
|
-
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span> 
|
|
786
|
-
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> 
|
|
787
|
-
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> 
|
|
788
|
-
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> 
|
|
789
|
-
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> 
|
|
790
|
-
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> 
|
|
791
|
-
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> 
|
|
792
|
-
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> 
|
|
793
|
-
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> 
|
|
794
|
-
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> 
|
|
795
|
-
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> 
|
|
796
|
-
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> 
|
|
797
|
-
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> 
|
|
798
|
-
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> 
|
|
799
|
-
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span> 
|
|
800
|
-
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span> 
|
|
801
|
-
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span> 
|
|
802
|
-
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> 
|
|
803
|
-
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span> 
|
|
804
|
-
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> 
|
|
805
|
-
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span> 
|
|
806
|
-
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span> 
|
|
807
|
-
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span> 
|
|
808
|
-
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span> 
|
|
809
|
-
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span> 
|
|
810
|
-
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span> 
|
|
811
|
-
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> 
|
|
812
|
-
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span> 
|
|
813
|
-
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> 
|
|
814
|
-
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> 
|
|
815
|
-
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> 
|
|
816
|
-
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> 
|
|
817
|
-
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> 
|
|
818
|
-
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span> 
|
|
819
|
-
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span> 
|
|
820
|
-
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span> 
|
|
821
|
-
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span> 
|
|
822
|
-
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> 
|
|
823
|
-
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span> 
|
|
824
|
-
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> 
|
|
825
|
-
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> 
|
|
826
|
-
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> 
|
|
827
|
-
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span> 
|
|
828
|
-
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> 
|
|
829
|
-
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> 
|
|
830
|
-
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> 
|
|
831
|
-
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span> 
|
|
832
|
-
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span> 
|
|
833
|
-
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span> 
|
|
834
|
-
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> 
|
|
835
|
-
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> 
|
|
836
|
-
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> 
|
|
837
|
-
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> 
|
|
838
|
-
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
839
|
-
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> 
|
|
840
|
-
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> 
|
|
841
|
-
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> 
|
|
842
|
-
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> 
|
|
843
|
-
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> 
|
|
844
|
-
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> 
|
|
845
|
-
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> 
|
|
846
|
-
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> 
|
|
847
|
-
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> 
|
|
848
|
-
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span> 
|
|
849
|
-
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span> 
|
|
850
|
-
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> 
|
|
851
|
-
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> 
|
|
852
|
-
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> 
|
|
853
|
-
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
854
|
-
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> 
|
|
855
|
-
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> 
|
|
856
|
-
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> 
|
|
857
|
-
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> 
|
|
858
|
-
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> 
|
|
859
|
-
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> 
|
|
860
|
-
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> 
|
|
861
|
-
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> 
|
|
862
|
-
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> 
|
|
863
|
-
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> 
|
|
864
|
-
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> 
|
|
865
|
-
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> 
|
|
866
|
-
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> 
|
|
867
|
-
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> 
|
|
868
|
-
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
869
|
-
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span> 
|
|
870
|
-
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> 
|
|
871
|
-
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span> 
|
|
872
|
-
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span> 
|
|
873
|
-
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span> 
|
|
874
|
-
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> 
|
|
875
|
-
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> 
|
|
876
|
-
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span> 
|
|
877
|
-
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> 
|
|
878
|
-
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> 
|
|
879
|
-
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> 
|
|
880
|
-
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> 
|
|
881
|
-
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> 
|
|
882
|
-
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> 
|
|
883
|
-
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#
|
|
884
|
-
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> 
|
|
885
|
-
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">
|
|
886
|
-
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> 
|
|
887
|
-
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> 
|
|
888
|
-
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> 
|
|
889
|
-
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> 
|
|
890
|
-
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> 
|
|
891
|
-
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> 
|
|
892
|
-
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> 
|
|
893
|
-
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> 
|
|
894
|
-
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> 
|
|
895
|
-
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span> 
|
|
896
|
-
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> 
|
|
897
|
-
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span> 
|
|
898
|
-
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> 
|
|
899
|
-
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> 
|
|
900
|
-
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span> 
|
|
901
|
-
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span> 
|
|
902
|
-
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span> 
|
|
903
|
-
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span> 
|
|
904
|
-
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span> 
|
|
905
|
-
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span> 
|
|
906
|
-
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> 
|
|
907
|
-
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> 
|
|
908
|
-
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> 
|
|
909
|
-
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span> 
|
|
910
|
-
<div class="line"><a name="l00886"></a><span class="lineno"
|
|
911
|
-
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span> 
|
|
912
|
-
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span> 
|
|
913
|
-
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span> 
|
|
914
|
-
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> 
|
|
915
|
-
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span> 
|
|
916
|
-
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> 
|
|
917
|
-
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span> 
|
|
918
|
-
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> 
|
|
919
|
-
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="
|
|
920
|
-
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> 
|
|
921
|
-
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> 
|
|
922
|
-
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> 
|
|
923
|
-
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span> 
|
|
924
|
-
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> 
|
|
925
|
-
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> 
|
|
926
|
-
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span> 
|
|
927
|
-
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span> 
|
|
928
|
-
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> 
|
|
929
|
-
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span> 
|
|
930
|
-
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span> 
|
|
931
|
-
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span> 
|
|
932
|
-
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span> 
|
|
933
|
-
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span> 
|
|
934
|
-
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span> 
|
|
935
|
-
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  </div>
|
|
936
|
-
<div class="line"><a name="l00912"></a><span class="lineno"
|
|
937
|
-
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span> 
|
|
938
|
-
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> 
|
|
939
|
-
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> 
|
|
940
|
-
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> 
|
|
941
|
-
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> 
|
|
942
|
-
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> 
|
|
943
|
-
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> 
|
|
944
|
-
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> 
|
|
945
|
-
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> 
|
|
946
|
-
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> 
|
|
947
|
-
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> 
|
|
948
|
-
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> 
|
|
949
|
-
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  </div>
|
|
950
|
-
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> 
|
|
951
|
-
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span> 
|
|
952
|
-
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> 
|
|
953
|
-
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span> 
|
|
954
|
-
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span> 
|
|
955
|
-
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span> 
|
|
956
|
-
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span> 
|
|
957
|
-
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span> 
|
|
958
|
-
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span> 
|
|
959
|
-
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span> 
|
|
960
|
-
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span> 
|
|
961
|
-
<div class="line"><a name="l00937"></a><span class="lineno"
|
|
962
|
-
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span> {</div>
|
|
963
|
-
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span> 
|
|
964
|
-
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span> 
|
|
965
|
-
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span> 
|
|
966
|
-
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span> 
|
|
967
|
-
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span> 
|
|
968
|
-
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span> 
|
|
969
|
-
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> 
|
|
970
|
-
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span> 
|
|
971
|
-
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span> 
|
|
972
|
-
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> 
|
|
973
|
-
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
766
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">default</span>:</div>
|
|
767
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  {</div>
|
|
768
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
769
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  }</div>
|
|
770
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  }</div>
|
|
771
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  es[res] = resVal;</div>
|
|
772
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  }</div>
|
|
773
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(es, op0) && inVarToAddrsTable(es, op1))</div>
|
|
774
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  {</div>
|
|
775
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
776
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &lhs = getAddrs(es, op0), &rhs = getAddrs(es, op1);</div>
|
|
777
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  assert(!lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() && !rhs.getAddrs().empty() && <span class="stringliteral">"empty address?"</span>);</div>
|
|
778
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
779
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
780
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  {</div>
|
|
781
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
782
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
783
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
784
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  {</div>
|
|
785
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
786
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  {</div>
|
|
787
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ae8a8fb4dc6ff1d7faddea6a9b1e65f1e">equals</a>(rhs));</div>
|
|
788
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  }</div>
|
|
789
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">else</span></div>
|
|
790
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  {</div>
|
|
791
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs.getAddrs()))</div>
|
|
792
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  {</div>
|
|
793
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
794
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  }</div>
|
|
795
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordflow">else</span></div>
|
|
796
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  {</div>
|
|
797
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
798
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div>
|
|
799
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  }</div>
|
|
800
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">break</span>;</div>
|
|
801
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  }</div>
|
|
802
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
803
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
804
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
805
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  {</div>
|
|
806
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
807
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  {</div>
|
|
808
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ae8a8fb4dc6ff1d7faddea6a9b1e65f1e">equals</a>(rhs));</div>
|
|
809
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  }</div>
|
|
810
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="keywordflow">else</span></div>
|
|
811
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  {</div>
|
|
812
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs.getAddrs()))</div>
|
|
813
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  {</div>
|
|
814
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
815
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  }</div>
|
|
816
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="keywordflow">else</span></div>
|
|
817
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  {</div>
|
|
818
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
|
|
819
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  }</div>
|
|
820
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  }</div>
|
|
821
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keywordflow">break</span>;</div>
|
|
822
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div>
|
|
823
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
824
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
825
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
826
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
827
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  {</div>
|
|
828
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
829
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  {</div>
|
|
830
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() > *rhs.getAddrs().begin());</div>
|
|
831
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  }</div>
|
|
832
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">else</span></div>
|
|
833
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  {</div>
|
|
834
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
835
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  }</div>
|
|
836
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">break</span>;</div>
|
|
837
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div>
|
|
838
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
839
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
840
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
841
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
842
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div>
|
|
843
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
844
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  {</div>
|
|
845
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() >= *rhs.getAddrs().begin());</div>
|
|
846
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  }</div>
|
|
847
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="keywordflow">else</span></div>
|
|
848
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  {</div>
|
|
849
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
850
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  }</div>
|
|
851
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">break</span>;</div>
|
|
852
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  }</div>
|
|
853
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
854
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
855
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
856
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
857
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div>
|
|
858
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
859
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  {</div>
|
|
860
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() < *rhs.getAddrs().begin());</div>
|
|
861
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  }</div>
|
|
862
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">else</span></div>
|
|
863
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  {</div>
|
|
864
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
865
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  }</div>
|
|
866
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">break</span>;</div>
|
|
867
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  }</div>
|
|
868
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
869
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
870
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
871
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
872
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  {</div>
|
|
873
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">if</span> (lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 && rhs.getAddrs().size() == 1)</div>
|
|
874
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  {</div>
|
|
875
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() <= *rhs.getAddrs().begin());</div>
|
|
876
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div>
|
|
877
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">else</span></div>
|
|
878
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  {</div>
|
|
879
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
880
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div>
|
|
881
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">break</span>;</div>
|
|
882
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div>
|
|
883
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
884
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
885
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">break</span>;</div>
|
|
886
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
887
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
888
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <span class="keywordflow">break</span>;</div>
|
|
889
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">default</span>:</div>
|
|
890
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  {</div>
|
|
891
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
892
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  }</div>
|
|
893
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  }</div>
|
|
894
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  es[res] = resVal;</div>
|
|
895
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  }</div>
|
|
896
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> }</div>
|
|
897
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  </div>
|
|
898
|
+
<div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a4478a7e793920ec543d32314f13a5bb9"> 874</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a4478a7e793920ec543d32314f13a5bb9">SVFIR2AbsState::handleLoad</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load)</div>
|
|
899
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span> {</div>
|
|
900
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = load-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
901
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = load-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
902
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <span class="keywordflow">if</span> (inVarToAddrsTable(es, rhs))</div>
|
|
903
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  {</div>
|
|
904
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &addrs = getAddrs(es, rhs);</div>
|
|
905
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  assert(!addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
|
|
906
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> rhsVal(<a class="code" href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">AbstractValue::UnknownType</a>); <span class="comment">// interval::bottom Address::bottom</span></div>
|
|
907
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="comment">// AbstractValue absRhs</span></div>
|
|
908
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>())</div>
|
|
909
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  {</div>
|
|
910
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="comment">// inLocToAbsVal()</span></div>
|
|
911
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="comment">// absRhs.join_with</span></div>
|
|
912
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="comment">// es.load()</span></div>
|
|
913
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
|
|
914
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordflow">if</span> (inLocToValTable(es, objId) || inLocToAddrsTable(es, objId))</div>
|
|
915
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  {</div>
|
|
916
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#a52a8a738896179a148581e1060a2ed66">join_with</a>(es.<a class="code" href="classSVF_1_1AbstractState.html#aa057c4c27e613d239161c04daf3a46d0">load</a>(addr));</div>
|
|
917
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  }</div>
|
|
918
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  }</div>
|
|
919
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="keywordflow">if</span> (!rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">isUnknown</a>())</div>
|
|
920
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  es[lhs] = rhsVal;</div>
|
|
921
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  }</div>
|
|
922
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> }</div>
|
|
923
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  </div>
|
|
924
|
+
<div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a75204b54b40f1402d670691c0355d6b5"> 900</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a75204b54b40f1402d670691c0355d6b5">SVFIR2AbsState::handleStore</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</div>
|
|
925
|
+
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span> {</div>
|
|
926
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
927
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = store-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
928
|
+
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">if</span> (inVarToAddrsTable(es, lhs))</div>
|
|
929
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  {</div>
|
|
930
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="comment">//es.store()</span></div>
|
|
931
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  assert(!getAddrs(es, lhs).getAddrs().empty());</div>
|
|
932
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &addrs = es[lhs];</div>
|
|
933
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>())</div>
|
|
934
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  {</div>
|
|
935
|
+
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  es.<a class="code" href="classSVF_1_1AbstractState.html#a1f935ea8ab16b04699284bf92bbbb23c">store</a>(addr, es[rhs]);</div>
|
|
936
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  }</div>
|
|
937
|
+
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  </div>
|
|
938
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">if</span> (inVarToValTable(es, rhs) || inVarToAddrsTable(es, rhs))</div>
|
|
939
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  {</div>
|
|
940
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  assert(!getAddrs(es, lhs).getAddrs().empty());</div>
|
|
941
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: es[lhs].getAddrs())</div>
|
|
942
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  {</div>
|
|
943
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  es.<a class="code" href="classSVF_1_1AbstractState.html#a1f935ea8ab16b04699284bf92bbbb23c">store</a>(addr, es[rhs]);</div>
|
|
944
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  }</div>
|
|
945
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  }</div>
|
|
946
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  }</div>
|
|
947
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> }</div>
|
|
948
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  </div>
|
|
949
|
+
<div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#abce457a32553584eb656ff0fa4e52a64"> 925</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#abce457a32553584eb656ff0fa4e52a64">SVFIR2AbsState::handleCopy</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <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>)</div>
|
|
950
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span> {</div>
|
|
951
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVarID();</div>
|
|
952
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVarID();</div>
|
|
953
|
+
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->isBlkPtr(lhs))</div>
|
|
954
|
+
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  {</div>
|
|
955
|
+
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
956
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  }</div>
|
|
957
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keywordflow">else</span></div>
|
|
958
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  {</div>
|
|
959
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">if</span> (inVarToValTable(es, rhs))</div>
|
|
960
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  {</div>
|
|
961
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9">CopyStmt::COPYVAL</a>)</div>
|
|
962
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  {</div>
|
|
963
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  es[lhs] = es[rhs];</div>
|
|
964
|
+
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  }</div>
|
|
965
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046">CopyStmt::ZEXT</a>)</div>
|
|
966
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  {</div>
|
|
967
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  es[lhs] = getZExtValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
968
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  }</div>
|
|
969
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1">CopyStmt::SEXT</a>)</div>
|
|
970
|
+
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  {</div>
|
|
971
|
+
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  es[lhs] = getSExtValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
972
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  }</div>
|
|
973
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe">CopyStmt::FPTOSI</a>)</div>
|
|
974
974
|
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  {</div>
|
|
975
|
-
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span> 
|
|
975
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  es[lhs] = getFPToSIntValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
976
976
|
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  }</div>
|
|
977
|
-
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
977
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a80a8638b1b7a7057fb4cd577e1949f6c">CopyStmt::FPTOUI</a>)</div>
|
|
978
978
|
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  {</div>
|
|
979
|
-
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span> 
|
|
979
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  es[lhs] = getFPToUIntValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
980
980
|
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  }</div>
|
|
981
|
-
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
981
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16">CopyStmt::SITOFP</a>)</div>
|
|
982
982
|
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  {</div>
|
|
983
|
-
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span> 
|
|
983
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  es[lhs] = getSIntToFPValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
984
984
|
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
|
|
985
|
-
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
985
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1">CopyStmt::UITOFP</a>)</div>
|
|
986
986
|
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  {</div>
|
|
987
|
-
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span> 
|
|
987
|
+
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  es[lhs] = getUIntToFPValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar());</div>
|
|
988
988
|
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  }</div>
|
|
989
|
-
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
989
|
+
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8">CopyStmt::TRUNC</a>)</div>
|
|
990
990
|
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  {</div>
|
|
991
|
-
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span> 
|
|
991
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  es[lhs] = getTruncValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar(), <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType());</div>
|
|
992
992
|
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  }</div>
|
|
993
|
-
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
993
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658">CopyStmt::FPTRUNC</a>)</div>
|
|
994
994
|
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  {</div>
|
|
995
|
-
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> 
|
|
995
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  es[lhs] = getFPTruncValue(es, <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVar(), <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType());</div>
|
|
996
996
|
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  }</div>
|
|
997
|
-
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
997
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a32b1e88bbb7433ed8071e9dd9daa2c83">CopyStmt::INTTOPTR</a>)</div>
|
|
998
998
|
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  {</div>
|
|
999
|
-
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span> 
|
|
999
|
+
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  es.<a class="code" href="classSVF_1_1AbstractState.html#a234d0b11624febec605bc028f093240b">getAddrs</a>(lhs).<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(0)); <span class="comment">//insert nullptr</span></div>
|
|
1000
1000
|
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  }</div>
|
|
1001
|
-
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1001
|
+
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ae746463dbec33f7d026b1a43e9ea4b87">CopyStmt::PTRTOINT</a>)</div>
|
|
1002
1002
|
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  {</div>
|
|
1003
|
-
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span> 
|
|
1003
|
+
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1004
1004
|
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  }</div>
|
|
1005
|
-
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#
|
|
1005
|
+
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getCopyKind() == <a class="code" href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a77433e71effbacec14da8f658523fb3e">CopyStmt::BITCAST</a>)</div>
|
|
1006
1006
|
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  {</div>
|
|
1007
|
-
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span> 
|
|
1008
|
-
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span> 
|
|
1009
|
-
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> 
|
|
1010
|
-
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> 
|
|
1011
|
-
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> 
|
|
1012
|
-
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> 
|
|
1013
|
-
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span> 
|
|
1014
|
-
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span> 
|
|
1015
|
-
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span> 
|
|
1016
|
-
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> 
|
|
1017
|
-
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span> 
|
|
1018
|
-
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span> 
|
|
1019
|
-
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span> 
|
|
1020
|
-
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span> 
|
|
1021
|
-
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span> 
|
|
1022
|
-
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span> 
|
|
1023
|
-
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span> 
|
|
1024
|
-
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span> 
|
|
1025
|
-
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span> 
|
|
1026
|
-
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span> 
|
|
1027
|
-
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span> 
|
|
1028
|
-
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> 
|
|
1029
|
-
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span> 
|
|
1030
|
-
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> 
|
|
1031
|
-
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> 
|
|
1032
|
-
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span> 
|
|
1033
|
-
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> 
|
|
1034
|
-
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span> 
|
|
1035
|
-
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span> 
|
|
1036
|
-
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span> 
|
|
1037
|
-
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span> 
|
|
1038
|
-
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span> 
|
|
1039
|
-
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span> 
|
|
1040
|
-
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span> 
|
|
1041
|
-
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span> 
|
|
1042
|
-
<div class="line"><a name="l01018"></a><span class="lineno"
|
|
1043
|
-
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span> 
|
|
1044
|
-
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span> 
|
|
1045
|
-
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span> 
|
|
1046
|
-
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span> 
|
|
1047
|
-
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span> 
|
|
1048
|
-
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span> 
|
|
1049
|
-
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> 
|
|
1050
|
-
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span> 
|
|
1007
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">if</span> (es[rhs].isAddr())</div>
|
|
1008
|
+
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  {</div>
|
|
1009
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  es[lhs] = es[rhs];</div>
|
|
1010
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  }</div>
|
|
1011
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">else</span></div>
|
|
1012
|
+
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  {</div>
|
|
1013
|
+
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="comment">// do nothing</span></div>
|
|
1014
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  }</div>
|
|
1015
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  }</div>
|
|
1016
|
+
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">else</span></div>
|
|
1017
|
+
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  {</div>
|
|
1018
|
+
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined copy kind"</span>);</div>
|
|
1019
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  abort();</div>
|
|
1020
|
+
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  }</div>
|
|
1021
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  }</div>
|
|
1022
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(es, rhs))</div>
|
|
1023
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  {</div>
|
|
1024
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  assert(!getAddrs(es, rhs).getAddrs().empty());</div>
|
|
1025
|
+
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  es[lhs] = es[rhs];</div>
|
|
1026
|
+
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  }</div>
|
|
1027
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  }</div>
|
|
1028
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span> }</div>
|
|
1029
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  </div>
|
|
1030
|
+
<div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a74c008c44d3181d20819323aa83ec0ae"> 1006</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a74c008c44d3181d20819323aa83ec0ae">SVFIR2AbsState::handleGep</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
|
|
1031
|
+
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span> {</div>
|
|
1032
|
+
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1033
|
+
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = gep-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1034
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">if</span> (!inVarToAddrsTable(es, rhs)) <span class="keywordflow">return</span>;</div>
|
|
1035
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> &rhsVal = es[rhs];</div>
|
|
1036
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  assert(!rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
|
|
1037
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> offsetPair = getItvOfFlattenedElemIndex(es, gep);</div>
|
|
1038
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keywordflow">if</span> (!isVirtualMemAddress(*rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">getAddrs</a>().<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>()))</div>
|
|
1039
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordflow">return</span>;</div>
|
|
1040
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">else</span></div>
|
|
1041
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  {</div>
|
|
1042
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> gepAddrs(<a class="code" href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">AbstractValue::UnknownType</a>);</div>
|
|
1043
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> lb = offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#a6c979397d4efb5b37e3b2bf9feba5648">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1044
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#a6c979397d4efb5b37e3b2bf9feba5648">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1045
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#aecd8d41379dd6496772537ad51d1cb02">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1046
|
+
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  offsetPair.<a class="code" href="structSVF_1_1AbstractValue.html#aecd8d41379dd6496772537ad51d1cb02">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">getIntNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1047
|
+
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = lb; i <= ub; i++)</div>
|
|
1048
|
+
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  gepAddrs.<a class="code" href="structSVF_1_1AbstractValue.html#a52a8a738896179a148581e1060a2ed66">join_with</a>(getGepObjAddress(es, rhs, i));</div>
|
|
1049
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <span class="keywordflow">if</span> (!rhsVal.<a class="code" href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">isUnknown</a>())</div>
|
|
1050
|
+
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  es[lhs] = gepAddrs;</div>
|
|
1051
1051
|
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <span class="keywordflow">return</span>;</div>
|
|
1052
|
-
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span> 
|
|
1053
|
-
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> 
|
|
1054
|
-
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span> 
|
|
1055
|
-
<div class="line"><a name="l01031"></a><span class="lineno"
|
|
1056
|
-
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> 
|
|
1057
|
-
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span> 
|
|
1058
|
-
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> 
|
|
1059
|
-
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span> 
|
|
1060
|
-
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> 
|
|
1061
|
-
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> 
|
|
1062
|
-
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span> 
|
|
1063
|
-
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="keywordflow">
|
|
1064
|
-
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> 
|
|
1065
|
-
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span> 
|
|
1066
|
-
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span> 
|
|
1067
|
-
<div class="line"><a name="l01043"></a><span class="lineno"
|
|
1068
|
-
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span> {</div>
|
|
1069
|
-
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> 
|
|
1070
|
-
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> 
|
|
1071
|
-
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span> 
|
|
1072
|
-
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <
|
|
1073
|
-
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span> 
|
|
1074
|
-
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> 
|
|
1075
|
-
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span> 
|
|
1076
|
-
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> 
|
|
1077
|
-
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span> 
|
|
1078
|
-
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> 
|
|
1079
|
-
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span> 
|
|
1080
|
-
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span> 
|
|
1081
|
-
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> 
|
|
1082
|
-
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span> 
|
|
1083
|
-
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span> 
|
|
1084
|
-
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> 
|
|
1085
|
-
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span> 
|
|
1086
|
-
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span> 
|
|
1087
|
-
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> 
|
|
1088
|
-
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> 
|
|
1089
|
-
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span> 
|
|
1090
|
-
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> 
|
|
1091
|
-
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span> 
|
|
1092
|
-
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span> 
|
|
1093
|
-
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span> 
|
|
1094
|
-
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span> 
|
|
1095
|
-
<div class="line"><a name="l01071"></a><span class="lineno"
|
|
1096
|
-
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span> 
|
|
1097
|
-
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span> 
|
|
1098
|
-
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> 
|
|
1099
|
-
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span> 
|
|
1100
|
-
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span> 
|
|
1101
|
-
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span> 
|
|
1102
|
-
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> 
|
|
1103
|
-
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span> 
|
|
1104
|
-
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span> 
|
|
1105
|
-
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span> 
|
|
1106
|
-
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span> 
|
|
1107
|
-
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span> 
|
|
1108
|
-
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span> 
|
|
1109
|
-
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> 
|
|
1110
|
-
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span> 
|
|
1111
|
-
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  </div>
|
|
1112
|
-
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> 
|
|
1113
|
-
<div class="line"><a name="l01089"></a><span class="lineno"
|
|
1114
|
-
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span> 
|
|
1115
|
-
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <
|
|
1116
|
-
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span> 
|
|
1117
|
-
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span> 
|
|
1118
|
-
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span> 
|
|
1119
|
-
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> 
|
|
1120
|
-
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  }</div>
|
|
1121
|
-
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span> }</div>
|
|
1122
|
-
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  </div>
|
|
1123
|
-
<div class="line"><a name="l01099"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a839a881ecff03f73102c1b48d9dbfb88"> 1099</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a839a881ecff03f73102c1b48d9dbfb88">SVFIR2AbsState::handleRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
|
|
1124
|
-
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span> {</div>
|
|
1125
|
-
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1126
|
-
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1127
|
-
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <span class="keywordflow">if</span> (inVarToValTable(rhs) || inVarToAddrsTable(rhs))</div>
|
|
1128
|
-
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  {</div>
|
|
1129
|
-
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  _es[lhs] = _es[rhs];</div>
|
|
1130
|
-
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  }</div>
|
|
1131
|
-
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span> }</div>
|
|
1052
|
+
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  }</div>
|
|
1053
|
+
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> }</div>
|
|
1054
|
+
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  </div>
|
|
1055
|
+
<div class="line"><a name="l01031"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a05673fde6e9f697fa6ffb8bc32fb6baa"> 1031</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a05673fde6e9f697fa6ffb8bc32fb6baa">SVFIR2AbsState::handleSelect</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select)</div>
|
|
1056
|
+
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> {</div>
|
|
1057
|
+
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = select-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1058
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tval = select-><a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1059
|
+
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fval = select-><a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1060
|
+
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cond = select-><a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
|
|
1061
|
+
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="keywordflow">if</span> (inVarToValTable(es, tval) && inVarToValTable(es, fval) && inVarToValTable(es, cond))</div>
|
|
1062
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  {</div>
|
|
1063
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  <span class="keywordflow">if</span> (es[cond].getInterval().is_numeral())</div>
|
|
1064
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  {</div>
|
|
1065
|
+
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  es[res] = es[cond].getInterval().is_zero() ? es[fval] : es[tval];</div>
|
|
1066
|
+
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  }</div>
|
|
1067
|
+
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordflow">else</span></div>
|
|
1068
|
+
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  {</div>
|
|
1069
|
+
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  es[res] = es[cond];</div>
|
|
1070
|
+
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  }</div>
|
|
1071
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  }</div>
|
|
1072
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(es, tval) && inVarToAddrsTable(es, fval) && inVarToValTable(es, cond))</div>
|
|
1073
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  {</div>
|
|
1074
|
+
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keywordflow">if</span> (es[cond].getInterval().is_numeral())</div>
|
|
1075
|
+
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  {</div>
|
|
1076
|
+
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  assert(!getAddrs(es, fval).getAddrs().empty());</div>
|
|
1077
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  assert(!getAddrs(es, tval).getAddrs().empty());</div>
|
|
1078
|
+
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  es.<a class="code" href="classSVF_1_1AbstractState.html#a234d0b11624febec605bc028f093240b">getAddrs</a>(res) = es[cond].getInterval().is_zero() ? getAddrs(es, fval) : getAddrs(es, tval);</div>
|
|
1079
|
+
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  }</div>
|
|
1080
|
+
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  }</div>
|
|
1081
|
+
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span> }</div>
|
|
1082
|
+
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  </div>
|
|
1083
|
+
<div class="line"><a name="l01059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a151cd00e030b8e9b51b907a3da8428e5"> 1059</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a151cd00e030b8e9b51b907a3da8428e5">SVFIR2AbsState::handlePhi</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi)</div>
|
|
1084
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span> {</div>
|
|
1085
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
|
|
1086
|
+
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <a class="code" href="structSVF_1_1AbstractValue.html">AbstractValue</a> rhs(<a class="code" href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">AbstractValue::UnknownType</a>);</div>
|
|
1087
|
+
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
|
|
1088
|
+
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  {</div>
|
|
1089
|
+
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-><a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
|
|
1090
|
+
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  </div>
|
|
1091
|
+
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <span class="keywordflow">if</span> (inVarToValTable(es, curId) || inVarToAddrsTable(es, curId))</div>
|
|
1092
|
+
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  {</div>
|
|
1093
|
+
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  rhs.<a class="code" href="structSVF_1_1AbstractValue.html#a52a8a738896179a148581e1060a2ed66">join_with</a>(es[curId]);</div>
|
|
1094
|
+
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  }</div>
|
|
1095
|
+
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  }</div>
|
|
1096
|
+
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="keywordflow">if</span> (!rhs.<a class="code" href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">isUnknown</a>())</div>
|
|
1097
|
+
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  es[res] = rhs;</div>
|
|
1098
|
+
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span> }</div>
|
|
1099
|
+
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  </div>
|
|
1100
|
+
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  </div>
|
|
1101
|
+
<div class="line"><a name="l01077"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#ac5d31c2e3387c04749195d6cdb417a7a"> 1077</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#ac5d31c2e3387c04749195d6cdb417a7a">SVFIR2AbsState::handleCall</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
|
|
1102
|
+
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span> {</div>
|
|
1103
|
+
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1104
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1105
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">if</span> (inVarToValTable(es, rhs) || inVarToAddrsTable(es, rhs))</div>
|
|
1106
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  {</div>
|
|
1107
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  es[lhs] = es[rhs];</div>
|
|
1108
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  }</div>
|
|
1109
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span> }</div>
|
|
1110
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  </div>
|
|
1111
|
+
<div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2AbsState.html#a8d4535dae277ade2d1e75678ad89d950"> 1087</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2AbsState.html#a8d4535dae277ade2d1e75678ad89d950">SVFIR2AbsState::handleRet</a>(<a class="code" href="classSVF_1_1AbstractState.html">AbstractState</a>& es, <span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
|
|
1112
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span> {</div>
|
|
1113
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1114
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1115
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  <span class="keywordflow">if</span> (inVarToValTable(es, rhs) || inVarToAddrsTable(es, rhs))</div>
|
|
1116
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  {</div>
|
|
1117
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  es[lhs] = es[rhs];</div>
|
|
1118
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  }</div>
|
|
1119
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> }</div>
|
|
1132
1120
|
</div><!-- fragment --></div><!-- contents -->
|
|
1133
1121
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a1f279344b4061838d7b3498631bc907c"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">SVF::AccessPath::getStructFieldOffset</a></div><div class="ttdeci">u32_t getStructFieldOffset(const SVFVar *idxOperandVar, const SVFStructType *idxOperandType) const</div><div class="ttdoc">Return byte offset from the beginning of the structure to the field where it is located for struct ty...</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00164">AccessPath.cpp:164</a></div></div>
|
|
1134
1122
|
<div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00060">GeneralType.h:60</a></div></div>
|
|
1123
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ad4ae901d5e3fe20c155e508884a5bf7f"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ad4ae901d5e3fe20c155e508884a5bf7f">SVF::SVFIR2AbsState::widenAddrs</a></div><div class="ttdeci">void widenAddrs(AbstractState &es, AbstractState &lhs, const AbstractState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00274">SVFIR2AbsState.cpp:274</a></div></div>
|
|
1135
1124
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00968">SVFStatements.h:968</a></div></div>
|
|
1136
1125
|
<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>
|
|
1126
|
+
<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>
|
|
1137
1127
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a4bc7962d519c1c0380b5a6a144c91c51"><div class="ttname"><a href="classSVF_1_1SVFType.html#a4bc7962d519c1c0380b5a6a144c91c51">SVF::SVFType::getKind</a></div><div class="ttdeci">GNodeK getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00213">SVFType.h:213</a></div></div>
|
|
1138
1128
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a95b8031f1e15d49c7d68628be1d05aae"><div class="ttname"><a href="classSVF_1_1SVFType.html#a95b8031f1e15d49c7d68628be1d05aae">SVF::SVFType::getByteSize</a></div><div class="ttdeci">u32_t getByteSize() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00244">SVFType.h:244</a></div></div>
|
|
1139
1129
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01049">SVFStatements.h:1049</a></div></div>
|
|
@@ -1141,7 +1131,7 @@ $(function() {
|
|
|
1141
1131
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a078ac137e60c5a2585a649f7ec40a8a8"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a078ac137e60c5a2585a649f7ec40a8a8">SVF::AbstractValue::meet_with</a></div><div class="ttdeci">void meet_with(const AbstractValue &other)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00504">AbstractValue.h:504</a></div></div>
|
|
1142
1132
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">SVF::BinaryOPStmt::FMul</a></div><div class="ttdeci">@ FMul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01043">SVFStatements.h:1043</a></div></div>
|
|
1143
1133
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">SVF::BinaryOPStmt::URem</a></div><div class="ttdeci">@ URem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01047">SVFStatements.h:1047</a></div></div>
|
|
1144
|
-
<div class="ttc" id="
|
|
1134
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ae0801d4df0304e422ee4cc1b60d2ffb3"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ae0801d4df0304e422ee4cc1b60d2ffb3">SVF::SVFIR2AbsState::initObjVar</a></div><div class="ttdeci">void initObjVar(AbstractState &es, const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00548">SVFIR2AbsState.cpp:548</a></div></div>
|
|
1145
1135
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">SVF::CmpStmt::FCMP_OLT</a></div><div class="ttdeci">@ FCMP_OLT</div><div class="ttdoc">0 1 0 0 True if ordered and less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
|
|
1146
1136
|
<div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
|
|
1147
1137
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_ab1fe6a57f784971b3bc603dbfda746e8"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#ab1fe6a57f784971b3bc603dbfda746e8">SVF::AbstractValue::getAddrs</a></div><div class="ttdeci">AddressValue & getAddrs()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00171">AbstractValue.h:171</a></div></div>
|
|
@@ -1150,7 +1140,6 @@ $(function() {
|
|
|
1150
1140
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a6c979397d4efb5b37e3b2bf9feba5648"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a6c979397d4efb5b37e3b2bf9feba5648">SVF::AbstractValue::lb</a></div><div class="ttdeci">const NumericLiteral & lb() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00198">AbstractValue.h:198</a></div></div>
|
|
1151
1141
|
<div class="ttc" id="anamespaceSVF_html_a7c3a917e8b1d3253982e0a1a37b74d93"><div class="ttname"><a href="namespaceSVF.html#a7c3a917e8b1d3253982e0a1a37b74d93">SVF::u16_t</a></div><div class="ttdeci">unsigned short u16_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00052">GeneralType.h:52</a></div></div>
|
|
1152
1142
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00927">SVFStatements.h:927</a></div></div>
|
|
1153
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_af38b6e392cfd91b3516f2bc9feacce34"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#af38b6e392cfd91b3516f2bc9feacce34">SVF::SVFIR2AbsState::getSIntToFPValue</a></div><div class="ttdeci">AbstractValue getSIntToFPValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00197">SVFIR2AbsState.cpp:197</a></div></div>
|
|
1154
1143
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a5c6efcc023e90ef2e618586091958c59"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">SVF::MultiOpndStmt::getOpVarID</a></div><div class="ttdeci">NodeID getOpVarID(u32_t pos) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00284">SVFStatements.cpp:284</a></div></div>
|
|
1155
1144
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_ae93859318bf4f618b4cf681988a870ce"><div class="ttname"><a href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">SVF::AddressValue::size</a></div><div class="ttdeci">u32_t size() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00107">AddressValue.h:107</a></div></div>
|
|
1156
1145
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">SVF::CmpStmt::FCMP_FALSE</a></div><div class="ttdeci">@ FCMP_FALSE</div><div class="ttdoc">0 0 0 0 Always false (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00954">SVFStatements.h:954</a></div></div>
|
|
@@ -1162,34 +1151,43 @@ $(function() {
|
|
|
1162
1151
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVF::SVFType::SVFIntegerTy</a></div><div class="ttdeci">@ SVFIntegerTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00169">SVFType.h:169</a></div></div>
|
|
1163
1152
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
|
|
1164
1153
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">SVF::BinaryOPStmt::Xor</a></div><div class="ttdeci">@ Xor</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01055">SVFStatements.h:1055</a></div></div>
|
|
1165
|
-
<div class="ttc" id="
|
|
1166
|
-
<div class="ttc" id="
|
|
1154
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a8bc2d298ea7a239cd06f5462045da14f"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a8bc2d298ea7a239cd06f5462045da14f">SVF::SVFIR2AbsState::getTruncValue</a></div><div class="ttdeci">AbstractValue getTruncValue(AbstractState &es, const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00219">SVFIR2AbsState.cpp:219</a></div></div>
|
|
1155
|
+
<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>
|
|
1156
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aba8911ddb22a7e9736f7676ed1d99a82"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aba8911ddb22a7e9736f7676ed1d99a82">SVF::SVFIR2AbsState::getSIntToFPValue</a></div><div class="ttdeci">AbstractValue getSIntToFPValue(AbstractState &es, const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00197">SVFIR2AbsState.cpp:197</a></div></div>
|
|
1157
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_af3f15bd1ccf90a4e11a4dcfda2f2aa47"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#af3f15bd1ccf90a4e11a4dcfda2f2aa47">SVF::SVFIR2AbsState::getItvOfFlattenedElemIndex</a></div><div class="ttdeci">AbstractValue getItvOfFlattenedElemIndex(AbstractState &es, const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00473">SVFIR2AbsState.cpp:473</a></div></div>
|
|
1167
1158
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">SVF::BinaryOPStmt::Sub</a></div><div class="ttdeci">@ Sub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01040">SVFStatements.h:1040</a></div></div>
|
|
1168
1159
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">SVF::CmpStmt::ICMP_UGE</a></div><div class="ttdeci">@ ICMP_UGE</div><div class="ttdoc">unsigned greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00976">SVFStatements.h:976</a></div></div>
|
|
1169
1160
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a77433e71effbacec14da8f658523fb3e"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a77433e71effbacec14da8f658523fb3e">SVF::CopyStmt::BITCAST</a></div><div class="ttdeci">@ BITCAST</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00379">SVFStatements.h:379</a></div></div>
|
|
1170
1161
|
<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>
|
|
1162
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_accc3a4574ab5dd71149b4266dd19ca2f"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#accc3a4574ab5dd71149b4266dd19ca2f">SVF::SVFIR2AbsState::getFPToSIntValue</a></div><div class="ttdeci">AbstractValue getFPToSIntValue(AbstractState &es, const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00161">SVFIR2AbsState.cpp:161</a></div></div>
|
|
1163
|
+
<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>
|
|
1164
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aa992d91842053a6a651976cdb49199e4"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aa992d91842053a6a651976cdb49199e4">SVF::SVFIR2AbsState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(AbstractState &es, u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00583">SVFIR2AbsState.cpp:583</a></div></div>
|
|
1165
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a8ceffd42b533a28fffa665537e14d4e8"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a8ceffd42b533a28fffa665537e14d4e8">SVF::SVFIR2AbsState::getFPToUIntValue</a></div><div class="ttdeci">AbstractValue getFPToUIntValue(AbstractState &es, const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00179">SVFIR2AbsState.cpp:179</a></div></div>
|
|
1171
1166
|
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a46a2f2eedd729f4764f630d72391ec97"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a46a2f2eedd729f4764f630d72391ec97">SVF::SVFIR2AbsState::globalNulladdrs</a></div><div class="ttdeci">static AbstractValue globalNulladdrs</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8h_source.html#l00045">SVFIR2AbsState.h:45</a></div></div>
|
|
1172
1167
|
<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>
|
|
1173
1168
|
<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>
|
|
1174
1169
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab55ad5d331f6e4a69f8e2f0d95e5d3a1">SVF::CopyStmt::SEXT</a></div><div class="ttdeci">@ SEXT</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00378">SVFStatements.h:378</a></div></div>
|
|
1175
1170
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">SVF::BinaryOPStmt::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01054">SVFStatements.h:1054</a></div></div>
|
|
1176
1171
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">SVF::BinaryOPStmt::Shl</a></div><div class="ttdeci">@ Shl</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01050">SVFStatements.h:1050</a></div></div>
|
|
1177
|
-
<div class="ttc" id="
|
|
1172
|
+
<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>
|
|
1178
1173
|
<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>
|
|
1174
|
+
<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>
|
|
1179
1175
|
<div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00048">GeneralType.h:48</a></div></div>
|
|
1180
1176
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">SVF::CmpStmt::FCMP_OEQ</a></div><div class="ttdeci">@ FCMP_OEQ</div><div class="ttdoc">0 0 0 1 True if ordered and equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00955">SVFStatements.h:955</a></div></div>
|
|
1181
1177
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">SVF::BinaryOPStmt::UDiv</a></div><div class="ttdeci">@ UDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01044">SVFStatements.h:1044</a></div></div>
|
|
1182
1178
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">SVF::BinaryOPStmt::FDiv</a></div><div class="ttdeci">@ FDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01046">SVFStatements.h:1046</a></div></div>
|
|
1183
1179
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">SVF::CmpStmt::FCMP_OGT</a></div><div class="ttdeci">@ FCMP_OGT</div><div class="ttdoc">0 0 1 0 True if ordered and greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00956">SVFStatements.h:956</a></div></div>
|
|
1180
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_aa34516a95191c5ec56ce44a117e8b018"><div class="ttname"><a href="classSVF_1_1AbstractState.html#aa34516a95191c5ec56ce44a117e8b018">SVF::AbstractState::inVarToAddrsTable</a></div><div class="ttdeci">bool inVarToAddrsTable(u32_t id) const</div><div class="ttdoc">whether the variable is in varToAddrs table</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00201">AbstractState.h:201</a></div></div>
|
|
1184
1181
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">SVF::CmpStmt::ICMP_SGT</a></div><div class="ttdeci">@ ICMP_SGT</div><div class="ttdoc">signed greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00979">SVFStatements.h:979</a></div></div>
|
|
1185
1182
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00501">SymbolTableInfo.cpp:501</a></div></div>
|
|
1186
1183
|
<div class="ttc" id="aclassSVF_1_1AbstractState_html_a6a49c75fb6b35159dcf1763b4484d335"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a6a49c75fb6b35159dcf1763b4484d335">SVF::AbstractState::_varToAbsVal</a></div><div class="ttdeci">VarToAbsValMap _varToAbsVal</div><div class="ttdoc">Map a variable (symbol) to its abstract value.</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00167">AbstractState.h:167</a></div></div>
|
|
1187
1184
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">SVF::BinaryOPStmt::AShr</a></div><div class="ttdeci">@ AShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01052">SVFStatements.h:1052</a></div></div>
|
|
1188
1185
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_aecd8d41379dd6496772537ad51d1cb02"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#aecd8d41379dd6496772537ad51d1cb02">SVF::AbstractValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00204">AbstractValue.h:204</a></div></div>
|
|
1189
|
-
<div class="ttc" id="
|
|
1186
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_a234d0b11624febec605bc028f093240b"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a234d0b11624febec605bc028f093240b">SVF::AbstractState::getAddrs</a></div><div class="ttdeci">AbstractValue & getAddrs(u32_t id)</div><div class="ttdoc">get memory addresses of variable</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00187">AbstractState.h:187</a></div></div>
|
|
1190
1187
|
<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>
|
|
1191
1188
|
<div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
|
|
1192
1189
|
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a4e032a5e0898f0e349927d5a86c8477c"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a4e032a5e0898f0e349927d5a86c8477c">SVF::SVFIR2AbsState::getRangeLimitFromType</a></div><div class="ttdeci">AbstractValue getRangeLimitFromType(const SVFType *type)</div><div class="ttdoc">Return the value range of Integer SVF Type, e.g. unsigned i8 Type->[0, 255], signed i8 Type->[-128,...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00049">SVFIR2AbsState.cpp:49</a></div></div>
|
|
1190
|
+
<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>
|
|
1193
1191
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">SVF::BinaryOPStmt::LShr</a></div><div class="ttdeci">@ LShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01051">SVFStatements.h:1051</a></div></div>
|
|
1194
1192
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab364378cef751d1bca631f3bfacd0658">SVF::CopyStmt::FPTRUNC</a></div><div class="ttdeci">@ FPTRUNC</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00381">SVFStatements.h:381</a></div></div>
|
|
1195
1193
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a3c98f0c5f07109f9da0a8a897aa51d18"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">SVF::AccessPath::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const SVFType *type) const</div><div class="ttdoc">Return element number of a type.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00063">AccessPath.cpp:63</a></div></div>
|
|
@@ -1201,26 +1199,25 @@ $(function() {
|
|
|
1201
1199
|
<div class="ttc" id="anamespaceSVF_html_a6ce4cf67f8622443c888737d7366a3e9"><div class="ttname"><a href="namespaceSVF.html#a6ce4cf67f8622443c888737d7366a3e9">SVF::s16_t</a></div><div class="ttdeci">signed short s16_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00053">GeneralType.h:53</a></div></div>
|
|
1202
1200
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">SVF::CmpStmt::FCMP_ULE</a></div><div class="ttdeci">@ FCMP_ULE</div><div class="ttdoc">1 1 0 1 True if unordered, less than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00967">SVFStatements.h:967</a></div></div>
|
|
1203
1201
|
<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>
|
|
1204
|
-
<div class="ttc" id="astructSVF_1_1AbstractValue_html_acbcec6f55d23e6cd278fe8572a68f393"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#acbcec6f55d23e6cd278fe8572a68f393">SVF::AbstractValue::getInterval</a></div><div class="ttdeci">IntervalValue & getInterval()</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00154">AbstractValue.h:154</a></div></div>
|
|
1205
1202
|
<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>
|
|
1206
1203
|
<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>
|
|
1207
1204
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a348de09a7ccd04d1fa76fa6b250249ba"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a348de09a7ccd04d1fa76fa6b250249ba">SVF::GepStmt::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const AccessPath::IdxOperandPairs getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00560">SVFStatements.h:560</a></div></div>
|
|
1205
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_a1f935ea8ab16b04699284bf92bbbb23c"><div class="ttname"><a href="classSVF_1_1AbstractState.html#a1f935ea8ab16b04699284bf92bbbb23c">SVF::AbstractState::store</a></div><div class="ttdeci">void store(u32_t addr, const AbstractValue &val)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00321">AbstractState.h:321</a></div></div>
|
|
1208
1206
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">SVF::CmpStmt::ICMP_SLT</a></div><div class="ttdeci">@ ICMP_SLT</div><div class="ttdoc">signed less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00981">SVFStatements.h:981</a></div></div>
|
|
1209
1207
|
<div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00377">SVFType.h:377</a></div></div>
|
|
1210
|
-
<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>
|
|
1211
1208
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
|
|
1212
1209
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a5dc699aa85fe879eb4b2c9109cf3030d"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">SVF::SymbolTableInfo::getTypeInfo</a></div><div class="ttdeci">const StInfo * getTypeInfo(const SVFType *T) const</div><div class="ttdoc">Get struct info.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00056">SymbolTableInfo.cpp:56</a></div></div>
|
|
1213
|
-
<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>
|
|
1214
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a21e927af79c73460ff5629cbd4961163"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a21e927af79c73460ff5629cbd4961163">SVF::SVFIR2AbsState::getByteOffset</a></div><div class="ttdeci">AbstractValue getByteOffset(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00415">SVFIR2AbsState.cpp:415</a></div></div>
|
|
1215
1210
|
<div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
|
|
1216
1211
|
<div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00156">SVFType.h:156</a></div></div>
|
|
1217
1212
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">SVF::CmpStmt::FCMP_ULT</a></div><div class="ttdeci">@ FCMP_ULT</div><div class="ttdoc">1 1 0 0 True if unordered or less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00966">SVFStatements.h:966</a></div></div>
|
|
1218
|
-
<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>
|
|
1219
1213
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a6c74f234a6b40bc5292bb14874c2e600"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">SVF::GepStmt::getAccessPath</a></div><div class="ttdeci">const AccessPath & getAccessPath() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00556">SVFStatements.h:556</a></div></div>
|
|
1220
1214
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a61516b8cd3550afd29f80fbe8c9146ff"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a61516b8cd3550afd29f80fbe8c9146ff">SVF::AbstractValue::isUnknown</a></div><div class="ttdeci">bool isUnknown() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00083">AbstractValue.h:83</a></div></div>
|
|
1221
1215
|
<div class="ttc" id="aclassSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00344">SVFType.h:344</a></div></div>
|
|
1216
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aec9a351850857fa3c6fb23c58317cb0d"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aec9a351850857fa3c6fb23c58317cb0d">SVF::SVFIR2AbsState::getByteOffset</a></div><div class="ttdeci">AbstractValue getByteOffset(AbstractState &es, const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00403">SVFIR2AbsState.cpp:403</a></div></div>
|
|
1222
1217
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">SVF::BinaryOPStmt::FAdd</a></div><div class="ttdeci">@ FAdd</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01039">SVFStatements.h:1039</a></div></div>
|
|
1223
1218
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_ad4c3e9529176478bb726279a76050e8c"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">SVF::SelectStmt::getCondition</a></div><div class="ttdeci">const SVFVar * getCondition() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00919">SVFStatements.h:919</a></div></div>
|
|
1219
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a4abde8e78108675a6980c362857cc7f0"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a4abde8e78108675a6980c362857cc7f0">SVF::SVFIR2AbsState::narrowAddrs</a></div><div class="ttdeci">void narrowAddrs(AbstractState &es, AbstractState &lhs, const AbstractState &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00320">SVFIR2AbsState.cpp:320</a></div></div>
|
|
1220
|
+
<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>
|
|
1224
1221
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_ae8a8fb4dc6ff1d7faddea6a9b1e65f1e"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#ae8a8fb4dc6ff1d7faddea6a9b1e65f1e">SVF::AbstractValue::equals</a></div><div class="ttdeci">bool equals(const AbstractValue &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00465">AbstractValue.h:465</a></div></div>
|
|
1225
1222
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">SVF::CmpStmt::ICMP_ULE</a></div><div class="ttdeci">@ ICMP_ULE</div><div class="ttdoc">unsigned less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00978">SVFStatements.h:978</a></div></div>
|
|
1226
1223
|
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00966">SVFValue.h:966</a></div></div>
|
|
@@ -1228,18 +1225,19 @@ $(function() {
|
|
|
1228
1225
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">SVF::BinaryOPStmt::Mul</a></div><div class="ttdeci">@ Mul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01042">SVFStatements.h:1042</a></div></div>
|
|
1229
1226
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a4f482ca73cc6e7b8d946651e2b2ea2ae"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4f482ca73cc6e7b8d946651e2b2ea2ae">SVF::AccessPath::IdxOperandPair</a></div><div class="ttdeci">std::pair< const SVFVar *, const SVFType * > IdxOperandPair</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00064">AccessPath.h:64</a></div></div>
|
|
1230
1227
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral & ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00213">IntervalValue.h:213</a></div></div>
|
|
1228
|
+
<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>
|
|
1229
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a0bdeaa3dac43c85cfac9195592db3fc9"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a0bdeaa3dac43c85cfac9195592db3fc9">SVF::SVFIR2AbsState::getFPTruncValue</a></div><div class="ttdeci">AbstractValue getFPTruncValue(AbstractState &es, const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00268">SVFIR2AbsState.cpp:268</a></div></div>
|
|
1231
1230
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">SVF::CmpStmt::FCMP_UEQ</a></div><div class="ttdeci">@ FCMP_UEQ</div><div class="ttdoc">1 0 0 1 True if unordered or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00963">SVFStatements.h:963</a></div></div>
|
|
1232
1231
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">SVF::CmpStmt::ICMP_EQ</a></div><div class="ttdeci">@ ICMP_EQ</div><div class="ttdoc">equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00973">SVFStatements.h:973</a></div></div>
|
|
1233
1232
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">SVF::CmpStmt::FCMP_ONE</a></div><div class="ttdeci">@ FCMP_ONE</div><div class="ttdoc">0 1 1 0 True if ordered and operands are unequal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00960">SVFStatements.h:960</a></div></div>
|
|
1234
1233
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">SVF::CmpStmt::FCMP_UGE</a></div><div class="ttdeci">@ FCMP_UGE</div><div class="ttdoc">1 0 1 1 True if unordered, greater than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00965">SVFStatements.h:965</a></div></div>
|
|
1235
1234
|
<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>
|
|
1236
|
-
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_aa69f9536301d6529eb1d0caaec2fcc63"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#aa69f9536301d6529eb1d0caaec2fcc63">SVF::NumericLiteral::getRealNumeral</a></div><div class="ttdeci">double getRealNumeral() const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00143">NumericLiteral.h:143</a></div></div>
|
|
1237
1235
|
<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>
|
|
1238
1236
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1ab2b2f7dffed3d446a147fc7a27e66dd8">SVF::CopyStmt::TRUNC</a></div><div class="ttdeci">@ TRUNC</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00380">SVFStatements.h:380</a></div></div>
|
|
1239
1237
|
<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>
|
|
1240
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ae1490bd3f93a4fcbb2390a3f30539b8a"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ae1490bd3f93a4fcbb2390a3f30539b8a">SVF::SVFIR2AbsState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00560">SVFIR2AbsState.cpp:560</a></div></div>
|
|
1241
1238
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a269a73753a7b495eb08bb0c9c0a58dc0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">SVF::AddressValue::hasIntersect</a></div><div class="ttdeci">bool hasIntersect(const AddressValue &other)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00164">AddressValue.h:164</a></div></div>
|
|
1242
1239
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00080">SymbolTableInfo.cpp:80</a></div></div>
|
|
1240
|
+
<div class="ttc" id="aclassSVF_1_1AbstractState_html_aa057c4c27e613d239161c04daf3a46d0"><div class="ttname"><a href="classSVF_1_1AbstractState.html#aa057c4c27e613d239161c04daf3a46d0">SVF::AbstractState::load</a></div><div class="ttdeci">virtual AbstractValue & load(u32_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractState_8h_source.html#l00329">AbstractState.h:329</a></div></div>
|
|
1243
1241
|
<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>
|
|
1244
1242
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_ad03d28d16754c9049dd4d0ad3b6c1e28"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">SVF::AssignStmt::getRHSVar</a></div><div class="ttdeci">SVFVar * getRHSVar() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00290">SVFStatements.h:290</a></div></div>
|
|
1245
1243
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_ab6f37c073e4755c4b8bb3ed6365687f4"><div class="ttname"><a href="classSVF_1_1GepStmt.html#ab6f37c073e4755c4b8bb3ed6365687f4">SVF::GepStmt::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00565">SVFStatements.h:565</a></div></div>
|
|
@@ -1248,65 +1246,56 @@ $(function() {
|
|
|
1248
1246
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_aa7291f4b74bb824fb38b8c383fa0b6a0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">SVF::AddressValue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00102">AddressValue.h:102</a></div></div>
|
|
1249
1247
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a2f70e9c830b18f25c56b530722f106c4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">SVF::MemObj::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get the reference value to this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00406">SymbolTableInfo.h:406</a></div></div>
|
|
1250
1248
|
<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>
|
|
1251
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a5ba833f2f98f5b1b1a8a7ff7ecdb72b9"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a5ba833f2f98f5b1b1a8a7ff7ecdb72b9">SVF::SVFIR2AbsState::getFPTruncValue</a></div><div class="ttdeci">AbstractValue getFPTruncValue(const SVFVar *var, const SVFType *dstType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00268">SVFIR2AbsState.cpp:268</a></div></div>
|
|
1252
1249
|
<div class="ttc" id="aclassSVF_1_1Options_html_a429c3000ee2ac45119b8c241aa06762c"><div class="ttname"><a href="classSVF_1_1Options.html#a429c3000ee2ac45119b8c241aa06762c">SVF::Options::ModelArrays</a></div><div class="ttdeci">static const Option< bool > ModelArrays</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00207">Options.h:207</a></div></div>
|
|
1250
|
+
<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>
|
|
1251
|
+
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a40c67147606ab95dd3318d0fe821d8c0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">SVF::AddressValue::insert</a></div><div class="ttdeci">std::pair< AddressValue::AddrSet::iterator, bool > insert(u32_t id)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00112">AddressValue.h:112</a></div></div>
|
|
1253
1252
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">SVF::BinaryOPStmt::FSub</a></div><div class="ttdeci">@ FSub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01041">SVFStatements.h:1041</a></div></div>
|
|
1254
1253
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_a1dd264b9f3b43d04aa1396443ad6ad33"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a1dd264b9f3b43d04aa1396443ad6ad33">SVF::GepStmt::accumulateConstantOffset</a></div><div class="ttdeci">APOffset accumulateConstantOffset() const</div><div class="ttdoc">Return accumulated constant offset (when accessing array or struct) if this offset is a constant.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00580">SVFStatements.h:580</a></div></div>
|
|
1255
1254
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a821cd6daeaee15b117b41a272f743ff1">SVF::CopyStmt::UITOFP</a></div><div class="ttdeci">@ UITOFP</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00384">SVFStatements.h:384</a></div></div>
|
|
1255
|
+
<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>
|
|
1256
1256
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">SVF::CmpStmt::FCMP_OGE</a></div><div class="ttdeci">@ FCMP_OGE</div><div class="ttdoc">0 0 1 1 True if ordered and greater than or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00957">SVFStatements.h:957</a></div></div>
|
|
1257
1257
|
<div class="ttc" id="acJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
|
|
1258
1258
|
<div class="ttc" id="aSVFIR2AbsState_8h_html"><div class="ttname"><a href="SVFIR2AbsState_8h.html">SVFIR2AbsState.h</a></div></div>
|
|
1259
|
-
<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>
|
|
1260
1259
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">SVF::CmpStmt::FCMP_UGT</a></div><div class="ttdeci">@ FCMP_UGT</div><div class="ttdoc">1 0 1 0 True if unordered or greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00964">SVFStatements.h:964</a></div></div>
|
|
1261
1260
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">SVF::BinaryOPStmt::SRem</a></div><div class="ttdeci">@ SRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01048">SVFStatements.h:1048</a></div></div>
|
|
1262
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aaecd2f39d5038009cb41b849fd8fe55f"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aaecd2f39d5038009cb41b849fd8fe55f">SVF::SVFIR2AbsState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00595">SVFIR2AbsState.cpp:595</a></div></div>
|
|
1263
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ae247497ab346e612f645d39041b2ce32"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ae247497ab346e612f645d39041b2ce32">SVF::SVFIR2AbsState::getUIntToFPValue</a></div><div class="ttdeci">AbstractValue getUIntToFPValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00208">SVFIR2AbsState.cpp:208</a></div></div>
|
|
1264
1261
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a78bc561098a07651f94e72bffa895e16">SVF::CopyStmt::SITOFP</a></div><div class="ttdeci">@ SITOFP</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00385">SVFStatements.h:385</a></div></div>
|
|
1265
|
-
<div class="ttc" id="
|
|
1262
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a7dbb2fcda16a2879d4b508ab41d6919d"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a7dbb2fcda16a2879d4b508ab41d6919d">SVF::SVFIR2AbsState::getSExtValue</a></div><div class="ttdeci">AbstractValue getSExtValue(AbstractState &es, const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00156">SVFIR2AbsState.cpp:156</a></div></div>
|
|
1266
1263
|
<div class="ttc" id="aclassSVF_1_1SVFIntegerType_html"><div class="ttname"><a href="classSVF_1_1SVFIntegerType.html">SVF::SVFIntegerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00291">SVFType.h:291</a></div></div>
|
|
1267
1264
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">SVF::CmpStmt::ICMP_NE</a></div><div class="ttdeci">@ ICMP_NE</div><div class="ttdoc">not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00974">SVFStatements.h:974</a></div></div>
|
|
1268
1265
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_a674f9bb98053f8658e246863d6561072"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a674f9bb98053f8658e246863d6561072">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
|
|
1269
|
-
<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>
|
|
1270
1266
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00496">SymbolTableInfo.cpp:496</a></div></div>
|
|
1271
1267
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01011">SVFStatements.h:1011</a></div></div>
|
|
1272
|
-
<div class="ttc" id="
|
|
1268
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ab6c5effe0a781740bdee4d12583c5c8e"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ab6c5effe0a781740bdee4d12583c5c8e">SVF::SVFIR2AbsState::getUIntToFPValue</a></div><div class="ttdeci">AbstractValue getUIntToFPValue(AbstractState &es, const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00208">SVFIR2AbsState.cpp:208</a></div></div>
|
|
1273
1269
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html"><div class="ttname"><a href="classSVF_1_1AddressValue.html">SVF::AddressValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00043">AddressValue.h:43</a></div></div>
|
|
1274
1270
|
<div class="ttc" id="aclassSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00923">SVFStatements.h:923</a></div></div>
|
|
1275
1271
|
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a8e19113913c2aa236ab35d3bdd49541c"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a8e19113913c2aa236ab35d3bdd49541c">SVF::NumericLiteral::getIntNumeral</a></div><div class="ttdeci">s64_t getIntNumeral() const</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00148">NumericLiteral.h:148</a></div></div>
|
|
1276
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a928b35a6ea960a94470b0983008bfa9d"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a928b35a6ea960a94470b0983008bfa9d">SVF::SVFIR2AbsState::getItvOfFlattenedElemIndex</a></div><div class="ttdeci">AbstractValue getItvOfFlattenedElemIndex(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00485">SVFIR2AbsState.cpp:485</a></div></div>
|
|
1277
1272
|
<div class="ttc" id="acJSON_8cpp_html_a7669ee67a0563250c1efaa24d130e1ac"><div class="ttname"><a href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a></div><div class="ttdeci">copy</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00414">cJSON.cpp:414</a></div></div>
|
|
1278
1273
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a975798ea3aeb2a77cc8858c712611afe">SVF::CopyStmt::FPTOSI</a></div><div class="ttdeci">@ FPTOSI</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00383">SVFStatements.h:383</a></div></div>
|
|
1279
1274
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01081">SVFStatements.h:1081</a></div></div>
|
|
1280
1275
|
<div class="ttc" id="aclassSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00353">SVFVariables.h:353</a></div></div>
|
|
1281
1276
|
<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>
|
|
1282
|
-
<div class="ttc" id="
|
|
1277
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a037e4c0e35b1fd45df3a969c6d054a1e"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a037e4c0e35b1fd45df3a969c6d054a1e">SVF::SVFIR2AbsState::getZExtValue</a></div><div class="ttdeci">AbstractValue getZExtValue(AbstractState &es, const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00111">SVFIR2AbsState.cpp:111</a></div></div>
|
|
1283
1278
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">SVF::BinaryOPStmt::SDiv</a></div><div class="ttdeci">@ SDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01045">SVFStatements.h:1045</a></div></div>
|
|
1284
|
-
<div class="ttc" id="
|
|
1279
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aaca7dc6ee9a3c8ea6e3eca094c7c3045"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aaca7dc6ee9a3c8ea6e3eca094c7c3045">SVF::SVFIR2AbsState::getGepObjAddress</a></div><div class="ttdeci">AbstractValue getGepObjAddress(AbstractState &es, u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00360">SVFIR2AbsState.cpp:360</a></div></div>
|
|
1285
1280
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
|
|
1286
1281
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_af300571886b7aa2d84b0a70851c99bc3"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">SVF::MultiOpndStmt::getOpVarNum</a></div><div class="ttdeci">u32_t getOpVarNum() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00790">SVFStatements.h:790</a></div></div>
|
|
1287
1282
|
<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>
|
|
1288
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_ae6a36e79bdc4506f9f011ad100125444"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#ae6a36e79bdc4506f9f011ad100125444">SVF::SVFIR2AbsState::getFPToUIntValue</a></div><div class="ttdeci">AbstractValue getFPToUIntValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00179">SVFIR2AbsState.cpp:179</a></div></div>
|
|
1289
1283
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">SVF::CmpStmt::ICMP_SLE</a></div><div class="ttdeci">@ ICMP_SLE</div><div class="ttdoc">signed less or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00982">SVFStatements.h:982</a></div></div>
|
|
1290
|
-
<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>
|
|
1291
1284
|
<div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option< u32_t > MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
|
|
1292
1285
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#af93f4b54b34e74579ad177ead629b53aa3a7df767184a0bf01de99351747f545a">SVF::AbstractValue::UnknownType</a></div><div class="ttdeci">@ UnknownType</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00035">AbstractValue.h:35</a></div></div>
|
|
1293
1286
|
<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>
|
|
1294
1287
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html_ab6f95d3e7e099d75cfc9645ebc037047"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">SVF::SVFVar::getType</a></div><div class="ttdeci">virtual const SVFType * getType() const</div><div class="ttdoc">Return type of the value.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00107">SVFVariables.h:107</a></div></div>
|
|
1295
1288
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">SVF::CmpStmt::ICMP_SGE</a></div><div class="ttdeci">@ ICMP_SGE</div><div class="ttdoc">signed greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00980">SVFStatements.h:980</a></div></div>
|
|
1296
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_a10a83572bf5dee369b54cda74f402073"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#a10a83572bf5dee369b54cda74f402073">SVF::SVFIR2AbsState::getGepObjAddress</a></div><div class="ttdeci">AbstractValue getGepObjAddress(u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00372">SVFIR2AbsState.cpp:372</a></div></div>
|
|
1297
1289
|
<div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a71a530eb9fa9f7e273e471b4a75a039e"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">SVF::MultiOpndStmt::getResID</a></div><div class="ttdeci">NodeID getResID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00289">SVFStatements.cpp:289</a></div></div>
|
|
1298
1290
|
<div class="ttc" id="anamespaceSVF_html_ad781b0b14e89773e774072b280658ef3"><div class="ttname"><a href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">SVF::s64_t</a></div><div class="ttdeci">signed long long s64_t</div><div class="ttdef"><b>Definition:</b> <a href="GeneralType_8h_source.html#l00049">GeneralType.h:49</a></div></div>
|
|
1299
1291
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a8b1af972fa8a4e40347990d179ec1c52"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a8b1af972fa8a4e40347990d179ec1c52">SVF::AbstractValue::isBottom</a></div><div class="ttdeci">bool isBottom() const</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00192">AbstractValue.h:192</a></div></div>
|
|
1300
1292
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html_a5cc67e56c658a6833b1bf9235f2a73ba"><div class="ttname"><a href="structSVF_1_1AbstractValue.html#a5cc67e56c658a6833b1bf9235f2a73ba">SVF::AbstractValue::insertAddr</a></div><div class="ttdeci">std::pair< AddressValue::AddrSet::iterator, bool > insertAddr(u32_t id)</div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00456">AbstractValue.h:456</a></div></div>
|
|
1301
1293
|
<div class="ttc" id="astructSVF_1_1AbstractValue_html"><div class="ttname"><a href="structSVF_1_1AbstractValue.html">SVF::AbstractValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractValue_8h_source.html#l00029">AbstractValue.h:29</a></div></div>
|
|
1302
|
-
<div class="ttc" id="
|
|
1303
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aa925878721ae7028c3edae0c7fe8e127"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aa925878721ae7028c3edae0c7fe8e127">SVF::SVFIR2AbsState::getSExtValue</a></div><div class="ttdeci">AbstractValue getSExtValue(const SVFVar *var)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00156">SVFIR2AbsState.cpp:156</a></div></div>
|
|
1294
|
+
<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>
|
|
1304
1295
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a16c9ba88473e39f9a105b74b016af046">SVF::CopyStmt::ZEXT</a></div><div class="ttdeci">@ ZEXT</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00377">SVFStatements.h:377</a></div></div>
|
|
1305
1296
|
<div class="ttc" id="aclassSVF_1_1MemObj_html"><div class="ttname"><a href="classSVF_1_1MemObj.html">SVF::MemObj</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00380">SymbolTableInfo.h:380</a></div></div>
|
|
1306
|
-
<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>
|
|
1307
1297
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">SVF::CmpStmt::ICMP_UGT</a></div><div class="ttdeci">@ ICMP_UGT</div><div class="ttdoc">unsigned greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00975">SVFStatements.h:975</a></div></div>
|
|
1308
1298
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">SVF::BinaryOPStmt::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01053">SVFStatements.h:1053</a></div></div>
|
|
1309
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2AbsState_html_aedb9ed0802f5aabb3dff760615600678"><div class="ttname"><a href="classSVF_1_1SVFIR2AbsState.html#aedb9ed0802f5aabb3dff760615600678">SVF::SVFIR2AbsState::applySummary</a></div><div class="ttdeci">void applySummary(AbstractState &es)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2AbsState_8cpp_source.html#l00274">SVFIR2AbsState.cpp:274</a></div></div>
|
|
1310
1299
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a32b1e88bbb7433ed8071e9dd9daa2c83"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a32b1e88bbb7433ed8071e9dd9daa2c83">SVF::CopyStmt::INTTOPTR</a></div><div class="ttdeci">@ INTTOPTR</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00386">SVFStatements.h:386</a></div></div>
|
|
1311
1300
|
<div class="ttc" id="aclassSVF_1_1CopyStmt_html_ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9"><div class="ttname"><a href="classSVF_1_1CopyStmt.html#ae041bbd93e3839193fd7ffe9611a4ca1a3fbb25d7761cca1dd44e06e41e5570c9">SVF::CopyStmt::COPYVAL</a></div><div class="ttdeci">@ COPYVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00376">SVFStatements.h:376</a></div></div>
|
|
1312
1301
|
<div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">SVF::CmpStmt::FCMP_TRUE</a></div><div class="ttdeci">@ FCMP_TRUE</div><div class="ttdoc">1 1 1 1 Always true (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00969">SVFStatements.h:969</a></div></div>
|