svf-tools 1.0.771 → 1.0.773
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/html/BoundedZ3Expr_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/BoundedZ3Expr_8h_source.html +380 -380
- package/SVF-doxygen/html/html/ConsExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/IntervalExeState_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IntervalValue_8h_source.html +35 -35
- package/SVF-doxygen/html/html/NumericLiteral_8h_source.html +19 -18
- package/SVF-doxygen/html/html/RelationSolver_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +784 -766
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +25 -25
- package/SVF-doxygen/html/html/SingleAbsValue_8h_source.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BoundedZ3Expr-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BoundedZ3Expr.html +306 -305
- package/SVF-doxygen/html/html/classSVF_1_1ConsExeState.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntervalValue.html +28 -27
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NumericLiteral.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1RelationSolver.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +791 -773
- package/SVF-doxygen/html/html/classSVF_1_1SingleAbsValue-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SingleAbsValue.html +10 -10
- package/SVF-doxygen/html/html/functions_b.html +1 -1
- package/SVF-doxygen/html/html/functions_func_b.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +8 -8
- package/SVF-doxygen/html/html/functions_g.html +8 -8
- package/SVF-doxygen/html/html/namespaceSVF.html +9 -9
- package/SVF-doxygen/html/html/search/all_2.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +6 -6
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +2 -2
- package/SVF-doxygen/html/html/search/functions_7.js +6 -6
- package/SVF-doxygen/html/html/search/functions_9.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1BoundedZ3Expr_01_4.html +5 -5
- package/package.json +1 -1
- package/svf/include/AbstractExecution/BoundedZ3Expr.h +4 -5
- package/svf/include/AbstractExecution/IntervalValue.h +19 -19
- package/svf/include/AbstractExecution/NumericLiteral.h +2 -2
- package/svf/include/AbstractExecution/SVFIR2ItvExeState.h +5 -5
- package/svf/lib/AbstractExecution/BoundedZ3Expr.cpp +5 -5
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +77 -61
|
@@ -101,20 +101,20 @@ Public Member Functions</h2></td></tr>
|
|
|
101
101
|
<tr class="separator:a57cbbcc977705ba7cd660bb5b632a66c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
102
102
|
<tr class="memitem:a584e5b2285a2980fc57cf84b06a76e0c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c">narrowVAddrs</a> (<a class="el" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &lhs, const <a class="el" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &rhs)</td></tr>
|
|
103
103
|
<tr class="separator:a584e5b2285a2980fc57cf84b06a76e0c"><td class="memSeparator" colspan="2"> </td></tr>
|
|
104
|
-
<tr class="memitem:
|
|
105
|
-
<tr class="memdesc:
|
|
106
|
-
<tr class="separator:
|
|
107
|
-
<tr class="memitem:
|
|
108
|
-
<tr class="memdesc:
|
|
109
|
-
<tr class="separator:
|
|
110
|
-
<tr class="memitem:
|
|
111
|
-
<tr class="memdesc:
|
|
112
|
-
<tr class="separator:
|
|
113
|
-
<tr class="memitem:
|
|
114
|
-
<tr class="separator:
|
|
115
|
-
<tr class="memitem:
|
|
116
|
-
<tr class="memdesc:
|
|
117
|
-
<tr class="separator:
|
|
104
|
+
<tr class="memitem:a67532bdc1e4a49cf4d9da4b99b38e69a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">getGepObjAddress</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pointer, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="el" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</td></tr>
|
|
105
|
+
<tr class="memdesc:a67532bdc1e4a49cf4d9da4b99b38e69a"><td class="mdescLeft"> </td><td class="mdescRight">Return the field address given a pointer points to a struct object and an offset. <a href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">More...</a><br /></td></tr>
|
|
106
|
+
<tr class="separator:a67532bdc1e4a49cf4d9da4b99b38e69a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
107
|
+
<tr class="memitem:a2f0fe665f2153115be84a143633b6b3b"><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">getBytefromGepTypePair</a> (const <a class="el" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a> &gep_pair, const <a class="el" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> elem_bytesize)</td></tr>
|
|
108
|
+
<tr class="memdesc:a2f0fe665f2153115be84a143633b6b3b"><td class="mdescLeft"> </td><td class="mdescRight">Return the byte offset from one gep param offset. <a href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">More...</a><br /></td></tr>
|
|
109
|
+
<tr class="separator:a2f0fe665f2153115be84a143633b6b3b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
110
|
+
<tr class="memitem:aed7fc3951608972b6f8fdce14b4a0cbb"><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">getIndexfromGepTypePair</a> (const <a class="el" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a> &gep_pair, const <a class="el" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</td></tr>
|
|
111
|
+
<tr class="memdesc:aed7fc3951608972b6f8fdce14b4a0cbb"><td class="mdescLeft"> </td><td class="mdescRight">Return the Index offset from one gep param offset. <a href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">More...</a><br /></td></tr>
|
|
112
|
+
<tr class="separator:aed7fc3951608972b6f8fdce14b4a0cbb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
113
|
+
<tr class="memitem:a24f009ea362c4acf1cfa44d4dd80ef8b"><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b">getGepByteOffset</a> (const <a class="el" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> elemBytesize)</td></tr>
|
|
114
|
+
<tr class="separator:a24f009ea362c4acf1cfa44d4dd80ef8b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
115
|
+
<tr class="memitem:afed2852aec6793e1943f97ed39dd8d2b"><td class="memItemLeft" align="right" valign="top">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">getGepOffset</a> (const <a class="el" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</td></tr>
|
|
116
|
+
<tr class="memdesc:afed2852aec6793e1943f97ed39dd8d2b"><td class="mdescLeft"> </td><td class="mdescRight">Return the offset expression of a <a class="el" href="classSVF_1_1GepStmt.html">GepStmt</a>. <a href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">More...</a><br /></td></tr>
|
|
117
|
+
<tr class="separator:afed2852aec6793e1943f97ed39dd8d2b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
118
118
|
<tr class="memitem:a198e8d5f586a698462dee2c3fde8c83e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">applySummary</a> (<a class="el" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &es)</td></tr>
|
|
119
119
|
<tr class="separator:a198e8d5f586a698462dee2c3fde8c83e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
120
120
|
<tr class="memitem:a61d288c8dc621a0578faa5ff784f4b6e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">initValVar</a> (const <a class="el" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</td></tr>
|
|
@@ -301,14 +301,14 @@ Private Attributes</h2></td></tr>
|
|
|
301
301
|
</div><!-- fragment -->
|
|
302
302
|
</div>
|
|
303
303
|
</div>
|
|
304
|
-
<a id="
|
|
305
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
304
|
+
<a id="a2f0fe665f2153115be84a143633b6b3b"></a>
|
|
305
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a2f0fe665f2153115be84a143633b6b3b">◆ </a></span>getBytefromGepTypePair()</h2>
|
|
306
306
|
|
|
307
307
|
<div class="memitem">
|
|
308
308
|
<div class="memproto">
|
|
309
309
|
<table class="memname">
|
|
310
310
|
<tr>
|
|
311
|
-
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#
|
|
311
|
+
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > SVFIR2ItvExeState::getBytefromGepTypePair </td>
|
|
312
312
|
<td>(</td>
|
|
313
313
|
<td class="paramtype">const <a class="el" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a> & </td>
|
|
314
314
|
<td class="paramname"><em>gep_pair</em>, </td>
|
|
@@ -322,7 +322,7 @@ Private Attributes</h2></td></tr>
|
|
|
322
322
|
<tr>
|
|
323
323
|
<td class="paramkey"></td>
|
|
324
324
|
<td></td>
|
|
325
|
-
<td class="paramtype"><a class="el" href="namespaceSVF.html#
|
|
325
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> </td>
|
|
326
326
|
<td class="paramname"><em>elem_bytesize</em> </td>
|
|
327
327
|
</tr>
|
|
328
328
|
<tr>
|
|
@@ -342,48 +342,64 @@ Private Attributes</h2></td></tr>
|
|
|
342
342
|
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first->getValue();</div>
|
|
343
343
|
<div class="line"><a name="l00179"></a><span class="lineno"> 179</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> = gep_pair.second;</div>
|
|
344
344
|
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast<SVFConstantInt>(value);</div>
|
|
345
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="namespaceSVF.html#
|
|
346
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="namespaceSVF.html#
|
|
347
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="namespaceSVF.html#
|
|
348
|
-
<div class="line"><a name="
|
|
345
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
|
|
346
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
|
|
347
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxByteLimit = 99999;</div>
|
|
348
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minByteLimit = -99999;</div>
|
|
349
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">auto</span> valueReshape = [&](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
|
|
349
350
|
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {</div>
|
|
350
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> 
|
|
351
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> 
|
|
352
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> 
|
|
353
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> 
|
|
354
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
355
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> 
|
|
356
|
-
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> 
|
|
357
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
358
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
359
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
360
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> 
|
|
361
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
362
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> 
|
|
363
|
-
<div class="line"><a name="
|
|
364
|
-
<div class="line"><a name="
|
|
365
|
-
<div class="line"><a name="
|
|
366
|
-
<div class="line"><a name="
|
|
367
|
-
<div class="line"><a name="
|
|
368
|
-
<div class="line"><a name="
|
|
369
|
-
<div class="line"><a name="
|
|
370
|
-
<div class="line"><a name="
|
|
371
|
-
<div class="line"><a name="
|
|
372
|
-
<div class="line"><a name="
|
|
373
|
-
<div class="line"><a name="
|
|
374
|
-
<div class="line"><a name="
|
|
375
|
-
<div class="line"><a name="
|
|
376
|
-
<div class="line"><a name="
|
|
377
|
-
<div class="line"><a name="
|
|
378
|
-
<div class="line"><a name="
|
|
379
|
-
<div class="line"><a name="
|
|
380
|
-
<div class="line"><a name="
|
|
381
|
-
<div class="line"><a name="
|
|
382
|
-
<div class="line"><a name="
|
|
383
|
-
<div class="line"><a name="
|
|
384
|
-
<div class="line"><a name="
|
|
385
|
-
<div class="line"><a name="
|
|
386
|
-
<div class="line"><a name="
|
|
351
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> < (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)minByteLimit)</div>
|
|
352
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  {</div>
|
|
353
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> minByteLimit;</div>
|
|
354
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div>
|
|
355
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> > (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)maxByteLimit)</div>
|
|
356
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div>
|
|
357
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> maxByteLimit;</div>
|
|
358
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
|
359
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">else</span></div>
|
|
360
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div>
|
|
361
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
362
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div>
|
|
363
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  };</div>
|
|
364
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keywordflow">if</span> (op)</div>
|
|
365
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  {</div>
|
|
366
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  offsetLb = offsetUb = op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() > maxByteLimit</div>
|
|
367
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  ? maxByteLimit</div>
|
|
368
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  : op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
|
|
369
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div>
|
|
370
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">else</span></div>
|
|
371
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div>
|
|
372
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a4359c73e131a44f899c694fad25b7e1a">_svfir</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(value);</div>
|
|
373
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &idxVal = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[idx];</div>
|
|
374
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
|
|
375
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">return</span> std::make_pair(0, maxByteLimit);</div>
|
|
376
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// if idxVal is a concrete value</span></div>
|
|
377
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
|
|
378
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div>
|
|
379
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
380
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div>
|
|
381
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">else</span></div>
|
|
382
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div>
|
|
383
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
384
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
385
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
|
|
386
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div>
|
|
387
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  </div>
|
|
388
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
389
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  {</div>
|
|
390
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
391
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  {</div>
|
|
392
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  offsetLb = offsetLb * gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty->getPtrElementType())* elemBytesize;</div>
|
|
393
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  offsetUb = offsetUb * gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty->getPtrElementType())* elemBytesize;</div>
|
|
394
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div>
|
|
395
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">else</span></div>
|
|
396
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div>
|
|
397
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  offsetLb = offsetLb * elemBytesize;</div>
|
|
398
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  offsetUb = offsetUb * elemBytesize;</div>
|
|
399
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
400
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
|
|
401
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
|
|
402
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> }</div>
|
|
387
403
|
</div><!-- fragment -->
|
|
388
404
|
</div>
|
|
389
405
|
</div>
|
|
@@ -447,14 +463,14 @@ Private Attributes</h2></td></tr>
|
|
|
447
463
|
</div><!-- fragment -->
|
|
448
464
|
</div>
|
|
449
465
|
</div>
|
|
450
|
-
<a id="
|
|
451
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
466
|
+
<a id="a24f009ea362c4acf1cfa44d4dd80ef8b"></a>
|
|
467
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a24f009ea362c4acf1cfa44d4dd80ef8b">◆ </a></span>getGepByteOffset()</h2>
|
|
452
468
|
|
|
453
469
|
<div class="memitem">
|
|
454
470
|
<div class="memproto">
|
|
455
471
|
<table class="memname">
|
|
456
472
|
<tr>
|
|
457
|
-
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#
|
|
473
|
+
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > SVFIR2ItvExeState::getGepByteOffset </td>
|
|
458
474
|
<td>(</td>
|
|
459
475
|
<td class="paramtype">const <a class="el" href="classSVF_1_1GepStmt.html">GepStmt</a> * </td>
|
|
460
476
|
<td class="paramname"><em>gep</em>, </td>
|
|
@@ -462,7 +478,7 @@ Private Attributes</h2></td></tr>
|
|
|
462
478
|
<tr>
|
|
463
479
|
<td class="paramkey"></td>
|
|
464
480
|
<td></td>
|
|
465
|
-
<td class="paramtype"><a class="el" href="namespaceSVF.html#
|
|
481
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> </td>
|
|
466
482
|
<td class="paramname"><em>elemBytesize</em> </td>
|
|
467
483
|
</tr>
|
|
468
484
|
<tr>
|
|
@@ -476,35 +492,35 @@ Private Attributes</h2></td></tr>
|
|
|
476
492
|
<p>for instant constant index, e.g. gep arr, 1</p>
|
|
477
493
|
<p>default value of MaxFieldLimit is 512</p>
|
|
478
494
|
|
|
479
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
480
|
-
<div class="fragment"><div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
482
|
-
<div class="line"><a name="
|
|
483
|
-
<div class="line"><a name="
|
|
484
|
-
<div class="line"><a name="
|
|
485
|
-
<div class="line"><a name="
|
|
486
|
-
<div class="line"><a name="
|
|
487
|
-
<div class="line"><a name="
|
|
488
|
-
<div class="line"><a name="
|
|
489
|
-
<div class="line"><a name="
|
|
490
|
-
<div class="line"><a name="
|
|
491
|
-
<div class="line"><a name="
|
|
492
|
-
<div class="line"><a name="
|
|
493
|
-
<div class="line"><a name="
|
|
494
|
-
<div class="line"><a name="
|
|
495
|
-
<div class="line"><a name="
|
|
496
|
-
<div class="line"><a name="
|
|
497
|
-
<div class="line"><a name="
|
|
498
|
-
<div class="line"><a name="
|
|
499
|
-
<div class="line"><a name="
|
|
500
|
-
<div class="line"><a name="
|
|
501
|
-
<div class="line"><a name="
|
|
502
|
-
<div class="line"><a name="
|
|
495
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00324">324</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
496
|
+
<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> {</div>
|
|
497
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
|
|
498
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">return</span> std::make_pair(gep-><a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-><a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
|
|
499
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
|
|
500
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
|
|
501
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = 0xFFFFFF;</div>
|
|
502
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
503
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div>
|
|
504
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  std::pair<APOffset, APOffset> offsetIdx = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">getBytefromGepTypePair</a>(</div>
|
|
505
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep, elemBytesize);</div>
|
|
506
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
|
|
507
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
|
|
508
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">if</span> (totalOffsetLb + offsetLb > maxFieldLimit)</div>
|
|
509
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  totalOffsetLb = maxFieldLimit;</div>
|
|
510
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">else</span></div>
|
|
511
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  totalOffsetLb += offsetLb;</div>
|
|
512
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">if</span> (totalOffsetUb + offsetUb > maxFieldLimit)</div>
|
|
513
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  totalOffsetUb = maxFieldLimit;</div>
|
|
514
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">else</span></div>
|
|
515
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  totalOffsetUb += offsetUb ;</div>
|
|
516
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div>
|
|
517
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
|
|
518
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span> }</div>
|
|
503
519
|
</div><!-- fragment -->
|
|
504
520
|
</div>
|
|
505
521
|
</div>
|
|
506
|
-
<a id="
|
|
507
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
522
|
+
<a id="a67532bdc1e4a49cf4d9da4b99b38e69a"></a>
|
|
523
|
+
<h2 class="memtitle"><span class="permalink"><a href="#a67532bdc1e4a49cf4d9da4b99b38e69a">◆ </a></span>getGepObjAddress()</h2>
|
|
508
524
|
|
|
509
525
|
<div class="memitem">
|
|
510
526
|
<div class="memproto">
|
|
@@ -518,7 +534,7 @@ Private Attributes</h2></td></tr>
|
|
|
518
534
|
<tr>
|
|
519
535
|
<td class="paramkey"></td>
|
|
520
536
|
<td></td>
|
|
521
|
-
<td class="paramtype"><a class="el" href="namespaceSVF.html#
|
|
537
|
+
<td class="paramtype"><a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> </td>
|
|
522
538
|
<td class="paramname"><em>offset</em> </td>
|
|
523
539
|
</tr>
|
|
524
540
|
<tr>
|
|
@@ -554,14 +570,14 @@ Private Attributes</h2></td></tr>
|
|
|
554
570
|
</div><!-- fragment -->
|
|
555
571
|
</div>
|
|
556
572
|
</div>
|
|
557
|
-
<a id="
|
|
558
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
573
|
+
<a id="afed2852aec6793e1943f97ed39dd8d2b"></a>
|
|
574
|
+
<h2 class="memtitle"><span class="permalink"><a href="#afed2852aec6793e1943f97ed39dd8d2b">◆ </a></span>getGepOffset()</h2>
|
|
559
575
|
|
|
560
576
|
<div class="memitem">
|
|
561
577
|
<div class="memproto">
|
|
562
578
|
<table class="memname">
|
|
563
579
|
<tr>
|
|
564
|
-
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#
|
|
580
|
+
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > SVFIR2ItvExeState::getGepOffset </td>
|
|
565
581
|
<td>(</td>
|
|
566
582
|
<td class="paramtype">const <a class="el" href="classSVF_1_1GepStmt.html">GepStmt</a> * </td>
|
|
567
583
|
<td class="paramname"><em>gep</em></td><td>)</td>
|
|
@@ -574,41 +590,41 @@ Private Attributes</h2></td></tr>
|
|
|
574
590
|
<p>for instant constant index, e.g. gep arr, 1</p>
|
|
575
591
|
<p>default value of MaxFieldLimit is 512</p>
|
|
576
592
|
|
|
577
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
578
|
-
<div class="fragment"><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="
|
|
592
|
-
<div class="line"><a name="
|
|
593
|
-
<div class="line"><a name="
|
|
594
|
-
<div class="line"><a name="
|
|
595
|
-
<div class="line"><a name="
|
|
596
|
-
<div class="line"><a name="
|
|
597
|
-
<div class="line"><a name="
|
|
598
|
-
<div class="line"><a name="
|
|
599
|
-
<div class="line"><a name="
|
|
600
|
-
<div class="line"><a name="
|
|
593
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00352">352</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
594
|
+
<div class="fragment"><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> {</div>
|
|
595
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span> (gep-><a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
|
|
596
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> std::make_pair(gep-><a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-><a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
|
|
597
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
|
|
598
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
|
|
599
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
|
|
600
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-><a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i >= 0; i--)</div>
|
|
601
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  {</div>
|
|
602
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  std::pair<APOffset, APOffset> offsetIdx = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">getIndexfromGepTypePair</a>(</div>
|
|
603
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  gep-><a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep);</div>
|
|
604
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
|
|
605
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
|
|
606
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetLb + offsetLb) > maxFieldLimit)</div>
|
|
607
|
+
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  totalOffsetLb = maxFieldLimit;</div>
|
|
608
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">else</span></div>
|
|
609
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  totalOffsetLb += offsetLb;</div>
|
|
610
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetUb + offsetUb) > maxFieldLimit)</div>
|
|
611
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  totalOffsetUb = maxFieldLimit;</div>
|
|
612
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">else</span></div>
|
|
613
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  totalOffsetUb += offsetUb ;</div>
|
|
614
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  }</div>
|
|
615
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
|
|
616
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> }</div>
|
|
601
617
|
</div><!-- fragment -->
|
|
602
618
|
</div>
|
|
603
619
|
</div>
|
|
604
|
-
<a id="
|
|
605
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
620
|
+
<a id="aed7fc3951608972b6f8fdce14b4a0cbb"></a>
|
|
621
|
+
<h2 class="memtitle"><span class="permalink"><a href="#aed7fc3951608972b6f8fdce14b4a0cbb">◆ </a></span>getIndexfromGepTypePair()</h2>
|
|
606
622
|
|
|
607
623
|
<div class="memitem">
|
|
608
624
|
<div class="memproto">
|
|
609
625
|
<table class="memname">
|
|
610
626
|
<tr>
|
|
611
|
-
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#
|
|
627
|
+
<td class="memname">std::pair< <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>, <a class="el" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> > SVFIR2ItvExeState::getIndexfromGepTypePair </td>
|
|
612
628
|
<td>(</td>
|
|
613
629
|
<td class="paramtype">const <a class="el" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a> & </td>
|
|
614
630
|
<td class="paramname"><em>gep_pair</em>, </td>
|
|
@@ -630,80 +646,84 @@ Private Attributes</h2></td></tr>
|
|
|
630
646
|
<p>Return the Index offset from one gep param offset. </p>
|
|
631
647
|
<p>offset is constant but stored in variable</p>
|
|
632
648
|
|
|
633
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
634
|
-
<div class="fragment"><div class="line"><a name="
|
|
635
|
-
<div class="line"><a name="
|
|
636
|
-
<div class="line"><a name="
|
|
637
|
-
<div class="line"><a name="
|
|
638
|
-
<div class="line"><a name="
|
|
639
|
-
<div class="line"><a name="
|
|
640
|
-
<div class="line"><a name="
|
|
641
|
-
<div class="line"><a name="
|
|
642
|
-
<div class="line"><a name="
|
|
643
|
-
<div class="line"><a name="
|
|
644
|
-
<div class="line"><a name="
|
|
645
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div>
|
|
646
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">else</span></div>
|
|
647
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div>
|
|
648
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a4359c73e131a44f899c694fad25b7e1a">_svfir</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(value);</div>
|
|
649
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">//if (!inVarToIValTable(idx)) return std::make_pair(-1, -1);</span></div>
|
|
650
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &idxVal = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[idx];</div>
|
|
651
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
|
|
652
|
-
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> std::make_pair(0, (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
|
|
653
|
-
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">// if idxVal is a concrete value</span></div>
|
|
654
|
-
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
|
|
655
|
-
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  {</div>
|
|
656
|
-
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  offsetLb = offsetUb = idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a221061ec858e5c51b222164a6c4f8152">getNumeral</a>()></div>
|
|
657
|
-
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  maxFieldLimit? maxFieldLimit: idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a221061ec858e5c51b222164a6c4f8152">getNumeral</a>();</div>
|
|
658
|
-
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  }</div>
|
|
659
|
-
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">else</span></div>
|
|
649
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00243">243</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
650
|
+
<div class="fragment"><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> {</div>
|
|
651
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first->getValue();</div>
|
|
652
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</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> = gep_pair.second;</div>
|
|
653
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast<SVFConstantInt>(value);</div>
|
|
654
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
|
|
655
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
|
|
656
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
657
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minFieldLimit = 0;</div>
|
|
658
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">auto</span> valueReshape = [&](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
|
|
659
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  {</div>
|
|
660
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> < minFieldLimit)</div>
|
|
660
661
|
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div>
|
|
661
|
-
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span> 
|
|
662
|
-
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span> 
|
|
663
|
-
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> 
|
|
664
|
-
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> 
|
|
665
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> 
|
|
666
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
667
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> 
|
|
668
|
-
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> 
|
|
669
|
-
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> 
|
|
670
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> 
|
|
671
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> 
|
|
672
|
-
<div class="line"><a name="
|
|
673
|
-
<div class="line"><a name="
|
|
674
|
-
<div class="line"><a name="
|
|
675
|
-
<div class="line"><a name="
|
|
676
|
-
<div class="line"><a name="
|
|
677
|
-
<div class="line"><a name="
|
|
678
|
-
<div class="line"><a name="
|
|
679
|
-
<div class="line"><a name="
|
|
680
|
-
<div class="line"><a name="
|
|
681
|
-
<div class="line"><a name="
|
|
682
|
-
<div class="line"><a name="
|
|
683
|
-
<div class="line"><a name="
|
|
684
|
-
<div class="line"><a name="
|
|
685
|
-
<div class="line"><a name="
|
|
686
|
-
<div class="line"><a name="
|
|
687
|
-
<div class="line"><a name="
|
|
688
|
-
<div class="line"><a name="
|
|
689
|
-
<div class="line"><a name="
|
|
690
|
-
<div class="line"><a name="
|
|
691
|
-
<div class="line"><a name="
|
|
692
|
-
<div class="line"><a name="
|
|
693
|
-
<div class="line"><a name="
|
|
694
|
-
<div class="line"><a name="
|
|
695
|
-
<div class="line"><a name="
|
|
696
|
-
<div class="line"><a name="
|
|
697
|
-
<div class="line"><a name="
|
|
698
|
-
<div class="line"><a name="
|
|
699
|
-
<div class="line"><a name="
|
|
700
|
-
<div class="line"><a name="
|
|
701
|
-
<div class="line"><a name="
|
|
702
|
-
<div class="line"><a name="
|
|
703
|
-
<div class="line"><a name="
|
|
704
|
-
<div class="line"><a name="
|
|
705
|
-
<div class="line"><a name="
|
|
706
|
-
<div class="line"><a name="
|
|
662
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> minFieldLimit;</div>
|
|
663
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div>
|
|
664
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> > maxFieldLimit)</div>
|
|
665
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  {</div>
|
|
666
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> maxFieldLimit;</div>
|
|
667
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
|
668
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">else</span></div>
|
|
669
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  {</div>
|
|
670
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
671
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div>
|
|
672
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  };</div>
|
|
673
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">if</span> (op)</div>
|
|
674
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {</div>
|
|
675
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  offsetLb = offsetUb = valueReshape(op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>());</div>
|
|
676
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div>
|
|
677
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">else</span></div>
|
|
678
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div>
|
|
679
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a4359c73e131a44f899c694fad25b7e1a">_svfir</a>-><a class="code" href="classSVF_1_1IRGraph.html#a43514023a4f4d0c32f536f51443b0efc">getValueNode</a>(value);</div>
|
|
680
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">//if (!inVarToIValTable(idx)) return std::make_pair(-1, -1);</span></div>
|
|
681
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &idxVal = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[idx];</div>
|
|
682
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
|
|
683
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> std::make_pair(0, <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
|
|
684
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// if idxVal is a concrete value</span></div>
|
|
685
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
|
|
686
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div>
|
|
687
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
688
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div>
|
|
689
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">else</span></div>
|
|
690
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div>
|
|
691
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
692
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
|
|
693
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div>
|
|
694
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div>
|
|
695
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
|
|
696
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
697
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div>
|
|
698
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
699
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {</div>
|
|
700
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  offsetLb = offsetLb * gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty->getPtrElementType());</div>
|
|
701
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  offsetUb = offsetUb * gep-><a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty->getPtrElementType());</div>
|
|
702
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div>
|
|
703
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span></div>
|
|
704
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
705
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keyword">const</span> std::vector<u32_t>& so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
|
|
706
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  -><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
|
|
707
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  -><a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
|
|
708
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">if</span> (so.empty() || offsetUb >= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() ||</div>
|
|
709
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  offsetLb >= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
|
|
710
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div>
|
|
711
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  offsetLb = 0;</div>
|
|
712
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  offsetUb = maxFieldLimit;</div>
|
|
713
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div>
|
|
714
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">else</span></div>
|
|
715
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div>
|
|
716
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  offsetLb =</div>
|
|
717
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
718
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetLb);</div>
|
|
719
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  offsetUb =</div>
|
|
720
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
|
|
721
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetUb);</div>
|
|
722
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div>
|
|
723
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  }</div>
|
|
724
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div>
|
|
725
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
|
|
726
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> }</div>
|
|
707
727
|
</div><!-- fragment -->
|
|
708
728
|
</div>
|
|
709
729
|
</div>
|
|
@@ -873,50 +893,50 @@ Private Attributes</h2></td></tr>
|
|
|
873
893
|
</dl>
|
|
874
894
|
<p>constant data</p>
|
|
875
895
|
|
|
876
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
877
|
-
<div class="fragment"><div class="line"><a name="
|
|
878
|
-
<div class="line"><a name="
|
|
879
|
-
<div class="line"><a name="
|
|
880
|
-
<div class="line"><a name="
|
|
881
|
-
<div class="line"><a name="
|
|
882
|
-
<div class="line"><a name="
|
|
883
|
-
<div class="line"><a name="
|
|
884
|
-
<div class="line"><a name="
|
|
885
|
-
<div class="line"><a name="
|
|
886
|
-
<div class="line"><a name="
|
|
887
|
-
<div class="line"><a name="
|
|
888
|
-
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div>
|
|
889
|
-
<div class="line"><a name="l00415"></a><span class="lineno"> 415</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>
|
|
890
|
-
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  {</div>
|
|
891
|
-
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP->getFPValue(), consFP->getFPValue());</div>
|
|
892
|
-
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  }</div>
|
|
893
|
-
<div class="line"><a name="l00419"></a><span class="lineno"> 419</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>
|
|
894
|
-
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  {</div>
|
|
895
|
-
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
896
|
-
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div>
|
|
897
|
-
<div class="line"><a name="l00423"></a><span class="lineno"> 423</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>
|
|
898
|
-
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  {</div>
|
|
899
|
-
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(varId));</div>
|
|
900
|
-
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
|
|
901
|
-
<div class="line"><a name="l00427"></a><span class="lineno"> 427</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>
|
|
902
|
-
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  {</div>
|
|
903
|
-
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
904
|
-
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div>
|
|
905
|
-
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">else</span></div>
|
|
906
|
-
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  {</div>
|
|
907
|
-
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
896
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00421">421</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
897
|
+
<div class="fragment"><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> {</div>
|
|
898
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  </div>
|
|
899
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span> (objVar-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
900
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  {</div>
|
|
901
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</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>
|
|
902
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</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>
|
|
903
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  {</div>
|
|
904
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</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>
|
|
905
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  {</div>
|
|
906
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordtype">double</span> numeral = (double)consInt->getSExtValue();</div>
|
|
907
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
|
|
908
908
|
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div>
|
|
909
|
-
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> 
|
|
910
|
-
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span> 
|
|
911
|
-
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span> 
|
|
912
|
-
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span> 
|
|
913
|
-
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> 
|
|
914
|
-
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> 
|
|
915
|
-
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> 
|
|
916
|
-
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span> 
|
|
917
|
-
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> 
|
|
918
|
-
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> 
|
|
919
|
-
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span> 
|
|
909
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</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>
|
|
910
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div>
|
|
911
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP->getFPValue(), consFP->getFPValue());</div>
|
|
912
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div>
|
|
913
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</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>
|
|
914
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  {</div>
|
|
915
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
916
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div>
|
|
917
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</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>
|
|
918
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  {</div>
|
|
919
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(varId));</div>
|
|
920
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div>
|
|
921
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</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>
|
|
922
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  {</div>
|
|
923
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
924
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  }</div>
|
|
925
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">else</span></div>
|
|
926
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  {</div>
|
|
927
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
928
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  }</div>
|
|
929
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div>
|
|
930
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">else</span></div>
|
|
931
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  {</div>
|
|
932
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(varId));</div>
|
|
933
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div>
|
|
934
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div>
|
|
935
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">else</span></div>
|
|
936
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  {</div>
|
|
937
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a0c4be1dd8e7a2877c0cc76c404f6945a">getVirtualMemAddress</a>(varId));</div>
|
|
938
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  }</div>
|
|
939
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> }</div>
|
|
920
940
|
</div><!-- fragment -->
|
|
921
941
|
</div>
|
|
922
942
|
</div>
|
|
@@ -938,28 +958,28 @@ Private Attributes</h2></td></tr>
|
|
|
938
958
|
|
|
939
959
|
<p>Init <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a>. </p>
|
|
940
960
|
|
|
941
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
942
|
-
<div class="fragment"><div class="line"><a name="
|
|
943
|
-
<div class="line"><a name="
|
|
944
|
-
<div class="line"><a name="
|
|
945
|
-
<div class="line"><a name="
|
|
946
|
-
<div class="line"><a name="
|
|
947
|
-
<div class="line"><a name="
|
|
948
|
-
<div class="line"><a name="
|
|
949
|
-
<div class="line"><a name="
|
|
950
|
-
<div class="line"><a name="
|
|
951
|
-
<div class="line"><a name="
|
|
952
|
-
<div class="line"><a name="
|
|
953
|
-
<div class="line"><a name="
|
|
954
|
-
<div class="line"><a name="
|
|
955
|
-
<div class="line"><a name="
|
|
956
|
-
<div class="line"><a name="
|
|
957
|
-
<div class="line"><a name="
|
|
958
|
-
<div class="line"><a name="
|
|
959
|
-
<div class="line"><a name="
|
|
960
|
-
<div class="line"><a name="
|
|
961
|
-
<div class="line"><a name="
|
|
962
|
-
<div class="line"><a name="
|
|
961
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00467">467</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
962
|
+
<div class="fragment"><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> {</div>
|
|
963
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(varId) || <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ad485a35730353c0e945bc84a034d9e45">inVarToAddrsTable</a>(varId)) <span class="keywordflow">return</span>;</div>
|
|
964
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</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>
|
|
965
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</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>
|
|
966
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="comment">// write objvar into cache instead of exestate</span></div>
|
|
967
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</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>
|
|
968
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div>
|
|
969
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">initObjVar</a>(objVar, varId);</div>
|
|
970
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordflow">return</span>;</div>
|
|
971
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  }</div>
|
|
972
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar = dyn_cast<ValVar>(svfVar))</div>
|
|
973
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  {</div>
|
|
974
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">initValVar</a>(valVar, varId);</div>
|
|
975
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span>;</div>
|
|
976
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div>
|
|
977
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">else</span></div>
|
|
978
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  {</div>
|
|
979
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">initValVar</a>(valVar, varId);</div>
|
|
980
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">return</span>;</div>
|
|
981
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  }</div>
|
|
982
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span> }</div>
|
|
963
983
|
</div><!-- fragment -->
|
|
964
984
|
</div>
|
|
965
985
|
</div>
|
|
@@ -998,37 +1018,37 @@ Private Attributes</h2></td></tr>
|
|
|
998
1018
|
</dd>
|
|
999
1019
|
</dl>
|
|
1000
1020
|
|
|
1001
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1002
|
-
<div class="fragment"><div class="line"><a name="
|
|
1003
|
-
<div class="line"><a name="
|
|
1004
|
-
<div class="line"><a name="
|
|
1005
|
-
<div class="line"><a name="
|
|
1006
|
-
<div class="line"><a name="
|
|
1007
|
-
<div class="line"><a name="
|
|
1008
|
-
<div class="line"><a name="
|
|
1009
|
-
<div class="line"><a name="
|
|
1010
|
-
<div class="line"><a name="
|
|
1011
|
-
<div class="line"><a name="
|
|
1012
|
-
<div class="line"><a name="
|
|
1013
|
-
<div class="line"><a name="
|
|
1014
|
-
<div class="line"><a name="
|
|
1015
|
-
<div class="line"><a name="
|
|
1016
|
-
<div class="line"><a name="
|
|
1017
|
-
<div class="line"><a name="
|
|
1018
|
-
<div class="line"><a name="
|
|
1019
|
-
<div class="line"><a name="
|
|
1020
|
-
<div class="line"><a name="
|
|
1021
|
-
<div class="line"><a name="
|
|
1022
|
-
<div class="line"><a name="
|
|
1023
|
-
<div class="line"><a name="
|
|
1024
|
-
<div class="line"><a name="
|
|
1025
|
-
<div class="line"><a name="
|
|
1026
|
-
<div class="line"><a name="
|
|
1027
|
-
<div class="line"><a name="
|
|
1028
|
-
<div class="line"><a name="
|
|
1029
|
-
<div class="line"><a name="
|
|
1030
|
-
<div class="line"><a name="
|
|
1031
|
-
<div class="line"><a name="
|
|
1021
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00384">384</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1022
|
+
<div class="fragment"><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> {</div>
|
|
1023
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
|
|
1024
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</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>
|
|
1025
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
|
|
1026
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">if</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> = valVar-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>())</div>
|
|
1027
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div>
|
|
1028
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="comment">// TODO:miss floatpointerty, voidty, labelty, matadataty</span></div>
|
|
1029
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a> ||</div>
|
|
1030
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1">SVFType::SVFPointerTy</a> ||</div>
|
|
1031
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVFType::SVFFunctionTy</a> ||</div>
|
|
1032
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d">SVFType::SVFStructTy</a> ||</div>
|
|
1033
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>->getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVFType::SVFArrayTy</a>)</div>
|
|
1034
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="comment">// continue with null expression</span></div>
|
|
1035
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1036
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">else</span></div>
|
|
1037
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div>
|
|
1038
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
|
|
1039
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << valVar-><a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() << <span class="stringliteral">"\n"</span> << <span class="stringliteral">" type: "</span> << *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> << <span class="stringliteral">"\n"</span>;</div>
|
|
1040
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"what other types we have"</span>);</div>
|
|
1041
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  }</div>
|
|
1042
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div>
|
|
1043
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">else</span></div>
|
|
1044
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div>
|
|
1045
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordflow">if</span> (svfir-><a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>() == valVar-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div>
|
|
1046
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
1047
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">else</span></div>
|
|
1048
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1049
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  assert(SVFUtil::isa<DummyValVar>(valVar) && <span class="stringliteral">"not a DummValVar if it has no type?"</span>);</div>
|
|
1050
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  }</div>
|
|
1051
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> }</div>
|
|
1032
1052
|
</div><!-- fragment -->
|
|
1033
1053
|
</div>
|
|
1034
1054
|
</div>
|
|
@@ -1373,23 +1393,23 @@ Private Attributes</h2></td></tr>
|
|
|
1373
1393
|
</table>
|
|
1374
1394
|
</div><div class="memdoc">
|
|
1375
1395
|
|
|
1376
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1377
|
-
<div class="fragment"><div class="line"><a name="
|
|
1378
|
-
<div class="line"><a name="
|
|
1379
|
-
<div class="line"><a name="
|
|
1380
|
-
<div class="line"><a name="
|
|
1381
|
-
<div class="line"><a name="
|
|
1382
|
-
<div class="line"><a name="
|
|
1383
|
-
<div class="line"><a name="
|
|
1384
|
-
<div class="line"><a name="
|
|
1385
|
-
<div class="line"><a name="
|
|
1386
|
-
<div class="line"><a name="
|
|
1387
|
-
<div class="line"><a name="
|
|
1388
|
-
<div class="line"><a name="
|
|
1389
|
-
<div class="line"><a name="
|
|
1390
|
-
<div class="line"><a name="
|
|
1391
|
-
<div class="line"><a name="
|
|
1392
|
-
<div class="line"><a name="
|
|
1396
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00491">491</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1397
|
+
<div class="fragment"><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> {</div>
|
|
1398
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">initSVFVar</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
1399
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
1400
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  {</div>
|
|
1401
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
|
|
1402
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div>
|
|
1403
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
1404
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  {</div>
|
|
1405
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()) = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(</div>
|
|
1406
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
1407
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  }</div>
|
|
1408
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">else</span></div>
|
|
1409
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  {</div>
|
|
1410
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not number or virtual addrs?"</span>);</div>
|
|
1411
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div>
|
|
1412
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span> }</div>
|
|
1393
1413
|
</div><!-- fragment -->
|
|
1394
1414
|
</div>
|
|
1395
1415
|
</div>
|
|
@@ -1409,67 +1429,67 @@ Private Attributes</h2></td></tr>
|
|
|
1409
1429
|
</table>
|
|
1410
1430
|
</div><div class="memdoc">
|
|
1411
1431
|
|
|
1412
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1413
|
-
<div class="fragment"><div class="line"><a name="
|
|
1414
|
-
<div class="line"><a name="
|
|
1415
|
-
<div class="line"><a name="
|
|
1416
|
-
<div class="line"><a name="
|
|
1417
|
-
<div class="line"><a name="
|
|
1418
|
-
<div class="line"><a name="
|
|
1419
|
-
<div class="line"><a name="
|
|
1420
|
-
<div class="line"><a name="
|
|
1421
|
-
<div class="line"><a name="
|
|
1422
|
-
<div class="line"><a name="
|
|
1423
|
-
<div class="line"><a name="
|
|
1424
|
-
<div class="line"><a name="
|
|
1425
|
-
<div class="line"><a name="
|
|
1426
|
-
<div class="line"><a name="
|
|
1427
|
-
<div class="line"><a name="
|
|
1428
|
-
<div class="line"><a name="
|
|
1429
|
-
<div class="line"><a name="
|
|
1430
|
-
<div class="line"><a name="
|
|
1431
|
-
<div class="line"><a name="
|
|
1432
|
-
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">break</span>;</div>
|
|
1433
|
-
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
|
|
1434
|
-
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
|
|
1435
|
-
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  resVal = (lhs * rhs);</div>
|
|
1436
|
-
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordflow">break</span>;</div>
|
|
1437
|
-
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
|
|
1438
|
-
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
|
|
1439
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
|
|
1440
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  resVal = (lhs / rhs);</div>
|
|
1441
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">break</span>;</div>
|
|
1442
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
|
|
1443
|
-
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
|
|
1444
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
|
|
1445
|
-
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  resVal = (lhs % rhs);</div>
|
|
1446
|
-
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">break</span>;</div>
|
|
1447
|
-
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
|
|
1448
|
-
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  resVal = (lhs ^ rhs);</div>
|
|
1449
|
-
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">break</span>;</div>
|
|
1450
|
-
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
|
|
1451
|
-
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  resVal = (lhs & rhs);</div>
|
|
1432
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00510">510</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1433
|
+
<div class="fragment"><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> {</div>
|
|
1434
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</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>
|
|
1435
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</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>
|
|
1436
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</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>
|
|
1437
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(op0)) <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1438
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(op1)) <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1439
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(op1))</div>
|
|
1440
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  {</div>
|
|
1441
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op0], &rhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op1];</div>
|
|
1442
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1443
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordflow">switch</span> (binary-><a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
|
|
1444
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  {</div>
|
|
1445
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
|
|
1446
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
|
|
1447
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  resVal = (lhs + rhs);</div>
|
|
1448
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">break</span>;</div>
|
|
1449
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
|
|
1450
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
|
|
1451
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  resVal = (lhs - rhs);</div>
|
|
1452
1452
|
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">break</span>;</div>
|
|
1453
|
-
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1454
|
-
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> 
|
|
1455
|
-
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span> 
|
|
1456
|
-
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> 
|
|
1457
|
-
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> 
|
|
1458
|
-
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> 
|
|
1459
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1460
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  resVal = (lhs
|
|
1453
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
|
|
1454
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
|
|
1455
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  resVal = (lhs * rhs);</div>
|
|
1456
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">break</span>;</div>
|
|
1457
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
|
|
1458
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
|
|
1459
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
|
|
1460
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  resVal = (lhs / rhs);</div>
|
|
1461
1461
|
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordflow">break</span>;</div>
|
|
1462
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1463
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span> 
|
|
1464
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> 
|
|
1465
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span> 
|
|
1466
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> 
|
|
1467
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span> 
|
|
1468
|
-
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span> 
|
|
1469
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> 
|
|
1470
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="
|
|
1471
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span> 
|
|
1472
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span> 
|
|
1462
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
|
|
1463
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
|
|
1464
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
|
|
1465
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  resVal = (lhs % rhs);</div>
|
|
1466
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordflow">break</span>;</div>
|
|
1467
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
|
|
1468
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  resVal = (lhs ^ rhs);</div>
|
|
1469
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">break</span>;</div>
|
|
1470
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
|
|
1471
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  resVal = (lhs & rhs);</div>
|
|
1472
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">break</span>;</div>
|
|
1473
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
|
|
1474
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  resVal = (lhs | rhs);</div>
|
|
1475
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">break</span>;</div>
|
|
1476
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
|
|
1477
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  resVal = (lhs >> rhs);</div>
|
|
1478
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">break</span>;</div>
|
|
1479
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
|
|
1480
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  resVal = (lhs << rhs);</div>
|
|
1481
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">break</span>;</div>
|
|
1482
|
+
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
|
|
1483
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  resVal = (lhs >> rhs);</div>
|
|
1484
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">break</span>;</div>
|
|
1485
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">default</span>:</div>
|
|
1486
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  {</div>
|
|
1487
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined binary: "</span>);</div>
|
|
1488
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  }</div>
|
|
1489
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
|
|
1490
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1491
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  }</div>
|
|
1492
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> }</div>
|
|
1473
1493
|
</div><!-- fragment -->
|
|
1474
1494
|
</div>
|
|
1475
1495
|
</div>
|
|
@@ -1565,20 +1585,20 @@ Private Attributes</h2></td></tr>
|
|
|
1565
1585
|
</table>
|
|
1566
1586
|
</div><div class="memdoc">
|
|
1567
1587
|
|
|
1568
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1569
|
-
<div class="fragment"><div class="line"><a name="
|
|
1570
|
-
<div class="line"><a name="
|
|
1571
|
-
<div class="line"><a name="
|
|
1572
|
-
<div class="line"><a name="
|
|
1573
|
-
<div class="line"><a name="
|
|
1574
|
-
<div class="line"><a name="
|
|
1575
|
-
<div class="line"><a name="
|
|
1576
|
-
<div class="line"><a name="
|
|
1577
|
-
<div class="line"><a name="
|
|
1578
|
-
<div class="line"><a name="
|
|
1579
|
-
<div class="line"><a name="
|
|
1580
|
-
<div class="line"><a name="
|
|
1581
|
-
<div class="line"><a name="
|
|
1588
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00948">948</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1589
|
+
<div class="fragment"><div class="line"><a name="l00949"></a><span class="lineno"> 949</span> {</div>
|
|
1590
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1591
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1592
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
|
|
1593
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  {</div>
|
|
1594
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs];</div>
|
|
1595
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  }</div>
|
|
1596
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1597
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  {</div>
|
|
1598
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
|
|
1599
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
|
|
1600
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
|
|
1601
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> }</div>
|
|
1582
1602
|
</div><!-- fragment -->
|
|
1583
1603
|
</div>
|
|
1584
1604
|
</div>
|
|
@@ -1631,193 +1651,189 @@ Private Attributes</h2></td></tr>
|
|
|
1631
1651
|
</table>
|
|
1632
1652
|
</div><div class="memdoc">
|
|
1633
1653
|
|
|
1634
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1635
|
-
<div class="fragment"><div class="line"><a name="
|
|
1636
|
-
<div class="line"><a name="
|
|
1637
|
-
<div class="line"><a name="
|
|
1638
|
-
<div class="line"><a name="
|
|
1639
|
-
<div class="line"><a name="
|
|
1640
|
-
<div class="line"><a name="
|
|
1641
|
-
<div class="line"><a name="
|
|
1642
|
-
<div class="line"><a name="
|
|
1643
|
-
<div class="line"><a name="
|
|
1644
|
-
<div class="line"><a name="
|
|
1645
|
-
<div class="line"><a name="
|
|
1646
|
-
<div class="line"><a name="
|
|
1647
|
-
<div class="line"><a name="
|
|
1648
|
-
<div class="line"><a name="
|
|
1649
|
-
<div class="line"><a name="
|
|
1650
|
-
<div class="line"><a name="
|
|
1651
|
-
<div class="line"><a name="
|
|
1652
|
-
<div class="line"><a name="
|
|
1653
|
-
<div class="line"><a name="
|
|
1654
|
-
<div class="line"><a name="
|
|
1655
|
-
<div class="line"><a name="
|
|
1656
|
-
<div class="line"><a name="
|
|
1657
|
-
<div class="line"><a name="
|
|
1658
|
-
<div class="line"><a name="
|
|
1659
|
-
<div class="line"><a name="
|
|
1660
|
-
<div class="line"><a name="
|
|
1661
|
-
<div class="line"><a name="
|
|
1662
|
-
<div class="line"><a name="
|
|
1663
|
-
<div class="line"><a name="
|
|
1664
|
-
<div class="line"><a name="
|
|
1665
|
-
<div class="line"><a name="
|
|
1666
|
-
<div class="line"><a name="
|
|
1667
|
-
<div class="line"><a name="
|
|
1668
|
-
<div class="line"><a name="
|
|
1669
|
-
<div class="line"><a name="
|
|
1670
|
-
<div class="line"><a name="
|
|
1671
|
-
<div class="line"><a name="
|
|
1672
|
-
<div class="line"><a name="
|
|
1673
|
-
<div class="line"><a name="
|
|
1674
|
-
<div class="line"><a name="
|
|
1675
|
-
<div class="line"><a name="
|
|
1676
|
-
<div class="line"><a name="
|
|
1677
|
-
<div class="line"><a name="
|
|
1678
|
-
<div class="line"><a name="
|
|
1679
|
-
<div class="line"><a name="
|
|
1680
|
-
<div class="line"><a name="
|
|
1681
|
-
<div class="line"><a name="
|
|
1682
|
-
<div class="line"><a name="
|
|
1683
|
-
<div class="line"><a name="
|
|
1684
|
-
<div class="line"><a name="
|
|
1685
|
-
<div class="line"><a name="
|
|
1686
|
-
<div class="line"><a name="
|
|
1687
|
-
<div class="line"><a name="
|
|
1688
|
-
<div class="line"><a name="
|
|
1689
|
-
<div class="line"><a name="
|
|
1690
|
-
<div class="line"><a name="
|
|
1691
|
-
<div class="line"><a name="
|
|
1692
|
-
<div class="line"><a name="
|
|
1693
|
-
<div class="line"><a name="
|
|
1694
|
-
<div class="line"><a name="
|
|
1695
|
-
<div class="line"><a name="
|
|
1696
|
-
<div class="line"><a name="
|
|
1697
|
-
<div class="line"><a name="
|
|
1698
|
-
<div class="line"><a name="
|
|
1699
|
-
<div class="line"><a name="
|
|
1700
|
-
<div class="line"><a name="
|
|
1701
|
-
<div class="line"><a name="
|
|
1702
|
-
<div class="line"><a name="
|
|
1703
|
-
<div class="line"><a name="
|
|
1704
|
-
<div class="line"><a name="
|
|
1705
|
-
<div class="line"><a name="
|
|
1706
|
-
<div class="line"><a name="
|
|
1707
|
-
<div class="line"><a name="
|
|
1708
|
-
<div class="line"><a name="
|
|
1709
|
-
<div class="line"><a name="
|
|
1710
|
-
<div class="line"><a name="
|
|
1711
|
-
<div class="line"><a name="
|
|
1712
|
-
<div class="line"><a name="
|
|
1713
|
-
<div class="line"><a name="
|
|
1714
|
-
<div class="line"><a name="
|
|
1715
|
-
<div class="line"><a name="
|
|
1716
|
-
<div class="line"><a name="
|
|
1717
|
-
<div class="line"><a name="
|
|
1718
|
-
<div class="line"><a name="
|
|
1719
|
-
<div class="line"><a name="
|
|
1720
|
-
<div class="line"><a name="
|
|
1721
|
-
<div class="line"><a name="
|
|
1722
|
-
<div class="line"><a name="
|
|
1723
|
-
<div class="line"><a name="
|
|
1724
|
-
<div class="line"><a name="
|
|
1725
|
-
<div class="line"><a name="
|
|
1726
|
-
<div class="line"><a name="
|
|
1727
|
-
<div class="line"><a name="
|
|
1728
|
-
<div class="line"><a name="
|
|
1729
|
-
<div class="line"><a name="
|
|
1730
|
-
<div class="line"><a name="
|
|
1731
|
-
<div class="line"><a name="
|
|
1732
|
-
<div class="line"><a name="
|
|
1733
|
-
<div class="line"><a name="
|
|
1734
|
-
<div class="line"><a name="
|
|
1735
|
-
<div class="line"><a name="
|
|
1736
|
-
<div class="line"><a name="
|
|
1737
|
-
<div class="line"><a name="
|
|
1738
|
-
<div class="line"><a name="
|
|
1739
|
-
<div class="line"><a name="
|
|
1740
|
-
<div class="line"><a name="
|
|
1741
|
-
<div class="line"><a name="
|
|
1742
|
-
<div class="line"><a name="
|
|
1743
|
-
<div class="line"><a name="
|
|
1744
|
-
<div class="line"><a name="
|
|
1745
|
-
<div class="line"><a name="
|
|
1746
|
-
<div class="line"><a name="
|
|
1747
|
-
<div class="line"><a name="
|
|
1748
|
-
<div class="line"><a name="
|
|
1749
|
-
<div class="line"><a name="
|
|
1750
|
-
<div class="line"><a name="
|
|
1751
|
-
<div class="line"><a name="
|
|
1752
|
-
<div class="line"><a name="
|
|
1753
|
-
<div class="line"><a name="
|
|
1754
|
-
<div class="line"><a name="
|
|
1755
|
-
<div class="line"><a name="
|
|
1756
|
-
<div class="line"><a name="
|
|
1757
|
-
<div class="line"><a name="
|
|
1758
|
-
<div class="line"><a name="
|
|
1759
|
-
<div class="line"><a name="
|
|
1760
|
-
<div class="line"><a name="
|
|
1761
|
-
<div class="line"><a name="
|
|
1762
|
-
<div class="line"><a name="
|
|
1763
|
-
<div class="line"><a name="
|
|
1764
|
-
<div class="line"><a name="
|
|
1765
|
-
<div class="line"><a name="
|
|
1766
|
-
<div class="line"><a name="
|
|
1767
|
-
<div class="line"><a name="
|
|
1768
|
-
<div class="line"><a name="
|
|
1769
|
-
<div class="line"><a name="
|
|
1770
|
-
<div class="line"><a name="
|
|
1771
|
-
<div class="line"><a name="
|
|
1772
|
-
<div class="line"><a name="
|
|
1773
|
-
<div class="line"><a name="
|
|
1774
|
-
<div class="line"><a name="
|
|
1775
|
-
<div class="line"><a name="
|
|
1776
|
-
<div class="line"><a name="
|
|
1777
|
-
<div class="line"><a name="
|
|
1778
|
-
<div class="line"><a name="
|
|
1779
|
-
<div class="line"><a name="
|
|
1780
|
-
<div class="line"><a name="
|
|
1781
|
-
<div class="line"><a name="
|
|
1782
|
-
<div class="line"><a name="
|
|
1783
|
-
<div class="line"><a name="
|
|
1784
|
-
<div class="line"><a name="
|
|
1785
|
-
<div class="line"><a name="
|
|
1786
|
-
<div class="line"><a name="
|
|
1787
|
-
<div class="line"><a name="
|
|
1788
|
-
<div class="line"><a name="
|
|
1789
|
-
<div class="line"><a name="
|
|
1790
|
-
<div class="line"><a name="
|
|
1791
|
-
<div class="line"><a name="
|
|
1792
|
-
<div class="line"><a name="
|
|
1793
|
-
<div class="line"><a name="
|
|
1794
|
-
<div class="line"><a name="
|
|
1795
|
-
<div class="line"><a name="
|
|
1796
|
-
<div class="line"><a name="
|
|
1797
|
-
<div class="line"><a name="
|
|
1798
|
-
<div class="line"><a name="
|
|
1799
|
-
<div class="line"><a name="
|
|
1800
|
-
<div class="line"><a name="
|
|
1801
|
-
<div class="line"><a name="
|
|
1802
|
-
<div class="line"><a name="
|
|
1803
|
-
<div class="line"><a name="
|
|
1804
|
-
<div class="line"><a name="
|
|
1805
|
-
<div class="line"><a name="
|
|
1806
|
-
<div class="line"><a name="
|
|
1807
|
-
<div class="line"><a name="
|
|
1808
|
-
<div class="line"><a name="
|
|
1809
|
-
<div class="line"><a name="
|
|
1810
|
-
<div class="line"><a name="
|
|
1811
|
-
<div class="line"><a name="
|
|
1812
|
-
<div class="line"><a name="
|
|
1813
|
-
<div class="line"><a name="
|
|
1814
|
-
<div class="line"><a name="
|
|
1815
|
-
<div class="line"><a name="
|
|
1816
|
-
<div class="line"><a name="
|
|
1817
|
-
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  }</div>
|
|
1818
|
-
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1819
|
-
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  }</div>
|
|
1820
|
-
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span> }</div>
|
|
1654
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00572">572</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1655
|
+
<div class="fragment"><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> {</div>
|
|
1656
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</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>
|
|
1657
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</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>
|
|
1658
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</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>
|
|
1659
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(op1))</div>
|
|
1660
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  {</div>
|
|
1661
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1662
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &lhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op0], &rhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[op1];</div>
|
|
1663
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
1664
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
1665
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  {</div>
|
|
1666
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
1667
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
1668
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
1669
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  resVal = (lhs == rhs);</div>
|
|
1670
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keywordflow">break</span>;</div>
|
|
1671
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
1672
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
1673
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
1674
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  resVal = (lhs != rhs);</div>
|
|
1675
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">break</span>;</div>
|
|
1676
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
1677
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
1678
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
1679
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
1680
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  resVal = (lhs > rhs);</div>
|
|
1681
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">break</span>;</div>
|
|
1682
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
1683
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
1684
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
1685
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
1686
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  resVal = (lhs >= rhs);</div>
|
|
1687
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">break</span>;</div>
|
|
1688
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
1689
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
1690
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
1691
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
1692
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  resVal = (lhs < rhs);</div>
|
|
1693
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keywordflow">break</span>;</div>
|
|
1694
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
1695
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
1696
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
1697
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
1698
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  resVal = (lhs <= rhs);</div>
|
|
1699
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">break</span>;</div>
|
|
1700
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
1701
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
1702
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">break</span>;</div>
|
|
1703
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
1704
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
1705
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">break</span>;</div>
|
|
1706
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">default</span>:</div>
|
|
1707
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  {</div>
|
|
1708
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
1709
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  }</div>
|
|
1710
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div>
|
|
1711
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1712
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  }</div>
|
|
1713
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(op1))</div>
|
|
1714
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  {</div>
|
|
1715
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1716
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &lhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(op0), &rhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(op1);</div>
|
|
1717
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  assert(!lhs.empty() && !rhs.empty() && <span class="stringliteral">"empty address?"</span>);</div>
|
|
1718
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
1719
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
1720
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  {</div>
|
|
1721
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
1722
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
1723
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
1724
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  {</div>
|
|
1725
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1726
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  {</div>
|
|
1727
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.equals(rhs));</div>
|
|
1728
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div>
|
|
1729
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">else</span></div>
|
|
1730
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  {</div>
|
|
1731
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keywordflow">if</span> (lhs.hasIntersect(rhs))</div>
|
|
1732
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  {</div>
|
|
1733
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1734
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  }</div>
|
|
1735
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keywordflow">else</span></div>
|
|
1736
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  {</div>
|
|
1737
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
1738
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div>
|
|
1739
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  }</div>
|
|
1740
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">break</span>;</div>
|
|
1741
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  }</div>
|
|
1742
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
1743
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
1744
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
1745
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  {</div>
|
|
1746
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1747
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  {</div>
|
|
1748
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.equals(rhs));</div>
|
|
1749
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  }</div>
|
|
1750
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">else</span></div>
|
|
1751
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  {</div>
|
|
1752
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <span class="keywordflow">if</span> (lhs.hasIntersect(rhs))</div>
|
|
1753
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  {</div>
|
|
1754
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1755
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  }</div>
|
|
1756
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  <span class="keywordflow">else</span></div>
|
|
1757
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  {</div>
|
|
1758
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
|
|
1759
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  }</div>
|
|
1760
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div>
|
|
1761
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">break</span>;</div>
|
|
1762
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div>
|
|
1763
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
1764
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
1765
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
1766
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
1767
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  {</div>
|
|
1768
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1769
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  {</div>
|
|
1770
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() > *rhs.begin());</div>
|
|
1771
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  }</div>
|
|
1772
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordflow">else</span></div>
|
|
1773
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  {</div>
|
|
1774
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1775
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div>
|
|
1776
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="keywordflow">break</span>;</div>
|
|
1777
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div>
|
|
1778
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
1779
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
1780
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
1781
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
1782
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  {</div>
|
|
1783
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1784
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div>
|
|
1785
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() >= *rhs.begin());</div>
|
|
1786
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  }</div>
|
|
1787
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">else</span></div>
|
|
1788
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  {</div>
|
|
1789
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1790
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  }</div>
|
|
1791
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">break</span>;</div>
|
|
1792
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  }</div>
|
|
1793
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
1794
|
+
<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#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
1795
|
+
<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#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
1796
|
+
<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#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
1797
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  {</div>
|
|
1798
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1799
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  {</div>
|
|
1800
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() < *rhs.begin());</div>
|
|
1801
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  }</div>
|
|
1802
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">else</span></div>
|
|
1803
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  {</div>
|
|
1804
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1805
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div>
|
|
1806
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">break</span>;</div>
|
|
1807
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  }</div>
|
|
1808
|
+
<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#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
1809
|
+
<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#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
1810
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
1811
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
1812
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  {</div>
|
|
1813
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1814
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  {</div>
|
|
1815
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() <= *rhs.begin());</div>
|
|
1816
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  }</div>
|
|
1817
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">else</span></div>
|
|
1818
|
+
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  {</div>
|
|
1819
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1820
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  }</div>
|
|
1821
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">break</span>;</div>
|
|
1822
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div>
|
|
1823
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
1824
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
1825
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">break</span>;</div>
|
|
1826
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
1827
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
1828
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">break</span>;</div>
|
|
1829
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">default</span>:</div>
|
|
1830
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  {</div>
|
|
1831
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
1832
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  }</div>
|
|
1833
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  }</div>
|
|
1834
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1835
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div>
|
|
1836
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> }</div>
|
|
1821
1837
|
</div><!-- fragment -->
|
|
1822
1838
|
</div>
|
|
1823
1839
|
</div>
|
|
@@ -1914,27 +1930,27 @@ Private Attributes</h2></td></tr>
|
|
|
1914
1930
|
</table>
|
|
1915
1931
|
</div><div class="memdoc">
|
|
1916
1932
|
|
|
1917
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1918
|
-
<div class="fragment"><div class="line"><a name="
|
|
1919
|
-
<div class="line"><a name="
|
|
1920
|
-
<div class="line"><a name="
|
|
1921
|
-
<div class="line"><a name="
|
|
1922
|
-
<div class="line"><a name="
|
|
1923
|
-
<div class="line"><a name="
|
|
1924
|
-
<div class="line"><a name="
|
|
1925
|
-
<div class="line"><a name="
|
|
1926
|
-
<div class="line"><a name="
|
|
1927
|
-
<div class="line"><a name="
|
|
1928
|
-
<div class="line"><a name="
|
|
1929
|
-
<div class="line"><a name="
|
|
1930
|
-
<div class="line"><a name="
|
|
1931
|
-
<div class="line"><a name="
|
|
1932
|
-
<div class="line"><a name="
|
|
1933
|
-
<div class="line"><a name="
|
|
1934
|
-
<div class="line"><a name="
|
|
1935
|
-
<div class="line"><a name="
|
|
1936
|
-
<div class="line"><a name="
|
|
1937
|
-
<div class="line"><a name="
|
|
1933
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00831">831</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1934
|
+
<div class="fragment"><div class="line"><a name="l00832"></a><span class="lineno"> 832</span> {</div>
|
|
1935
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVarID();</div>
|
|
1936
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVarID();</div>
|
|
1937
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->isBlkPtr(lhs))</div>
|
|
1938
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  {</div>
|
|
1939
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1940
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  }</div>
|
|
1941
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">else</span></div>
|
|
1942
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  {</div>
|
|
1943
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
|
|
1944
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  {</div>
|
|
1945
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs];</div>
|
|
1946
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  }</div>
|
|
1947
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1948
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  {</div>
|
|
1949
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
|
|
1950
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
|
|
1951
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  }</div>
|
|
1952
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  }</div>
|
|
1953
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span> }</div>
|
|
1938
1954
|
</div><!-- fragment -->
|
|
1939
1955
|
</div>
|
|
1940
1956
|
</div>
|
|
@@ -1987,37 +2003,37 @@ Private Attributes</h2></td></tr>
|
|
|
1987
2003
|
</table>
|
|
1988
2004
|
</div><div class="memdoc">
|
|
1989
2005
|
|
|
1990
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1991
|
-
<div class="fragment"><div class="line"><a name="
|
|
1992
|
-
<div class="line"><a name="
|
|
1993
|
-
<div class="line"><a name="
|
|
1994
|
-
<div class="line"><a name="
|
|
1995
|
-
<div class="line"><a name="
|
|
1996
|
-
<div class="line"><a name="
|
|
1997
|
-
<div class="line"><a name="
|
|
1998
|
-
<div class="line"><a name="
|
|
1999
|
-
<div class="line"><a name="
|
|
2000
|
-
<div class="line"><a name="
|
|
2001
|
-
<div class="line"><a name="
|
|
2002
|
-
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">return</span>;</div>
|
|
2003
|
-
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  }</div>
|
|
2004
|
-
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordflow">else</span></div>
|
|
2005
|
-
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  {</div>
|
|
2006
|
-
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> gepAddrs;</div>
|
|
2007
|
-
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> ub = offsetPair.second;</div>
|
|
2008
|
-
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordflow">if</span> (offsetPair.second > (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1)</div>
|
|
2009
|
-
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  {</div>
|
|
2010
|
-
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  ub = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
|
|
2011
|
-
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div>
|
|
2012
|
-
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = offsetPair.first; i <= ub; i++)</div>
|
|
2013
|
-
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  {</div>
|
|
2014
|
-
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  gepAddrs.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a3d135e0c48ec2bbe2fef524405fcb8b0">getGepObjAddress</a>(rhs, i));</div>
|
|
2015
|
-
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  }</div>
|
|
2016
|
-
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keywordflow">if</span>(gepAddrs.empty()) <span class="keywordflow">return</span>;</div>
|
|
2017
|
-
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = gepAddrs;</div>
|
|
2006
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00853">853</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2007
|
+
<div class="fragment"><div class="line"><a name="l00854"></a><span class="lineno"> 854</span> {</div>
|
|
2008
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</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>
|
|
2009
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</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>
|
|
2010
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs)) <span class="keywordflow">return</span>;</div>
|
|
2011
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
|
|
2012
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &rhsVal = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
|
|
2013
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="keywordflow">if</span> (rhsVal.empty()) <span class="keywordflow">return</span>;</div>
|
|
2014
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  std::pair<APOffset, APOffset> offsetPair = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">getGepOffset</a>(gep);</div>
|
|
2015
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">if</span> (offsetPair.first == -1 && offsetPair.second == -1) <span class="keywordflow">return</span>;</div>
|
|
2016
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae48cc31474d2c1cbc581b8f7ed433a14">isVirtualMemAddress</a>(*rhsVal.begin()))</div>
|
|
2017
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  {</div>
|
|
2018
2018
|
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">return</span>;</div>
|
|
2019
2019
|
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  }</div>
|
|
2020
|
-
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> 
|
|
2020
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <span class="keywordflow">else</span></div>
|
|
2021
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  {</div>
|
|
2022
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> gepAddrs;</div>
|
|
2023
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.second;</div>
|
|
2024
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keywordflow">if</span> (offsetPair.second > <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1)</div>
|
|
2025
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  {</div>
|
|
2026
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  ub = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
|
|
2027
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  }</div>
|
|
2028
|
+
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = offsetPair.first; i <= ub; i++)</div>
|
|
2029
|
+
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  {</div>
|
|
2030
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  gepAddrs.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">getGepObjAddress</a>(rhs, i));</div>
|
|
2031
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  }</div>
|
|
2032
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">if</span>(gepAddrs.empty()) <span class="keywordflow">return</span>;</div>
|
|
2033
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = gepAddrs;</div>
|
|
2034
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">return</span>;</div>
|
|
2035
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  }</div>
|
|
2036
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span> }</div>
|
|
2021
2037
|
</div><!-- fragment -->
|
|
2022
2038
|
</div>
|
|
2023
2039
|
</div>
|
|
@@ -2037,51 +2053,51 @@ Private Attributes</h2></td></tr>
|
|
|
2037
2053
|
</table>
|
|
2038
2054
|
</div><div class="memdoc">
|
|
2039
2055
|
|
|
2040
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2041
|
-
<div class="fragment"><div class="line"><a name="
|
|
2042
|
-
<div class="line"><a name="
|
|
2043
|
-
<div class="line"><a name="
|
|
2044
|
-
<div class="line"><a name="
|
|
2045
|
-
<div class="line"><a name="
|
|
2046
|
-
<div class="line"><a name="
|
|
2047
|
-
<div class="line"><a name="
|
|
2048
|
-
<div class="line"><a name="
|
|
2049
|
-
<div class="line"><a name="
|
|
2050
|
-
<div class="line"><a name="
|
|
2051
|
-
<div class="line"><a name="
|
|
2052
|
-
<div class="line"><a name="
|
|
2053
|
-
<div class="line"><a name="
|
|
2054
|
-
<div class="line"><a name="
|
|
2055
|
-
<div class="line"><a name="
|
|
2056
|
-
<div class="line"><a name="
|
|
2057
|
-
<div class="line"><a name="
|
|
2058
|
-
<div class="line"><a name="
|
|
2059
|
-
<div class="line"><a name="
|
|
2060
|
-
<div class="line"><a name="
|
|
2061
|
-
<div class="line"><a name="
|
|
2062
|
-
<div class="line"><a name="
|
|
2063
|
-
<div class="line"><a name="
|
|
2064
|
-
<div class="line"><a name="
|
|
2065
|
-
<div class="line"><a name="
|
|
2066
|
-
<div class="line"><a name="
|
|
2067
|
-
<div class="line"><a name="
|
|
2068
|
-
<div class="line"><a name="
|
|
2069
|
-
<div class="line"><a name="
|
|
2070
|
-
<div class="line"><a name="
|
|
2071
|
-
<div class="line"><a name="
|
|
2072
|
-
<div class="line"><a name="
|
|
2073
|
-
<div class="line"><a name="
|
|
2074
|
-
<div class="line"><a name="
|
|
2075
|
-
<div class="line"><a name="
|
|
2076
|
-
<div class="line"><a name="
|
|
2077
|
-
<div class="line"><a name="
|
|
2078
|
-
<div class="line"><a name="
|
|
2079
|
-
<div class="line"><a name="
|
|
2080
|
-
<div class="line"><a name="
|
|
2081
|
-
<div class="line"><a name="
|
|
2082
|
-
<div class="line"><a name="
|
|
2083
|
-
<div class="line"><a name="
|
|
2084
|
-
<div class="line"><a name="
|
|
2056
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00756">756</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2057
|
+
<div class="fragment"><div class="line"><a name="l00757"></a><span class="lineno"> 757</span> {</div>
|
|
2058
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</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>
|
|
2059
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</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>
|
|
2060
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2061
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  {</div>
|
|
2062
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
|
|
2063
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  assert(!addrs.empty());</div>
|
|
2064
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2065
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  {</div>
|
|
2066
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr);</div>
|
|
2067
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab5eebce09b695a3ea1a1c6d5641296e2">inLocToIValTable</a>(objId))</div>
|
|
2068
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
2069
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">inLocToAddrsTable</a>(objId))</div>
|
|
2070
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs).<a class="code" href="classSVF_1_1AddressValue.html#a77d6a1706328d86b210b26bacaf2fa9f">setBottom</a>();</div>
|
|
2071
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordflow">break</span>;</div>
|
|
2072
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  }</div>
|
|
2073
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2074
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  {</div>
|
|
2075
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr);</div>
|
|
2076
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab5eebce09b695a3ea1a1c6d5641296e2">inLocToIValTable</a>(objId))</div>
|
|
2077
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  {</div>
|
|
2078
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(lhs))</div>
|
|
2079
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  {</div>
|
|
2080
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ae28249f952e1aa620b23e946a1f209ab">load</a>(addr);</div>
|
|
2081
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div>
|
|
2082
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">else</span></div>
|
|
2083
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  {</div>
|
|
2084
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs].join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ae28249f952e1aa620b23e946a1f209ab">load</a>(addr));</div>
|
|
2085
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  }</div>
|
|
2086
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  }</div>
|
|
2087
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">inLocToAddrsTable</a>(objId))</div>
|
|
2088
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  {</div>
|
|
2089
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(lhs))</div>
|
|
2090
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  {</div>
|
|
2091
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#aa9bf42bd6ea06a7e61171244461eb066">loadVAddrs</a>(addr);</div>
|
|
2092
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div>
|
|
2093
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="keywordflow">else</span></div>
|
|
2094
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  {</div>
|
|
2095
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#aa9bf42bd6ea06a7e61171244461eb066">loadVAddrs</a>(addr));</div>
|
|
2096
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  }</div>
|
|
2097
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  }</div>
|
|
2098
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div>
|
|
2099
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  }</div>
|
|
2100
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span> }</div>
|
|
2085
2101
|
</div><!-- fragment -->
|
|
2086
2102
|
</div>
|
|
2087
2103
|
</div>
|
|
@@ -2134,39 +2150,39 @@ Private Attributes</h2></td></tr>
|
|
|
2134
2150
|
</table>
|
|
2135
2151
|
</div><div class="memdoc">
|
|
2136
2152
|
|
|
2137
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2138
|
-
<div class="fragment"><div class="line"><a name="
|
|
2139
|
-
<div class="line"><a name="
|
|
2140
|
-
<div class="line"><a name="
|
|
2141
|
-
<div class="line"><a name="
|
|
2142
|
-
<div class="line"><a name="
|
|
2143
|
-
<div class="line"><a name="
|
|
2144
|
-
<div class="line"><a name="
|
|
2145
|
-
<div class="line"><a name="
|
|
2146
|
-
<div class="line"><a name="
|
|
2147
|
-
<div class="line"><a name="
|
|
2148
|
-
<div class="line"><a name="
|
|
2149
|
-
<div class="line"><a name="
|
|
2150
|
-
<div class="line"><a name="
|
|
2151
|
-
<div class="line"><a name="
|
|
2152
|
-
<div class="line"><a name="
|
|
2153
|
-
<div class="line"><a name="
|
|
2154
|
-
<div class="line"><a name="
|
|
2155
|
-
<div class="line"><a name="
|
|
2156
|
-
<div class="line"><a name="
|
|
2157
|
-
<div class="line"><a name="
|
|
2158
|
-
<div class="line"><a name="
|
|
2159
|
-
<div class="line"><a name="
|
|
2160
|
-
<div class="line"><a name="
|
|
2161
|
-
<div class="line"><a name="
|
|
2162
|
-
<div class="line"><a name="
|
|
2163
|
-
<div class="line"><a name="
|
|
2164
|
-
<div class="line"><a name="
|
|
2165
|
-
<div class="line"><a name="
|
|
2166
|
-
<div class="line"><a name="
|
|
2167
|
-
<div class="line"><a name="
|
|
2168
|
-
<div class="line"><a name="
|
|
2169
|
-
<div class="line"><a name="
|
|
2153
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00913">913</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2154
|
+
<div class="fragment"><div class="line"><a name="l00914"></a><span class="lineno"> 914</span> {</div>
|
|
2155
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</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>
|
|
2156
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</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>
|
|
2157
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  {</div>
|
|
2158
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</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>
|
|
2159
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(curId))</div>
|
|
2160
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  {</div>
|
|
2161
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &cur = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[curId];</div>
|
|
2162
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(res))</div>
|
|
2163
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  {</div>
|
|
2164
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = cur;</div>
|
|
2165
|
+
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  }</div>
|
|
2166
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="keywordflow">else</span></div>
|
|
2167
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  {</div>
|
|
2168
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res].join_with(cur);</div>
|
|
2169
|
+
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  }</div>
|
|
2170
|
+
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  }</div>
|
|
2171
|
+
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(curId))</div>
|
|
2172
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  {</div>
|
|
2173
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(curId).empty());</div>
|
|
2174
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &cur = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(curId);</div>
|
|
2175
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(res))</div>
|
|
2176
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  {</div>
|
|
2177
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(res) = cur;</div>
|
|
2178
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  }</div>
|
|
2179
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">else</span></div>
|
|
2180
|
+
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  {</div>
|
|
2181
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(res).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(cur);</div>
|
|
2182
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  }</div>
|
|
2183
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div>
|
|
2184
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  }</div>
|
|
2185
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> }</div>
|
|
2170
2186
|
</div><!-- fragment -->
|
|
2171
2187
|
</div>
|
|
2172
2188
|
</div>
|
|
@@ -2255,20 +2271,20 @@ Private Attributes</h2></td></tr>
|
|
|
2255
2271
|
</table>
|
|
2256
2272
|
</div><div class="memdoc">
|
|
2257
2273
|
|
|
2258
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2259
|
-
<div class="fragment"><div class="line"><a name="
|
|
2260
|
-
<div class="line"><a name="
|
|
2261
|
-
<div class="line"><a name="
|
|
2262
|
-
<div class="line"><a name="
|
|
2263
|
-
<div class="line"><a name="
|
|
2264
|
-
<div class="line"><a name="
|
|
2265
|
-
<div class="line"><a name="
|
|
2266
|
-
<div class="line"><a name="
|
|
2267
|
-
<div class="line"><a name="
|
|
2268
|
-
<div class="line"><a name="
|
|
2269
|
-
<div class="line"><a name="
|
|
2270
|
-
<div class="line"><a name="
|
|
2271
|
-
<div class="line"><a name="
|
|
2274
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00963">963</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2275
|
+
<div class="fragment"><div class="line"><a name="l00964"></a><span class="lineno"> 964</span> {</div>
|
|
2276
|
+
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
2277
|
+
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
2278
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
|
|
2279
|
+
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  {</div>
|
|
2280
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs];</div>
|
|
2281
|
+
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div>
|
|
2282
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2283
|
+
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  {</div>
|
|
2284
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
|
|
2285
|
+
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
|
|
2286
|
+
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  }</div>
|
|
2287
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span> }</div>
|
|
2272
2288
|
</div><!-- fragment -->
|
|
2273
2289
|
</div>
|
|
2274
2290
|
</div>
|
|
@@ -2321,33 +2337,33 @@ Private Attributes</h2></td></tr>
|
|
|
2321
2337
|
</table>
|
|
2322
2338
|
</div><div class="memdoc">
|
|
2323
2339
|
|
|
2324
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2325
|
-
<div class="fragment"><div class="line"><a name="
|
|
2326
|
-
<div class="line"><a name="
|
|
2327
|
-
<div class="line"><a name="
|
|
2328
|
-
<div class="line"><a name="
|
|
2329
|
-
<div class="line"><a name="
|
|
2330
|
-
<div class="line"><a name="
|
|
2331
|
-
<div class="line"><a name="
|
|
2332
|
-
<div class="line"><a name="
|
|
2333
|
-
<div class="line"><a name="
|
|
2334
|
-
<div class="line"><a name="
|
|
2335
|
-
<div class="line"><a name="
|
|
2336
|
-
<div class="line"><a name="
|
|
2337
|
-
<div class="line"><a name="
|
|
2338
|
-
<div class="line"><a name="
|
|
2339
|
-
<div class="line"><a name="
|
|
2340
|
-
<div class="line"><a name="
|
|
2341
|
-
<div class="line"><a name="
|
|
2342
|
-
<div class="line"><a name="
|
|
2343
|
-
<div class="line"><a name="
|
|
2344
|
-
<div class="line"><a name="
|
|
2345
|
-
<div class="line"><a name="
|
|
2346
|
-
<div class="line"><a name="
|
|
2347
|
-
<div class="line"><a name="
|
|
2348
|
-
<div class="line"><a name="
|
|
2349
|
-
<div class="line"><a name="
|
|
2350
|
-
<div class="line"><a name="
|
|
2340
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00885">885</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2341
|
+
<div class="fragment"><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> {</div>
|
|
2342
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</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>
|
|
2343
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</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>
|
|
2344
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</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>
|
|
2345
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</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>
|
|
2346
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(tval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(fval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(cond))</div>
|
|
2347
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  {</div>
|
|
2348
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_numeral())</div>
|
|
2349
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  {</div>
|
|
2350
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_zero() ? <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[fval] : <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[tval];</div>
|
|
2351
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  }</div>
|
|
2352
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">else</span></div>
|
|
2353
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  {</div>
|
|
2354
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond];</div>
|
|
2355
|
+
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  }</div>
|
|
2356
|
+
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  }</div>
|
|
2357
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(tval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(fval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(cond))</div>
|
|
2358
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  {</div>
|
|
2359
|
+
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_numeral())</div>
|
|
2360
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  {</div>
|
|
2361
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(fval).empty());</div>
|
|
2362
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(tval).empty());</div>
|
|
2363
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(res) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_zero() ? <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(fval) : <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(tval);</div>
|
|
2364
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  }</div>
|
|
2365
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div>
|
|
2366
|
+
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span> }</div>
|
|
2351
2367
|
</div><!-- fragment -->
|
|
2352
2368
|
</div>
|
|
2353
2369
|
</div>
|
|
@@ -2409,34 +2425,34 @@ Private Attributes</h2></td></tr>
|
|
|
2409
2425
|
</table>
|
|
2410
2426
|
</div><div class="memdoc">
|
|
2411
2427
|
|
|
2412
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2413
|
-
<div class="fragment"><div class="line"><a name="
|
|
2414
|
-
<div class="line"><a name="
|
|
2415
|
-
<div class="line"><a name="
|
|
2416
|
-
<div class="line"><a name="
|
|
2417
|
-
<div class="line"><a name="
|
|
2418
|
-
<div class="line"><a name="
|
|
2419
|
-
<div class="line"><a name="
|
|
2420
|
-
<div class="line"><a name="
|
|
2421
|
-
<div class="line"><a name="
|
|
2422
|
-
<div class="line"><a name="
|
|
2423
|
-
<div class="line"><a name="
|
|
2424
|
-
<div class="line"><a name="
|
|
2425
|
-
<div class="line"><a name="
|
|
2426
|
-
<div class="line"><a name="
|
|
2427
|
-
<div class="line"><a name="
|
|
2428
|
-
<div class="line"><a name="
|
|
2429
|
-
<div class="line"><a name="
|
|
2430
|
-
<div class="line"><a name="
|
|
2431
|
-
<div class="line"><a name="
|
|
2432
|
-
<div class="line"><a name="
|
|
2433
|
-
<div class="line"><a name="
|
|
2434
|
-
<div class="line"><a name="
|
|
2435
|
-
<div class="line"><a name="
|
|
2436
|
-
<div class="line"><a name="
|
|
2437
|
-
<div class="line"><a name="
|
|
2438
|
-
<div class="line"><a name="
|
|
2439
|
-
<div class="line"><a name="
|
|
2428
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00802">802</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2429
|
+
<div class="fragment"><div class="line"><a name="l00803"></a><span class="lineno"> 803</span> {</div>
|
|
2430
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</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>
|
|
2431
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</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>
|
|
2432
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(lhs))</div>
|
|
2433
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  {</div>
|
|
2434
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
|
|
2435
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  {</div>
|
|
2436
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(lhs).empty());</div>
|
|
2437
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(lhs);</div>
|
|
2438
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2439
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  {</div>
|
|
2440
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a65be64fc3b46b3d8e0c22d8a478df5cb">store</a>(addr, <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[rhs]);</div>
|
|
2441
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  }</div>
|
|
2442
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div>
|
|
2443
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2444
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div>
|
|
2445
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(lhs).empty());</div>
|
|
2446
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(lhs);</div>
|
|
2447
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2448
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  {</div>
|
|
2449
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
|
|
2450
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#aad0556739ce5b173054c81cbbfff4b72">storeVAddrs</a>(addr, <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs));</div>
|
|
2451
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  }</div>
|
|
2452
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  </div>
|
|
2453
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  }</div>
|
|
2454
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  }</div>
|
|
2455
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> }</div>
|
|
2440
2456
|
</div><!-- fragment -->
|
|
2441
2457
|
</div>
|
|
2442
2458
|
</div>
|
|
@@ -2514,7 +2530,7 @@ Private Attributes</h2></td></tr>
|
|
|
2514
2530
|
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div>
|
|
2515
2531
|
<div class="line"><a name="l00094"></a><span class="lineno"> 94</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>
|
|
2516
2532
|
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {</div>
|
|
2517
|
-
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  lhsIter->second.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
2533
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  lhsIter->second.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">getGepObjAddress</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr), i));</div>
|
|
2518
2534
|
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
|
|
2519
2535
|
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div>
|
|
2520
2536
|
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div>
|
|
@@ -2531,7 +2547,7 @@ Private Attributes</h2></td></tr>
|
|
|
2531
2547
|
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div>
|
|
2532
2548
|
<div class="line"><a name="l00111"></a><span class="lineno"> 111</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>
|
|
2533
2549
|
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  {</div>
|
|
2534
|
-
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  lhsIter->second.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#
|
|
2550
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  lhsIter->second.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">getGepObjAddress</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr), i));</div>
|
|
2535
2551
|
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div>
|
|
2536
2552
|
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
|
|
2537
2553
|
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div>
|
|
@@ -2668,9 +2684,9 @@ Private Attributes</h2></td></tr>
|
|
|
2668
2684
|
<li>/home/runner/work/SVF/SVF/svf/lib/AbstractExecution/<a class="el" href="SVFIR2Relation_8cpp_source.html">SVFIR2Relation.cpp</a></li>
|
|
2669
2685
|
</ul>
|
|
2670
2686
|
</div><!-- contents -->
|
|
2687
|
+
<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="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
|
|
2671
2688
|
<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#l00902">SVFStatements.h:902</a></div></div>
|
|
2672
2689
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVF::SVFType::SVFArrayTy</a></div><div class="ttdeci">@ SVFArrayTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00257">SVFType.h:257</a></div></div>
|
|
2673
|
-
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a221061ec858e5c51b222164a6c4f8152"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a221061ec858e5c51b222164a6c4f8152">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">int64_t getNumeral() const</div><div class="ttdoc">Return Numeral.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00120">NumericLiteral.h:120</a></div></div>
|
|
2674
2690
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_a77d6a1706328d86b210b26bacaf2fa9f"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a77d6a1706328d86b210b26bacaf2fa9f">SVF::AddressValue::setBottom</a></div><div class="ttdeci">void setBottom()</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00197">AddressValue.h:197</a></div></div>
|
|
2675
2691
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae48cc31474d2c1cbc581b8f7ed433a14"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae48cc31474d2c1cbc581b8f7ed433a14">SVF::SVFIR2ItvExeState::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00174">SVFIR2ItvExeState.h:174</a></div></div>
|
|
2676
2692
|
<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#l00983">SVFStatements.h:983</a></div></div>
|
|
@@ -2682,6 +2698,7 @@ Private Attributes</h2></td></tr>
|
|
|
2682
2698
|
<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#l00861">SVFStatements.h:861</a></div></div>
|
|
2683
2699
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a2b6de5a37851f83ed3fa8f69145148a8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">SVF::SVFIR2ItvExeState::VAddrs</a></div><div class="ttdeci">ExeState::VAddrs VAddrs</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00044">SVFIR2ItvExeState.h:44</a></div></div>
|
|
2684
2700
|
<div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00332">SVFType.h:332</a></div></div>
|
|
2701
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed7fc3951608972b6f8fdce14b4a0cbb"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVF::SVFIR2ItvExeState::getIndexfromGepTypePair</a></div><div class="ttdeci">std::pair< APOffset, APOffset > getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair &gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the Index offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00243">SVFIR2ItvExeState.cpp:243</a></div></div>
|
|
2685
2702
|
<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>
|
|
2686
2703
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html_acad5216bdc02a234d57abfe9ae72a12a"><div class="ttname"><a href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">SVF::AddressValue::join_with</a></div><div class="ttdeci">bool join_with(const AddressValue &other)</div><div class="ttdoc">Current AddressValue joins with another AddressValue.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00139">AddressValue.h:139</a></div></div>
|
|
2687
2704
|
<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#l00888">SVFStatements.h:888</a></div></div>
|
|
@@ -2710,6 +2727,7 @@ Private Attributes</h2></td></tr>
|
|
|
2710
2727
|
<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#l00978">SVFStatements.h:978</a></div></div>
|
|
2711
2728
|
<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#l00980">SVFStatements.h:980</a></div></div>
|
|
2712
2729
|
<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#l00890">SVFStatements.h:890</a></div></div>
|
|
2730
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a67532bdc1e4a49cf4d9da4b99b38e69a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">VAddrs 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="SVFIR2ItvExeState_8cpp_source.html#l00155">SVFIR2ItvExeState.cpp:155</a></div></div>
|
|
2713
2731
|
<div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
|
|
2714
2732
|
<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#l00913">SVFStatements.h:913</a></div></div>
|
|
2715
2733
|
<div class="ttc" id="aclassSVF_1_1ExeState_html_adb724bd1c3154368c629f4972c503d72"><div class="ttname"><a href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">SVF::ExeState::_locToVAddrs</a></div><div class="ttdeci">VarToVAddrs _locToVAddrs</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00173">ExeState.h:173</a></div></div>
|
|
@@ -2725,7 +2743,9 @@ Private Attributes</h2></td></tr>
|
|
|
2725
2743
|
<div class="ttc" id="aclassSVF_1_1Z3Expr_html"><div class="ttname"><a href="classSVF_1_1Z3Expr.html">SVF::Z3Expr</a></div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00038">Z3Expr.h:38</a></div></div>
|
|
2726
2744
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flattened element idx of an array or struct by considering stride.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00181">SymbolTableInfo.cpp:181</a></div></div>
|
|
2727
2745
|
<div class="ttc" id="aclassSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00298">SVFStatements.h:298</a></div></div>
|
|
2746
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afed2852aec6793e1943f97ed39dd8d2b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVF::SVFIR2ItvExeState::getGepOffset</a></div><div class="ttdeci">std::pair< APOffset, APOffset > getGepOffset(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00352">SVFIR2ItvExeState.cpp:352</a></div></div>
|
|
2728
2747
|
<div class="ttc" id="aclassSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00262">SVFVariables.h:262</a></div></div>
|
|
2748
|
+
<div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00120">NumericLiteral.h:120</a></div></div>
|
|
2729
2749
|
<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#l00901">SVFStatements.h:901</a></div></div>
|
|
2730
2750
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a66c426719f583653cb70189f01d6fda5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">SVF::SVFIR2ItvExeState::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00162">SVFIR2ItvExeState.h:162</a></div></div>
|
|
2731
2751
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a39dead4fe213e3d02b1613debbc86e71"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a39dead4fe213e3d02b1613debbc86e71">SVF::IntervalExeState::_locToItvVal</a></div><div class="ttdeci">LocToValMap _locToItvVal</div><div class="ttdoc">key: nodeID value: Domain Value</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00070">IntervalExeState.h:70</a></div></div>
|
|
@@ -2742,14 +2762,12 @@ Private Attributes</h2></td></tr>
|
|
|
2742
2762
|
<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#l00853">SVFStatements.h:853</a></div></div>
|
|
2743
2763
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_ac72e3ae77e06e0dfc7c2edd2bf765d77"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">SVF::IntervalExeState::_varToItvVal</a></div><div class="ttdeci">VarToValMap _varToItvVal</div><div class="ttdoc">key: nodeID value: Domain Value</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00068">IntervalExeState.h:68</a></div></div>
|
|
2744
2764
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVF::SVFType::SVFFunctionTy</a></div><div class="ttdeci">@ SVFFunctionTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00255">SVFType.h:255</a></div></div>
|
|
2745
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a26a8068c25c7bea40b311f120d917cbb"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a26a8068c25c7bea40b311f120d917cbb">SVF::SVFIR2ItvExeState::getBytefromGepTypePair</a></div><div class="ttdeci">std::pair< s32_t, s32_t > getBytefromGepTypePair(const AccessPath::VarAndGepTypePair &gep_pair, const GepStmt *gep, s32_t elem_bytesize)</div><div class="ttdoc">Return the byte offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00176">SVFIR2ItvExeState.cpp:176</a></div></div>
|
|
2746
2765
|
<div class="ttc" id="aclassSVF_1_1GepStmt_html_afe5ae814b71b59fc03bd672d62a5fab7"><div class="ttname"><a href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">SVF::GepStmt::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">Field index of the gep statement if it access the field of a struct.</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00519">SVFStatements.h:519</a></div></div>
|
|
2747
2766
|
<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#l00912">SVFStatements.h:912</a></div></div>
|
|
2748
2767
|
<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#l00928">SVFValue.h:928</a></div></div>
|
|
2749
2768
|
<div class="ttc" id="aclassSVF_1_1SVFConstantFP_html"><div class="ttname"><a href="classSVF_1_1SVFConstantFP.html">SVF::SVFConstantFP</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00962">SVFValue.h:962</a></div></div>
|
|
2750
2769
|
<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#l00976">SVFStatements.h:976</a></div></div>
|
|
2751
2770
|
<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#l00225">IntervalValue.h:225</a></div></div>
|
|
2752
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a6c4dfdb5a6cee8ea3479606b917ef9e9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a6c4dfdb5a6cee8ea3479606b917ef9e9">SVF::SVFIR2ItvExeState::getGepOffset</a></div><div class="ttdeci">std::pair< s32_t, s32_t > getGepOffset(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00332">SVFIR2ItvExeState.cpp:332</a></div></div>
|
|
2753
2771
|
<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#l00897">SVFStatements.h:897</a></div></div>
|
|
2754
2772
|
<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#l00907">SVFStatements.h:907</a></div></div>
|
|
2755
2773
|
<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#l00894">SVFStatements.h:894</a></div></div>
|
|
@@ -2785,13 +2803,14 @@ Private Attributes</h2></td></tr>
|
|
|
2785
2803
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a884199a26d43d09bc7e33369fceb8274"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a884199a26d43d09bc7e33369fceb8274">SVF::IntervalExeState::inVarToIValTable</a></div><div class="ttdeci">bool inVarToIValTable(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00163">IntervalExeState.h:163</a></div></div>
|
|
2786
2804
|
<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#l00857">SVFStatements.h:857</a></div></div>
|
|
2787
2805
|
<div class="ttc" id="aclassSVF_1_1SVFIR_html_ae18425df0631aefca7dd4b799f6f524a"><div class="ttname"><a href="classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a">SVF::SVFIR::getGepObjVar</a></div><div class="ttdeci">NodeID getGepObjVar(const MemObj *obj, const APOffset &ap)</div><div class="ttdoc">Get a field SVFIR Object node according to base mem obj and offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8cpp_source.html#l00422">SVFIR.cpp:422</a></div></div>
|
|
2788
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::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="SVFIR2ItvExeState_8cpp_source.html#
|
|
2806
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::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="SVFIR2ItvExeState_8cpp_source.html#l00467">SVFIR2ItvExeState.cpp:467</a></div></div>
|
|
2789
2807
|
<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>
|
|
2790
2808
|
<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#l01015">SVFStatements.h:1015</a></div></div>
|
|
2791
2809
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ab6b5ed878ce12016424c48c6252a764e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">SVF::SVFIR2ItvExeState::_es</a></div><div class="ttdeci">IntervalExeState _es</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00201">SVFIR2ItvExeState.h:201</a></div></div>
|
|
2792
2810
|
<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>
|
|
2811
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a2f0fe665f2153115be84a143633b6b3b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">SVF::SVFIR2ItvExeState::getBytefromGepTypePair</a></div><div class="ttdeci">std::pair< APOffset, APOffset > getBytefromGepTypePair(const AccessPath::VarAndGepTypePair &gep_pair, const GepStmt *gep, APOffset elem_bytesize)</div><div class="ttdoc">Return the byte offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00176">SVFIR2ItvExeState.cpp:176</a></div></div>
|
|
2793
2812
|
<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>
|
|
2794
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::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="SVFIR2ItvExeState_8cpp_source.html#
|
|
2813
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::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="SVFIR2ItvExeState_8cpp_source.html#l00421">SVFIR2ItvExeState.cpp:421</a></div></div>
|
|
2795
2814
|
<div class="ttc" id="acJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
|
|
2796
2815
|
<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#l00979">SVFStatements.h:979</a></div></div>
|
|
2797
2816
|
<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>
|
|
@@ -2807,7 +2826,7 @@ Private Attributes</h2></td></tr>
|
|
|
2807
2826
|
<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#l00914">SVFStatements.h:914</a></div></div>
|
|
2808
2827
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a174523c405d7a7d7dbbcbaa43c335665"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">SVF::SVFIR2ItvExeState::inLocToAddrsTable</a></div><div class="ttdeci">bool inLocToAddrsTable(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00132">SVFIR2ItvExeState.h:132</a></div></div>
|
|
2809
2828
|
<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>
|
|
2810
|
-
<div class="ttc" id="
|
|
2829
|
+
<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="SVFType_8h_source.html#l00054">SVFType.h:54</a></div></div>
|
|
2811
2830
|
<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>
|
|
2812
2831
|
<div class="ttc" id="aclassSVF_1_1ExeState_html_a2f01e583abcdeb236a11e85c7a8aafdc"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2f01e583abcdeb236a11e85c7a8aafdc">SVF::ExeState::getVirtualMemAddress</a></div><div class="ttdeci">static u32_t getVirtualMemAddress(u32_t idx)</div><div class="ttdoc">The physical address starts with 0x7f...... + idx.</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00258">ExeState.h:258</a></div></div>
|
|
2813
2832
|
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html_a73f04bdfc19261b65164b98787bc2ed4"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">SVF::SVFConstantInt::getSExtValue</a></div><div class="ttdeci">s64_t getSExtValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00956">SVFValue.h:956</a></div></div>
|
|
@@ -2821,10 +2840,9 @@ Private Attributes</h2></td></tr>
|
|
|
2821
2840
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
2822
2841
|
<div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a36e15d9d95908b74fcf321e30a9cdebe"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">SVF::IntervalExeState::getVAddrs</a></div><div class="ttdeci">VAddrs & getVAddrs(u32_t id) override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00154">IntervalExeState.h:154</a></div></div>
|
|
2823
2842
|
<div class="ttc" id="aclassSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00515">SymbolTableInfo.cpp:515</a></div></div>
|
|
2824
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a3d135e0c48ec2bbe2fef524405fcb8b0"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a3d135e0c48ec2bbe2fef524405fcb8b0">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">VAddrs getGepObjAddress(u32_t pointer, s32_t 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="SVFIR2ItvExeState_8cpp_source.html#l00155">SVFIR2ItvExeState.cpp:155</a></div></div>
|
|
2825
2843
|
<div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">SVF::BinaryOPStmt::Add</a></div><div class="ttdeci">@ Add</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00972">SVFStatements.h:972</a></div></div>
|
|
2826
2844
|
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a999c358b80dd07591b0432eaa41c20c9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">SVF::SVFIR2ItvExeState::inVarToAddrsTable</a></div><div class="ttdeci">bool inVarToAddrsTable(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00127">SVFIR2ItvExeState.h:127</a></div></div>
|
|
2827
|
-
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a61d288c8dc621a0578faa5ff784f4b6e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVF::SVFIR2ItvExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, u32_t varId)</div><div class="ttdoc">Init ValVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2845
|
+
<div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a61d288c8dc621a0578faa5ff784f4b6e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVF::SVFIR2ItvExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, u32_t varId)</div><div class="ttdoc">Init ValVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00384">SVFIR2ItvExeState.cpp:384</a></div></div>
|
|
2828
2846
|
<!-- start footer part -->
|
|
2829
2847
|
<hr class="footer"/><address class="footer"><small>
|
|
2830
2848
|
Generated by  <a href="http://www.doxygen.org/index.html">
|