svf-tools 1.0.821 → 1.0.823
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/AccessPath_8cpp_source.html +130 -125
- package/SVF-doxygen/html/AccessPath_8h_source.html +5 -5
- package/SVF-doxygen/html/CFGrammar_8cpp_source.html +3 -3
- package/SVF-doxygen/html/CommandLine_8h_source.html +1 -1
- package/SVF-doxygen/html/ExtAPI_8cpp.html +1 -1
- package/SVF-doxygen/html/ExtAPI_8cpp_source.html +2 -2
- package/SVF-doxygen/html/SVFFileSystem_8cpp_source.html +1 -1
- package/SVF-doxygen/html/SVFG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +571 -567
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +14 -14
- package/SVF-doxygen/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/VFG_8cpp_source.html +4 -5
- package/SVF-doxygen/html/cJSON_8cpp.html +2 -2
- package/SVF-doxygen/html/cJSON_8cpp_source.html +2 -2
- package/SVF-doxygen/html/classOption.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +123 -118
- package/SVF-doxygen/html/classSVF_1_1ExtAPI.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1GrammarBase.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1SVFG.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +544 -540
- package/SVF-doxygen/html/classSVF_1_1SVFIRReader.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1VFG.html +4 -5
- package/SVF-doxygen/html/extapi_8c.html +527 -450
- package/SVF-doxygen/html/extapi_8c_source.html +1218 -1177
- package/SVF-doxygen/html/globals.html +1 -0
- package/SVF-doxygen/html/globals_func.html +1 -1
- package/SVF-doxygen/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/search/functions_0.js +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp.html +11 -11
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +11 -11
- package/package.json +1 -1
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -0
- package/svf/lib/Graphs/SVFG.cpp +4 -4
- package/svf/lib/Graphs/VFG.cpp +4 -4
- package/svf/lib/MemoryModel/AccessPath.cpp +5 -0
- package/svf-llvm/lib/extapi.c +61 -20
|
@@ -661,8 +661,12 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
661
661
|
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  res = res + <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(idxLb, idxUb);</div>
|
|
662
662
|
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div>
|
|
663
663
|
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  res.meet_with(<a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>((<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)0, (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()));</div>
|
|
664
|
-
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">
|
|
665
|
-
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> 
|
|
664
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keywordflow">if</span> (res.isBottom())</div>
|
|
665
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  {</div>
|
|
666
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  res = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
667
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  }</div>
|
|
668
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">return</span> res;</div>
|
|
669
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span> }</div>
|
|
666
670
|
</div><!-- fragment -->
|
|
667
671
|
</div>
|
|
668
672
|
</div>
|
|
@@ -847,36 +851,36 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
847
851
|
</dl>
|
|
848
852
|
<p>constant data</p>
|
|
849
853
|
|
|
850
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
851
|
-
<div class="fragment"><div class="line"><a name="
|
|
852
|
-
<div class="line"><a name="
|
|
853
|
-
<div class="line"><a name="
|
|
854
|
-
<div class="line"><a name="
|
|
855
|
-
<div class="line"><a name="
|
|
856
|
-
<div class="line"><a name="
|
|
857
|
-
<div class="line"><a name="
|
|
858
|
-
<div class="line"><a name="
|
|
859
|
-
<div class="line"><a name="
|
|
860
|
-
<div class="line"><a name="
|
|
861
|
-
<div class="line"><a name="
|
|
862
|
-
<div class="line"><a name="
|
|
863
|
-
<div class="line"><a name="
|
|
864
|
-
<div class="line"><a name="
|
|
865
|
-
<div class="line"><a name="
|
|
866
|
-
<div class="line"><a name="
|
|
867
|
-
<div class="line"><a name="
|
|
868
|
-
<div class="line"><a name="
|
|
869
|
-
<div class="line"><a name="
|
|
870
|
-
<div class="line"><a name="
|
|
871
|
-
<div class="line"><a name="
|
|
872
|
-
<div class="line"><a name="
|
|
873
|
-
<div class="line"><a name="
|
|
874
|
-
<div class="line"><a name="
|
|
875
|
-
<div class="line"><a name="
|
|
876
|
-
<div class="line"><a name="
|
|
877
|
-
<div class="line"><a name="
|
|
878
|
-
<div class="line"><a name="
|
|
879
|
-
<div class="line"><a name="
|
|
854
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00447">447</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
855
|
+
<div class="fragment"><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> {</div>
|
|
856
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  </div>
|
|
857
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordflow">if</span> (objVar-><a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
|
|
858
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  {</div>
|
|
859
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</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>
|
|
860
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</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>
|
|
861
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div>
|
|
862
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</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>
|
|
863
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  {</div>
|
|
864
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordtype">double</span> numeral = (double)consInt->getSExtValue();</div>
|
|
865
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</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>
|
|
866
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  }</div>
|
|
867
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</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>
|
|
868
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</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>
|
|
869
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</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>
|
|
870
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</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>
|
|
871
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</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>
|
|
872
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</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>
|
|
873
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</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>
|
|
874
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</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>
|
|
875
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">else</span></div>
|
|
876
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</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>
|
|
877
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div>
|
|
878
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keywordflow">else</span></div>
|
|
879
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</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>
|
|
880
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  }</div>
|
|
881
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">else</span></div>
|
|
882
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</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>
|
|
883
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span> }</div>
|
|
880
884
|
</div><!-- fragment -->
|
|
881
885
|
</div>
|
|
882
886
|
</div>
|
|
@@ -898,28 +902,28 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
898
902
|
|
|
899
903
|
<p>Init <a class="el" href="classSVF_1_1SVFVar.html">SVFVar</a>. </p>
|
|
900
904
|
|
|
901
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
902
|
-
<div class="fragment"><div class="line"><a name="
|
|
903
|
-
<div class="line"><a name="
|
|
904
|
-
<div class="line"><a name="
|
|
905
|
-
<div class="line"><a name="
|
|
906
|
-
<div class="line"><a name="
|
|
907
|
-
<div class="line"><a name="
|
|
908
|
-
<div class="line"><a name="
|
|
909
|
-
<div class="line"><a name="
|
|
910
|
-
<div class="line"><a name="
|
|
911
|
-
<div class="line"><a name="
|
|
912
|
-
<div class="line"><a name="
|
|
913
|
-
<div class="line"><a name="
|
|
914
|
-
<div class="line"><a name="
|
|
915
|
-
<div class="line"><a name="
|
|
916
|
-
<div class="line"><a name="
|
|
917
|
-
<div class="line"><a name="
|
|
918
|
-
<div class="line"><a name="
|
|
919
|
-
<div class="line"><a name="
|
|
920
|
-
<div class="line"><a name="
|
|
921
|
-
<div class="line"><a name="
|
|
922
|
-
<div class="line"><a name="
|
|
905
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00479">479</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
906
|
+
<div class="fragment"><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> {</div>
|
|
907
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</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>
|
|
908
|
+
<div class="line"><a name="l00482"></a><span class="lineno"> 482</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>
|
|
909
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</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>
|
|
910
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="comment">// write objvar into cache instead of exestate</span></div>
|
|
911
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</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>
|
|
912
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  {</div>
|
|
913
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">initObjVar</a>(objVar, varId);</div>
|
|
914
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">return</span>;</div>
|
|
915
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  }</div>
|
|
916
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</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>
|
|
917
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  {</div>
|
|
918
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">initValVar</a>(valVar, varId);</div>
|
|
919
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordflow">return</span>;</div>
|
|
920
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  }</div>
|
|
921
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordflow">else</span></div>
|
|
922
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  {</div>
|
|
923
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">initValVar</a>(valVar, varId);</div>
|
|
924
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">return</span>;</div>
|
|
925
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div>
|
|
926
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span> }</div>
|
|
923
927
|
</div><!-- fragment -->
|
|
924
928
|
</div>
|
|
925
929
|
</div>
|
|
@@ -958,36 +962,36 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
958
962
|
</dd>
|
|
959
963
|
</dl>
|
|
960
964
|
|
|
961
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
962
|
-
<div class="fragment"><div class="line"><a name="
|
|
963
|
-
<div class="line"><a name="
|
|
964
|
-
<div class="line"><a name="
|
|
965
|
-
<div class="line"><a name="
|
|
966
|
-
<div class="line"><a name="
|
|
967
|
-
<div class="line"><a name="
|
|
968
|
-
<div class="line"><a name="
|
|
969
|
-
<div class="line"><a name="
|
|
970
|
-
<div class="line"><a name="
|
|
971
|
-
<div class="line"><a name="
|
|
972
|
-
<div class="line"><a name="
|
|
973
|
-
<div class="line"><a name="
|
|
974
|
-
<div class="line"><a name="
|
|
975
|
-
<div class="line"><a name="
|
|
976
|
-
<div class="line"><a name="
|
|
977
|
-
<div class="line"><a name="
|
|
978
|
-
<div class="line"><a name="
|
|
979
|
-
<div class="line"><a name="
|
|
980
|
-
<div class="line"><a name="
|
|
981
|
-
<div class="line"><a name="
|
|
982
|
-
<div class="line"><a name="
|
|
983
|
-
<div class="line"><a name="
|
|
984
|
-
<div class="line"><a name="
|
|
985
|
-
<div class="line"><a name="
|
|
986
|
-
<div class="line"><a name="
|
|
987
|
-
<div class="line"><a name="
|
|
988
|
-
<div class="line"><a name="
|
|
989
|
-
<div class="line"><a name="
|
|
990
|
-
<div class="line"><a name="
|
|
965
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00411">411</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
966
|
+
<div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> {</div>
|
|
967
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  </div>
|
|
968
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</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>
|
|
969
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</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>
|
|
970
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  {</div>
|
|
971
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="comment">// TODO:miss floatpointerty, voidty, labelty, matadataty</span></div>
|
|
972
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</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>
|
|
973
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</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>
|
|
974
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</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>
|
|
975
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</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>
|
|
976
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</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>
|
|
977
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">// continue with null expression</span></div>
|
|
978
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</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>
|
|
979
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">else</span></div>
|
|
980
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  {</div>
|
|
981
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
|
982
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</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>
|
|
983
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"what other types we have"</span>);</div>
|
|
984
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div>
|
|
985
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div>
|
|
986
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">else</span></div>
|
|
987
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  {</div>
|
|
988
|
+
<div class="line"><a name="l00434"></a><span class="lineno"> 434</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>
|
|
989
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</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>
|
|
990
|
+
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">else</span></div>
|
|
991
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</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>
|
|
992
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  assert(SVFUtil::isa<DummyValVar>(valVar) && <span class="stringliteral">"not a DummValVar if it has no type?"</span>);</div>
|
|
993
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div>
|
|
994
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span> }</div>
|
|
991
995
|
</div><!-- fragment -->
|
|
992
996
|
</div>
|
|
993
997
|
</div>
|
|
@@ -1340,30 +1344,30 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1340
1344
|
</table>
|
|
1341
1345
|
</div><div class="memdoc">
|
|
1342
1346
|
|
|
1343
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1344
|
-
<div class="fragment"><div class="line"><a name="
|
|
1345
|
-
<div class="line"><a name="
|
|
1346
|
-
<div class="line"><a name="
|
|
1347
|
-
<div class="line"><a name="
|
|
1348
|
-
<div class="line"><a name="
|
|
1349
|
-
<div class="line"><a name="
|
|
1350
|
-
<div class="line"><a name="
|
|
1351
|
-
<div class="line"><a name="
|
|
1352
|
-
<div class="line"><a name="
|
|
1353
|
-
<div class="line"><a name="
|
|
1354
|
-
<div class="line"><a name="
|
|
1355
|
-
<div class="line"><a name="
|
|
1356
|
-
<div class="line"><a name="
|
|
1357
|
-
<div class="line"><a name="
|
|
1358
|
-
<div class="line"><a name="
|
|
1359
|
-
<div class="line"><a name="
|
|
1360
|
-
<div class="line"><a name="
|
|
1361
|
-
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  }</div>
|
|
1362
|
-
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">else</span></div>
|
|
1363
|
-
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div>
|
|
1364
|
-
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not number or virtual addrs?"</span>);</div>
|
|
1347
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00503">503</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1348
|
+
<div class="fragment"><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> {</div>
|
|
1349
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</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>
|
|
1350
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
|
|
1351
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  {</div>
|
|
1352
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="comment">// if addr RHS is integerType(i8 i32 etc), value should be limited.</span></div>
|
|
1353
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordflow">if</span> (addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()-><a class="code" href="classSVF_1_1SVFType.html#a4bc7962d519c1c0380b5a6a144c91c51">getKind</a>() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a>)</div>
|
|
1354
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  {</div>
|
|
1355
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()].meet_with(</div>
|
|
1356
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afbb9ff1f2c47d2afda117bf63a80a1a7">getRangeLimitFromType</a>(addr-><a class="code" href="classSVF_1_1AssignStmt.html#ad03d28d16754c9049dd4d0ad3b6c1e28">getRHSVar</a>()-><a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>()));</div>
|
|
1357
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div>
|
|
1358
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</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>
|
|
1359
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
|
|
1360
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div>
|
|
1361
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</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>
|
|
1362
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  {</div>
|
|
1363
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</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#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(</div>
|
|
1364
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  addr-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
|
|
1365
1365
|
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  }</div>
|
|
1366
|
-
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span> 
|
|
1366
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keywordflow">else</span></div>
|
|
1367
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  {</div>
|
|
1368
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"not number or virtual addrs?"</span>);</div>
|
|
1369
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div>
|
|
1370
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> }</div>
|
|
1367
1371
|
</div><!-- fragment -->
|
|
1368
1372
|
</div>
|
|
1369
1373
|
</div>
|
|
@@ -1383,67 +1387,67 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1383
1387
|
</table>
|
|
1384
1388
|
</div><div class="memdoc">
|
|
1385
1389
|
|
|
1386
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1387
|
-
<div class="fragment"><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="
|
|
1393
|
-
<div class="line"><a name="
|
|
1394
|
-
<div class="line"><a name="
|
|
1395
|
-
<div class="line"><a name="
|
|
1396
|
-
<div class="line"><a name="
|
|
1397
|
-
<div class="line"><a name="
|
|
1398
|
-
<div class="line"><a name="
|
|
1399
|
-
<div class="line"><a name="
|
|
1400
|
-
<div class="line"><a name="
|
|
1401
|
-
<div class="line"><a name="
|
|
1402
|
-
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordflow">break</span>;</div>
|
|
1403
|
-
<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#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
|
|
1404
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
|
|
1405
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  resVal = (lhs - rhs);</div>
|
|
1390
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00529">529</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1391
|
+
<div class="fragment"><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> {</div>
|
|
1392
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</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>
|
|
1393
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</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>
|
|
1394
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</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>
|
|
1395
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</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>
|
|
1396
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</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>
|
|
1397
|
+
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op1))</div>
|
|
1398
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  {</div>
|
|
1399
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</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>
|
|
1400
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1401
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">switch</span> (binary-><a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
|
|
1402
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div>
|
|
1403
|
+
<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#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
|
|
1404
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
|
|
1405
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  resVal = (lhs + rhs);</div>
|
|
1406
1406
|
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordflow">break</span>;</div>
|
|
1407
|
-
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1408
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1409
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  resVal = (lhs
|
|
1407
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
|
|
1408
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
|
|
1409
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  resVal = (lhs - rhs);</div>
|
|
1410
1410
|
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordflow">break</span>;</div>
|
|
1411
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1412
|
-
<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#
|
|
1413
|
-
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> 
|
|
1414
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> 
|
|
1415
|
-
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span> 
|
|
1416
|
-
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1417
|
-
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#
|
|
1418
|
-
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> 
|
|
1419
|
-
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> 
|
|
1420
|
-
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> 
|
|
1421
|
-
<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#
|
|
1422
|
-
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span> 
|
|
1423
|
-
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span> 
|
|
1424
|
-
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span> 
|
|
1425
|
-
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> 
|
|
1426
|
-
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span> 
|
|
1427
|
-
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span> 
|
|
1428
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span> 
|
|
1429
|
-
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> 
|
|
1430
|
-
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> 
|
|
1431
|
-
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> 
|
|
1432
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> 
|
|
1433
|
-
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> 
|
|
1434
|
-
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> 
|
|
1435
|
-
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> 
|
|
1436
|
-
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> 
|
|
1437
|
-
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> 
|
|
1438
|
-
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> 
|
|
1439
|
-
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> 
|
|
1440
|
-
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> 
|
|
1441
|
-
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> 
|
|
1442
|
-
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> 
|
|
1443
|
-
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> 
|
|
1444
|
-
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> 
|
|
1445
|
-
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> 
|
|
1446
|
-
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span> }</div>
|
|
1411
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
|
|
1412
|
+
<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#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
|
|
1413
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  resVal = (lhs * rhs);</div>
|
|
1414
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">break</span>;</div>
|
|
1415
|
+
<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#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
|
|
1416
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
|
|
1417
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
|
|
1418
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  resVal = (lhs / rhs);</div>
|
|
1419
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">break</span>;</div>
|
|
1420
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
|
|
1421
|
+
<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#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
|
|
1422
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
|
|
1423
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  resVal = (lhs % rhs);</div>
|
|
1424
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">break</span>;</div>
|
|
1425
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
|
|
1426
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  resVal = (lhs ^ rhs);</div>
|
|
1427
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">break</span>;</div>
|
|
1428
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
|
|
1429
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  resVal = (lhs & rhs);</div>
|
|
1430
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">break</span>;</div>
|
|
1431
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
|
|
1432
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  resVal = (lhs | rhs);</div>
|
|
1433
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="keywordflow">break</span>;</div>
|
|
1434
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
|
|
1435
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  resVal = (lhs >> rhs);</div>
|
|
1436
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">break</span>;</div>
|
|
1437
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
|
|
1438
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  resVal = (lhs << rhs);</div>
|
|
1439
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keywordflow">break</span>;</div>
|
|
1440
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
|
|
1441
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  resVal = (lhs >> rhs);</div>
|
|
1442
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">break</span>;</div>
|
|
1443
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordflow">default</span>:</div>
|
|
1444
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  {</div>
|
|
1445
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined binary: "</span>);</div>
|
|
1446
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  }</div>
|
|
1447
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  }</div>
|
|
1448
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1449
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  }</div>
|
|
1450
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> }</div>
|
|
1447
1451
|
</div><!-- fragment -->
|
|
1448
1452
|
</div>
|
|
1449
1453
|
</div>
|
|
@@ -1539,20 +1543,20 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1539
1543
|
</table>
|
|
1540
1544
|
</div><div class="memdoc">
|
|
1541
1545
|
|
|
1542
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1543
|
-
<div class="fragment"><div class="line"><a name="
|
|
1544
|
-
<div class="line"><a name="
|
|
1545
|
-
<div class="line"><a name="
|
|
1546
|
-
<div class="line"><a name="
|
|
1547
|
-
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  {</div>
|
|
1548
|
-
<div class="line"><a name="l00966"></a><span class="lineno"> 966</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>
|
|
1549
|
-
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  }</div>
|
|
1550
|
-
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1546
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00964">964</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1547
|
+
<div class="fragment"><div class="line"><a name="l00965"></a><span class="lineno"> 965</span> {</div>
|
|
1548
|
+
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
1549
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
1550
|
+
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
1551
1551
|
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  {</div>
|
|
1552
|
-
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> 
|
|
1553
|
-
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> 
|
|
1554
|
-
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span> 
|
|
1555
|
-
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span> 
|
|
1552
|
+
<div class="line"><a name="l00970"></a><span class="lineno"> 970</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>
|
|
1553
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  }</div>
|
|
1554
|
+
<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1555
|
+
<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  {</div>
|
|
1556
|
+
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
1557
|
+
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
1558
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  }</div>
|
|
1559
|
+
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span> }</div>
|
|
1556
1560
|
</div><!-- fragment -->
|
|
1557
1561
|
</div>
|
|
1558
1562
|
</div>
|
|
@@ -1605,189 +1609,189 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1605
1609
|
</table>
|
|
1606
1610
|
</div><div class="memdoc">
|
|
1607
1611
|
|
|
1608
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1609
|
-
<div class="fragment"><div class="line"><a name="
|
|
1610
|
-
<div class="line"><a name="
|
|
1611
|
-
<div class="line"><a name="
|
|
1612
|
-
<div class="line"><a name="
|
|
1613
|
-
<div class="line"><a name="
|
|
1614
|
-
<div class="line"><a name="
|
|
1615
|
-
<div class="line"><a name="
|
|
1616
|
-
<div class="line"><a name="
|
|
1617
|
-
<div class="line"><a name="
|
|
1618
|
-
<div class="line"><a name="
|
|
1619
|
-
<div class="line"><a name="
|
|
1620
|
-
<div class="line"><a name="
|
|
1621
|
-
<div class="line"><a name="
|
|
1622
|
-
<div class="line"><a name="
|
|
1623
|
-
<div class="line"><a name="
|
|
1624
|
-
<div class="line"><a name="
|
|
1625
|
-
<div class="line"><a name="
|
|
1626
|
-
<div class="line"><a name="
|
|
1627
|
-
<div class="line"><a name="
|
|
1628
|
-
<div class="line"><a name="
|
|
1629
|
-
<div class="line"><a name="
|
|
1630
|
-
<div class="line"><a name="
|
|
1631
|
-
<div class="line"><a name="
|
|
1632
|
-
<div class="line"><a name="
|
|
1633
|
-
<div class="line"><a name="
|
|
1634
|
-
<div class="line"><a name="
|
|
1635
|
-
<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="l00653"></a><span class="lineno"> 653</span>  {</div>
|
|
1675
|
-
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
1676
|
-
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
1677
|
-
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
1612
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00591">591</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1613
|
+
<div class="fragment"><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> {</div>
|
|
1614
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</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>
|
|
1615
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</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>
|
|
1616
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</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>
|
|
1617
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op0) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(op1))</div>
|
|
1618
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  {</div>
|
|
1619
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1620
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</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>
|
|
1621
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
1622
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
1623
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  {</div>
|
|
1624
|
+
<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#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
1625
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
1626
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
1627
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  resVal = (lhs == rhs);</div>
|
|
1628
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">break</span>;</div>
|
|
1629
|
+
<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#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
1630
|
+
<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#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
1631
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
1632
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  resVal = (lhs != rhs);</div>
|
|
1633
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">break</span>;</div>
|
|
1634
|
+
<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#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
1635
|
+
<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#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
1636
|
+
<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#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
1637
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
1638
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  resVal = (lhs > rhs);</div>
|
|
1639
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">break</span>;</div>
|
|
1640
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
1641
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
1642
|
+
<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#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
1643
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
1644
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  resVal = (lhs >= rhs);</div>
|
|
1645
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">break</span>;</div>
|
|
1646
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
1647
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
1648
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
1649
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
1650
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  resVal = (lhs < rhs);</div>
|
|
1651
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordflow">break</span>;</div>
|
|
1652
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
1653
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
1654
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
1655
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
1656
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  resVal = (lhs <= rhs);</div>
|
|
1657
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keywordflow">break</span>;</div>
|
|
1658
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
1659
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
1660
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">break</span>;</div>
|
|
1661
|
+
<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#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
1662
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
1663
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">break</span>;</div>
|
|
1664
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  <span class="keywordflow">default</span>:</div>
|
|
1665
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  {</div>
|
|
1666
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
1667
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div>
|
|
1668
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  }</div>
|
|
1669
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1670
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  }</div>
|
|
1671
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</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>
|
|
1672
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  {</div>
|
|
1673
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
|
|
1674
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &lhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(op0), &rhs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(op1);</div>
|
|
1675
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  assert(!lhs.empty() && !rhs.empty() && <span class="stringliteral">"empty address?"</span>);</div>
|
|
1676
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keyword">auto</span> predicate = cmp-><a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
|
|
1677
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">switch</span> (predicate)</div>
|
|
1678
1678
|
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  {</div>
|
|
1679
|
-
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span> 
|
|
1680
|
-
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span> 
|
|
1681
|
-
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span> 
|
|
1682
|
-
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span> 
|
|
1683
|
-
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">
|
|
1679
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
|
|
1680
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
|
|
1681
|
+
<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#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
|
|
1682
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  {</div>
|
|
1683
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1684
1684
|
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  {</div>
|
|
1685
|
-
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <
|
|
1686
|
-
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span> 
|
|
1687
|
-
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span> 
|
|
1688
|
-
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span> 
|
|
1689
|
-
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">
|
|
1685
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.equals(rhs));</div>
|
|
1686
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  }</div>
|
|
1687
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keywordflow">else</span></div>
|
|
1688
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  {</div>
|
|
1689
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">if</span> (lhs.hasIntersect(rhs))</div>
|
|
1690
1690
|
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  {</div>
|
|
1691
|
-
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(
|
|
1691
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1692
1692
|
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  }</div>
|
|
1693
|
-
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span> 
|
|
1694
|
-
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span> 
|
|
1695
|
-
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> 
|
|
1696
|
-
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span> 
|
|
1697
|
-
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span> 
|
|
1698
|
-
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> 
|
|
1699
|
-
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span> 
|
|
1700
|
-
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> 
|
|
1701
|
-
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span> 
|
|
1702
|
-
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span> 
|
|
1703
|
-
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span> 
|
|
1704
|
-
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">
|
|
1693
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="keywordflow">else</span></div>
|
|
1694
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  {</div>
|
|
1695
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
|
|
1696
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  }</div>
|
|
1697
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div>
|
|
1698
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">break</span>;</div>
|
|
1699
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  }</div>
|
|
1700
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
|
|
1701
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
|
|
1702
|
+
<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#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
|
|
1703
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  {</div>
|
|
1704
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1705
1705
|
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  {</div>
|
|
1706
|
-
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <
|
|
1707
|
-
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span> 
|
|
1708
|
-
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span> 
|
|
1709
|
-
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> 
|
|
1710
|
-
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keywordflow">
|
|
1706
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.equals(rhs));</div>
|
|
1707
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  }</div>
|
|
1708
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keywordflow">else</span></div>
|
|
1709
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  {</div>
|
|
1710
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keywordflow">if</span> (lhs.hasIntersect(rhs))</div>
|
|
1711
1711
|
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  {</div>
|
|
1712
|
-
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(
|
|
1712
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1713
1713
|
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  }</div>
|
|
1714
|
-
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span> 
|
|
1715
|
-
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span> 
|
|
1716
|
-
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span> 
|
|
1717
|
-
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span> 
|
|
1718
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> 
|
|
1719
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> 
|
|
1720
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> 
|
|
1721
|
-
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span> 
|
|
1722
|
-
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> 
|
|
1723
|
-
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span> 
|
|
1724
|
-
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> 
|
|
1725
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
1726
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">
|
|
1714
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">else</span></div>
|
|
1715
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  {</div>
|
|
1716
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
|
|
1717
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  }</div>
|
|
1718
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  }</div>
|
|
1719
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">break</span>;</div>
|
|
1720
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  }</div>
|
|
1721
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
|
|
1722
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
|
|
1723
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
|
|
1724
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
|
|
1725
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  {</div>
|
|
1726
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1727
1727
|
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  {</div>
|
|
1728
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html
|
|
1728
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() > *rhs.begin());</div>
|
|
1729
1729
|
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  }</div>
|
|
1730
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">
|
|
1731
|
-
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> 
|
|
1732
|
-
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> 
|
|
1733
|
-
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span> 
|
|
1734
|
-
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> 
|
|
1735
|
-
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> 
|
|
1736
|
-
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> 
|
|
1737
|
-
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span> 
|
|
1738
|
-
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span> 
|
|
1739
|
-
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span> 
|
|
1740
|
-
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span> 
|
|
1741
|
-
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">
|
|
1730
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">else</span></div>
|
|
1731
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  {</div>
|
|
1732
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1733
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  }</div>
|
|
1734
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">break</span>;</div>
|
|
1735
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  }</div>
|
|
1736
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
|
|
1737
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
|
|
1738
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
|
|
1739
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
|
|
1740
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  {</div>
|
|
1741
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1742
1742
|
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  {</div>
|
|
1743
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html
|
|
1743
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() >= *rhs.begin());</div>
|
|
1744
1744
|
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  }</div>
|
|
1745
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">
|
|
1746
|
-
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span> 
|
|
1747
|
-
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span> 
|
|
1748
|
-
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span> 
|
|
1749
|
-
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> 
|
|
1750
|
-
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span> 
|
|
1751
|
-
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span> 
|
|
1752
|
-
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> 
|
|
1753
|
-
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span> 
|
|
1754
|
-
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> 
|
|
1755
|
-
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span> 
|
|
1756
|
-
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">
|
|
1745
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">else</span></div>
|
|
1746
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  {</div>
|
|
1747
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1748
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  }</div>
|
|
1749
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">break</span>;</div>
|
|
1750
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  }</div>
|
|
1751
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
|
|
1752
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
|
|
1753
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
|
|
1754
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
|
|
1755
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  {</div>
|
|
1756
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1757
1757
|
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  {</div>
|
|
1758
|
-
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html
|
|
1758
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() < *rhs.begin());</div>
|
|
1759
1759
|
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  }</div>
|
|
1760
|
-
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">
|
|
1761
|
-
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span> 
|
|
1762
|
-
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span> 
|
|
1763
|
-
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> 
|
|
1764
|
-
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span> 
|
|
1765
|
-
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> 
|
|
1766
|
-
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span> 
|
|
1767
|
-
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> 
|
|
1768
|
-
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span> 
|
|
1769
|
-
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> 
|
|
1770
|
-
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> 
|
|
1771
|
-
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">
|
|
1760
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">else</span></div>
|
|
1761
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  {</div>
|
|
1762
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1763
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  }</div>
|
|
1764
|
+
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keywordflow">break</span>;</div>
|
|
1765
|
+
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  }</div>
|
|
1766
|
+
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
|
|
1767
|
+
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
|
|
1768
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
|
|
1769
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
|
|
1770
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  {</div>
|
|
1771
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordflow">if</span> (lhs.size() == 1 && rhs.size() == 1)</div>
|
|
1772
1772
|
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  {</div>
|
|
1773
|
-
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html
|
|
1773
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.begin() <= *rhs.begin());</div>
|
|
1774
1774
|
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div>
|
|
1775
|
-
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordflow">
|
|
1776
|
-
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span> 
|
|
1777
|
-
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> 
|
|
1778
|
-
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span> 
|
|
1775
|
+
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordflow">else</span></div>
|
|
1776
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  {</div>
|
|
1777
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
|
|
1778
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  }</div>
|
|
1779
1779
|
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <span class="keywordflow">break</span>;</div>
|
|
1780
|
-
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span> 
|
|
1781
|
-
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span> 
|
|
1782
|
-
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <
|
|
1783
|
-
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> 
|
|
1784
|
-
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span> 
|
|
1785
|
-
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> 
|
|
1786
|
-
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span> 
|
|
1787
|
-
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span> 
|
|
1788
|
-
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> 
|
|
1789
|
-
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> 
|
|
1790
|
-
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> }</div>
|
|
1780
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  }</div>
|
|
1781
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
|
|
1782
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
|
|
1783
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">break</span>;</div>
|
|
1784
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
|
|
1785
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
|
|
1786
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordflow">break</span>;</div>
|
|
1787
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <span class="keywordflow">default</span>:</div>
|
|
1788
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  {</div>
|
|
1789
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"undefined compare: "</span>);</div>
|
|
1790
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  }</div>
|
|
1791
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  }</div>
|
|
1792
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = resVal;</div>
|
|
1793
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  }</div>
|
|
1794
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> }</div>
|
|
1791
1795
|
</div><!-- fragment -->
|
|
1792
1796
|
</div>
|
|
1793
1797
|
</div>
|
|
@@ -1884,35 +1888,35 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1884
1888
|
</table>
|
|
1885
1889
|
</div><div class="memdoc">
|
|
1886
1890
|
|
|
1887
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1888
|
-
<div class="fragment"><div class="line"><a name="
|
|
1889
|
-
<div class="line"><a name="
|
|
1890
|
-
<div class="line"><a name="
|
|
1891
|
-
<div class="line"><a name="
|
|
1892
|
-
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  {</div>
|
|
1893
|
-
<div class="line"><a name="l00848"></a><span class="lineno"> 848</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>
|
|
1894
|
-
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  }</div>
|
|
1895
|
-
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">else</span></div>
|
|
1891
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00846">846</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1892
|
+
<div class="fragment"><div class="line"><a name="l00847"></a><span class="lineno"> 847</span> {</div>
|
|
1893
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVarID();</div>
|
|
1894
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getRHSVarID();</div>
|
|
1895
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()->isBlkPtr(lhs))</div>
|
|
1896
1896
|
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  {</div>
|
|
1897
|
-
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <
|
|
1898
|
-
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span> 
|
|
1899
|
-
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span> 
|
|
1900
|
-
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> 
|
|
1901
|
-
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span> 
|
|
1902
|
-
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> 
|
|
1903
|
-
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <
|
|
1904
|
-
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> 
|
|
1905
|
-
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span> 
|
|
1906
|
-
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span> 
|
|
1907
|
-
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span> 
|
|
1908
|
-
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span> 
|
|
1909
|
-
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span> 
|
|
1910
|
-
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> 
|
|
1911
|
-
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> 
|
|
1912
|
-
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span> 
|
|
1913
|
-
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span> 
|
|
1914
|
-
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> 
|
|
1915
|
-
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span> 
|
|
1897
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</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>
|
|
1898
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  }</div>
|
|
1899
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">else</span></div>
|
|
1900
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  {</div>
|
|
1901
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
1902
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  {</div>
|
|
1903
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</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>
|
|
1904
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="comment">// if copy LHS is integerType(i8 i32 etc), value should be limited.</span></div>
|
|
1905
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <span class="comment">// this branch can handle bitcast from higher bits integer to</span></div>
|
|
1906
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="comment">// lower bits integer. e.g. bitcast i32 to i8</span></div>
|
|
1907
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType()->getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a>)</div>
|
|
1908
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  {</div>
|
|
1909
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs].meet_with(</div>
|
|
1910
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afbb9ff1f2c47d2afda117bf63a80a1a7">getRangeLimitFromType</a>(<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>->getLHSVar()->getType()));</div>
|
|
1911
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  }</div>
|
|
1912
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div>
|
|
1913
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
1914
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  {</div>
|
|
1915
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
1916
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
1917
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  }</div>
|
|
1918
|
+
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  }</div>
|
|
1919
|
+
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span> }</div>
|
|
1916
1920
|
</div><!-- fragment -->
|
|
1917
1921
|
</div>
|
|
1918
1922
|
</div>
|
|
@@ -1965,31 +1969,31 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
1965
1969
|
</table>
|
|
1966
1970
|
</div><div class="memdoc">
|
|
1967
1971
|
|
|
1968
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
1969
|
-
<div class="fragment"><div class="line"><a name="
|
|
1970
|
-
<div class="line"><a name="
|
|
1971
|
-
<div class="line"><a name="
|
|
1972
|
-
<div class="line"><a name="
|
|
1973
|
-
<div class="line"><a name="
|
|
1974
|
-
<div class="line"><a name="
|
|
1975
|
-
<div class="line"><a name="
|
|
1976
|
-
<div class="line"><a name="
|
|
1977
|
-
<div class="line"><a name="
|
|
1978
|
-
<div class="line"><a name="
|
|
1979
|
-
<div class="line"><a name="
|
|
1980
|
-
<div class="line"><a name="
|
|
1981
|
-
<div class="line"><a name="
|
|
1982
|
-
<div class="line"><a name="
|
|
1983
|
-
<div class="line"><a name="
|
|
1984
|
-
<div class="line"><a name="
|
|
1985
|
-
<div class="line"><a name="
|
|
1986
|
-
<div class="line"><a name="
|
|
1987
|
-
<div class="line"><a name="
|
|
1988
|
-
<div class="line"><a name="
|
|
1989
|
-
<div class="line"><a name="
|
|
1990
|
-
<div class="line"><a name="
|
|
1991
|
-
<div class="line"><a name="
|
|
1992
|
-
<div class="line"><a name="
|
|
1972
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00876">876</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
1973
|
+
<div class="fragment"><div class="line"><a name="l00877"></a><span class="lineno"> 877</span> {</div>
|
|
1974
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</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>
|
|
1975
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</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>
|
|
1976
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs)) <span class="keywordflow">return</span>;</div>
|
|
1977
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
1978
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &rhsVal = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
1979
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  <span class="keywordflow">if</span> (rhsVal.empty()) <span class="keywordflow">return</span>;</div>
|
|
1980
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> offsetPair = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a6e4e3eeca9d25fb5eab496faeb6264c3">getItvOfFlattenedElemIndex</a>(gep);</div>
|
|
1981
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae48cc31474d2c1cbc581b8f7ed433a14">isVirtualMemAddress</a>(*rhsVal.begin()))</div>
|
|
1982
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">return</span>;</div>
|
|
1983
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">else</span></div>
|
|
1984
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  {</div>
|
|
1985
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> gepAddrs;</div>
|
|
1986
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> lb = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1987
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1988
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>() < <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>()?</div>
|
|
1989
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  offsetPair.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>(): <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
|
|
1990
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = lb; i <= ub; i++)</div>
|
|
1991
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  gepAddrs.join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af8d06156bcbb61beb305ed8096319966">getGepObjAddress</a>(rhs, i));</div>
|
|
1992
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keywordflow">if</span>(gepAddrs.empty()) <span class="keywordflow">return</span>;</div>
|
|
1993
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = gepAddrs;</div>
|
|
1994
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <span class="keywordflow">return</span>;</div>
|
|
1995
|
+
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  }</div>
|
|
1996
|
+
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> }</div>
|
|
1993
1997
|
</div><!-- fragment -->
|
|
1994
1998
|
</div>
|
|
1995
1999
|
</div>
|
|
@@ -2009,47 +2013,47 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2009
2013
|
</table>
|
|
2010
2014
|
</div><div class="memdoc">
|
|
2011
2015
|
|
|
2012
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2013
|
-
<div class="fragment"><div class="line"><a name="
|
|
2014
|
-
<div class="line"><a name="
|
|
2015
|
-
<div class="line"><a name="
|
|
2016
|
-
<div class="line"><a name="
|
|
2017
|
-
<div class="line"><a name="
|
|
2018
|
-
<div class="line"><a name="
|
|
2019
|
-
<div class="line"><a name="
|
|
2020
|
-
<div class="line"><a name="
|
|
2021
|
-
<div class="line"><a name="
|
|
2022
|
-
<div class="line"><a name="
|
|
2023
|
-
<div class="line"><a name="
|
|
2024
|
-
<div class="line"><a name="
|
|
2025
|
-
<div class="line"><a name="
|
|
2026
|
-
<div class="line"><a name="
|
|
2027
|
-
<div class="line"><a name="
|
|
2028
|
-
<div class="line"><a name="
|
|
2029
|
-
<div class="line"><a name="
|
|
2030
|
-
<div class="line"><a name="
|
|
2031
|
-
<div class="line"><a name="
|
|
2032
|
-
<div class="line"><a name="
|
|
2033
|
-
<div class="line"><a name="
|
|
2034
|
-
<div class="line"><a name="
|
|
2035
|
-
<div class="line"><a name="
|
|
2036
|
-
<div class="line"><a name="
|
|
2037
|
-
<div class="line"><a name="
|
|
2038
|
-
<div class="line"><a name="
|
|
2039
|
-
<div class="line"><a name="
|
|
2040
|
-
<div class="line"><a name="
|
|
2041
|
-
<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="l00805"></a><span class="lineno"> 805</span>  }</div>
|
|
2047
|
-
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <span class="keywordflow">else</span></div>
|
|
2048
|
-
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  {</div>
|
|
2049
|
-
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="comment">// rhs not initialized, e.g., absence of a store before load</span></div>
|
|
2016
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00775">775</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2017
|
+
<div class="fragment"><div class="line"><a name="l00776"></a><span class="lineno"> 776</span> {</div>
|
|
2018
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</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>
|
|
2019
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</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>
|
|
2020
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2021
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
2022
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
2023
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  assert(!addrs.empty());</div>
|
|
2024
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
2025
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
|
|
2026
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keywordtype">bool</span> isVal = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
|
|
2027
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2028
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  {</div>
|
|
2029
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</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>
|
|
2030
|
+
<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#a808fdc8ff7637d1c9515e71815548983">inLocToValTable</a>(objId))</div>
|
|
2031
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  {</div>
|
|
2032
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ae28249f952e1aa620b23e946a1f209ab">load</a>(addr));</div>
|
|
2033
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  isVal = <span class="keyword">true</span>;</div>
|
|
2034
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  }</div>
|
|
2035
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">inLocToAddrsTable</a>(objId))</div>
|
|
2036
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  {</div>
|
|
2037
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  rhsAddr.<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#ad17ceaf8058043151ae0f23b3415458a">loadAddrs</a>(addr));</div>
|
|
2038
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  isAddr = <span class="keyword">true</span>;</div>
|
|
2039
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  }</div>
|
|
2040
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  }</div>
|
|
2041
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">if</span> (isVal)</div>
|
|
2042
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  {</div>
|
|
2043
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="comment">// lhs var is an integer</span></div>
|
|
2044
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = rhsItv;</div>
|
|
2045
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  }</div>
|
|
2046
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
|
|
2047
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  {</div>
|
|
2048
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  <span class="comment">// lhs var is an address</span></div>
|
|
2049
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = rhsAddr;</div>
|
|
2050
2050
|
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  }</div>
|
|
2051
|
-
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> 
|
|
2052
|
-
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> 
|
|
2051
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">else</span></div>
|
|
2052
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  {</div>
|
|
2053
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="comment">// rhs not initialized, e.g., absence of a store before load</span></div>
|
|
2054
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div>
|
|
2055
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  }</div>
|
|
2056
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> }</div>
|
|
2053
2057
|
</div><!-- fragment -->
|
|
2054
2058
|
</div>
|
|
2055
2059
|
</div>
|
|
@@ -2102,38 +2106,38 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2102
2106
|
</table>
|
|
2103
2107
|
</div><div class="memdoc">
|
|
2104
2108
|
|
|
2105
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2106
|
-
<div class="fragment"><div class="line"><a name="
|
|
2107
|
-
<div class="line"><a name="
|
|
2108
|
-
<div class="line"><a name="
|
|
2109
|
-
<div class="line"><a name="
|
|
2110
|
-
<div class="line"><a name="
|
|
2111
|
-
<div class="line"><a name="
|
|
2112
|
-
<div class="line"><a name="
|
|
2113
|
-
<div class="line"><a name="
|
|
2114
|
-
<div class="line"><a name="
|
|
2115
|
-
<div class="line"><a name="
|
|
2116
|
-
<div class="line"><a name="
|
|
2117
|
-
<div class="line"><a name="
|
|
2118
|
-
<div class="line"><a name="
|
|
2119
|
-
<div class="line"><a name="
|
|
2120
|
-
<div class="line"><a name="
|
|
2121
|
-
<div class="line"><a name="
|
|
2122
|
-
<div class="line"><a name="
|
|
2123
|
-
<div class="line"><a name="
|
|
2124
|
-
<div class="line"><a name="
|
|
2125
|
-
<div class="line"><a name="
|
|
2126
|
-
<div class="line"><a name="
|
|
2127
|
-
<div class="line"><a name="
|
|
2128
|
-
<div class="line"><a name="
|
|
2129
|
-
<div class="line"><a name="
|
|
2130
|
-
<div class="line"><a name="
|
|
2131
|
-
<div class="line"><a name="
|
|
2132
|
-
<div class="line"><a name="
|
|
2133
|
-
<div class="line"><a name="
|
|
2134
|
-
<div class="line"><a name="
|
|
2135
|
-
<div class="line"><a name="
|
|
2136
|
-
<div class="line"><a name="
|
|
2109
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00930">930</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2110
|
+
<div class="fragment"><div class="line"><a name="l00931"></a><span class="lineno"> 931</span> {</div>
|
|
2111
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</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>
|
|
2112
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
|
|
2113
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
|
|
2114
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordtype">bool</span> isVal = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
|
|
2115
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</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>
|
|
2116
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  {</div>
|
|
2117
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</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>
|
|
2118
|
+
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(curId))</div>
|
|
2119
|
+
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  {</div>
|
|
2120
|
+
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[curId]);</div>
|
|
2121
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  isVal = <span class="keyword">true</span>;</div>
|
|
2122
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  }</div>
|
|
2123
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(curId))</div>
|
|
2124
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  {</div>
|
|
2125
|
+
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(curId).empty());</div>
|
|
2126
|
+
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(curId));</div>
|
|
2127
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  isAddr = <span class="keyword">true</span>;</div>
|
|
2128
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  }</div>
|
|
2129
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  }</div>
|
|
2130
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keywordflow">if</span> (isVal)</div>
|
|
2131
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  {</div>
|
|
2132
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="comment">// res var is an integer</span></div>
|
|
2133
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = rhsItv;</div>
|
|
2134
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  }</div>
|
|
2135
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
|
|
2136
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  {</div>
|
|
2137
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  <span class="comment">// res var is an address</span></div>
|
|
2138
|
+
<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#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(res) = rhsAddr;</div>
|
|
2139
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
|
|
2140
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span> }</div>
|
|
2137
2141
|
</div><!-- fragment -->
|
|
2138
2142
|
</div>
|
|
2139
2143
|
</div>
|
|
@@ -2222,20 +2226,20 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2222
2226
|
</table>
|
|
2223
2227
|
</div><div class="memdoc">
|
|
2224
2228
|
|
|
2225
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2226
|
-
<div class="fragment"><div class="line"><a name="
|
|
2227
|
-
<div class="line"><a name="
|
|
2228
|
-
<div class="line"><a name="
|
|
2229
|
-
<div class="line"><a name="
|
|
2230
|
-
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  {</div>
|
|
2231
|
-
<div class="line"><a name="l00981"></a><span class="lineno"> 981</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>
|
|
2232
|
-
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  }</div>
|
|
2233
|
-
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2229
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00979">979</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2230
|
+
<div class="fragment"><div class="line"><a name="l00980"></a><span class="lineno"> 980</span> {</div>
|
|
2231
|
+
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
|
|
2232
|
+
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-><a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
|
|
2233
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
2234
2234
|
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  {</div>
|
|
2235
|
-
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span> 
|
|
2236
|
-
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span> 
|
|
2237
|
-
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> 
|
|
2238
|
-
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span> 
|
|
2235
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</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>
|
|
2236
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  }</div>
|
|
2237
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2238
|
+
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  {</div>
|
|
2239
|
+
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
2240
|
+
<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs);</div>
|
|
2241
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  }</div>
|
|
2242
|
+
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span> }</div>
|
|
2239
2243
|
</div><!-- fragment -->
|
|
2240
2244
|
</div>
|
|
2241
2245
|
</div>
|
|
@@ -2288,33 +2292,33 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2288
2292
|
</table>
|
|
2289
2293
|
</div><div class="memdoc">
|
|
2290
2294
|
|
|
2291
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2292
|
-
<div class="fragment"><div class="line"><a name="
|
|
2293
|
-
<div class="line"><a name="
|
|
2294
|
-
<div class="line"><a name="
|
|
2295
|
-
<div class="line"><a name="
|
|
2296
|
-
<div class="line"><a name="
|
|
2297
|
-
<div class="line"><a name="
|
|
2298
|
-
<div class="line"><a name="
|
|
2299
|
-
<div class="line"><a name="
|
|
2300
|
-
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  {</div>
|
|
2301
|
-
<div class="line"><a name="l00908"></a><span class="lineno"> 908</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>
|
|
2302
|
-
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  }</div>
|
|
2303
|
-
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keywordflow">else</span></div>
|
|
2295
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00902">902</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2296
|
+
<div class="fragment"><div class="line"><a name="l00903"></a><span class="lineno"> 903</span> {</div>
|
|
2297
|
+
<div class="line"><a name="l00904"></a><span class="lineno"> 904</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>
|
|
2298
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</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>
|
|
2299
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</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>
|
|
2300
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</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>
|
|
2301
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(tval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(fval) && <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(cond))</div>
|
|
2302
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  {</div>
|
|
2303
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_numeral())</div>
|
|
2304
2304
|
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  {</div>
|
|
2305
|
-
<div class="line"><a name="l00912"></a><span class="lineno"> 912</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>
|
|
2305
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</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>
|
|
2306
2306
|
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  }</div>
|
|
2307
|
-
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span> 
|
|
2308
|
-
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span> 
|
|
2309
|
-
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span> 
|
|
2310
|
-
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span> 
|
|
2311
|
-
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span> 
|
|
2312
|
-
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span> 
|
|
2313
|
-
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span> 
|
|
2314
|
-
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span> 
|
|
2315
|
-
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span> 
|
|
2316
|
-
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> 
|
|
2317
|
-
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> 
|
|
2307
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">else</span></div>
|
|
2308
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  {</div>
|
|
2309
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</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>
|
|
2310
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  }</div>
|
|
2311
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  }</div>
|
|
2312
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</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#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(cond))</div>
|
|
2313
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  {</div>
|
|
2314
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_numeral())</div>
|
|
2315
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  {</div>
|
|
2316
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(fval).empty());</div>
|
|
2317
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(tval).empty());</div>
|
|
2318
|
+
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a056e0db56033ac4dc041e6d82d614dbd">getAddrs</a>(res) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[cond].is_zero() ? <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(fval) : <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(tval);</div>
|
|
2319
|
+
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  }</div>
|
|
2320
|
+
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div>
|
|
2321
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span> }</div>
|
|
2318
2322
|
</div><!-- fragment -->
|
|
2319
2323
|
</div>
|
|
2320
2324
|
</div>
|
|
@@ -2376,34 +2380,34 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2376
2380
|
</table>
|
|
2377
2381
|
</div><div class="memdoc">
|
|
2378
2382
|
|
|
2379
|
-
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#
|
|
2380
|
-
<div class="fragment"><div class="line"><a name="
|
|
2381
|
-
<div class="line"><a name="
|
|
2382
|
-
<div class="line"><a name="
|
|
2383
|
-
<div class="line"><a name="
|
|
2384
|
-
<div class="line"><a name="
|
|
2385
|
-
<div class="line"><a name="
|
|
2386
|
-
<div class="line"><a name="
|
|
2387
|
-
<div class="line"><a name="
|
|
2388
|
-
<div class="line"><a name="
|
|
2389
|
-
<div class="line"><a name="
|
|
2390
|
-
<div class="line"><a name="
|
|
2391
|
-
<div class="line"><a name="
|
|
2392
|
-
<div class="line"><a name="
|
|
2393
|
-
<div class="line"><a name="
|
|
2394
|
-
<div class="line"><a name="
|
|
2395
|
-
<div class="line"><a name="
|
|
2396
|
-
<div class="line"><a name="
|
|
2397
|
-
<div class="line"><a name="
|
|
2398
|
-
<div class="line"><a name="
|
|
2399
|
-
<div class="line"><a name="
|
|
2400
|
-
<div class="line"><a name="
|
|
2401
|
-
<div class="line"><a name="
|
|
2402
|
-
<div class="line"><a name="
|
|
2403
|
-
<div class="line"><a name="
|
|
2404
|
-
<div class="line"><a name="
|
|
2405
|
-
<div class="line"><a name="
|
|
2406
|
-
<div class="line"><a name="
|
|
2383
|
+
<p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00817">817</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
|
|
2384
|
+
<div class="fragment"><div class="line"><a name="l00818"></a><span class="lineno"> 818</span> {</div>
|
|
2385
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</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>
|
|
2386
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</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>
|
|
2387
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(lhs))</div>
|
|
2388
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  {</div>
|
|
2389
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8380eb5e2424c8c7bd290962f04a17ba">inVarToValTable</a>(rhs))</div>
|
|
2390
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  {</div>
|
|
2391
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs).empty());</div>
|
|
2392
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs);</div>
|
|
2393
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2394
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  {</div>
|
|
2395
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</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>
|
|
2396
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  }</div>
|
|
2397
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  }</div>
|
|
2398
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
|
|
2399
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  {</div>
|
|
2400
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs).empty());</div>
|
|
2401
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a85f206bddccb2d644ef20f60ea17c9f3">Addrs</a> &addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(lhs);</div>
|
|
2402
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &addr: addrs)</div>
|
|
2403
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  {</div>
|
|
2404
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs).empty());</div>
|
|
2405
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1ExeState.html#a99f4437a7e350fec131d48f52082d672">storeAddrs</a>(addr, <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a48fec38aad1c2a9a140ee94e9fdd7e9b">getAddrs</a>(rhs));</div>
|
|
2406
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div>
|
|
2407
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  </div>
|
|
2408
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  }</div>
|
|
2409
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  }</div>
|
|
2410
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> }</div>
|
|
2407
2411
|
</div><!-- fragment -->
|
|
2408
2412
|
</div>
|
|
2409
2413
|
</div>
|
|
@@ -2763,13 +2767,13 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2763
2767
|
<div class="ttc" id="aclassSVF_1_1AddressValue_html"><div class="ttname"><a href="classSVF_1_1AddressValue.html">SVF::AddressValue</a></div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00041">AddressValue.h:41</a></div></div>
|
|
2764
2768
|
<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#l00858">SVFStatements.h:858</a></div></div>
|
|
2765
2769
|
<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>
|
|
2766
|
-
<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#
|
|
2770
|
+
<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#l00479">SVFIR2ItvExeState.cpp:479</a></div></div>
|
|
2767
2771
|
<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>
|
|
2768
2772
|
<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#l01016">SVFStatements.h:1016</a></div></div>
|
|
2769
2773
|
<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#l00204">SVFIR2ItvExeState.h:204</a></div></div>
|
|
2770
2774
|
<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>
|
|
2771
2775
|
<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>
|
|
2772
|
-
<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#
|
|
2776
|
+
<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#l00447">SVFIR2ItvExeState.cpp:447</a></div></div>
|
|
2773
2777
|
<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>
|
|
2774
2778
|
<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#l00980">SVFStatements.h:980</a></div></div>
|
|
2775
2779
|
<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>
|
|
@@ -2802,7 +2806,7 @@ for 3rd pair <%var1, [2xi32]>, it is %var1'th element in array [2xi32] = 4
|
|
|
2802
2806
|
<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#l00528">SymbolTableInfo.cpp:528</a></div></div>
|
|
2803
2807
|
<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#l00973">SVFStatements.h:973</a></div></div>
|
|
2804
2808
|
<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="ttdoc">whether the variable is in varToAddrs table</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00122">SVFIR2ItvExeState.h:122</a></div></div>
|
|
2805
|
-
<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#
|
|
2809
|
+
<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#l00411">SVFIR2ItvExeState.cpp:411</a></div></div>
|
|
2806
2810
|
<!-- start footer part -->
|
|
2807
2811
|
<hr class="footer"/><address class="footer"><small>
|
|
2808
2812
|
Generated by  <a href="http://www.doxygen.org/index.html">
|