svf-tools 1.0.808 → 1.0.809

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.
@@ -782,40 +782,40 @@ $(function() {
782
782
  <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; {</div>
783
783
  <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(rhs);</div>
784
784
  <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; assert(!addrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
785
- <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
786
- <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; {</div>
787
- <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
788
- <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
789
- <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
790
- <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
791
- <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; _es.getVAddrs(lhs).setBottom();</div>
792
- <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">break</span>;</div>
793
- <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div>
794
- <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
795
- <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; {</div>
796
- <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
797
- <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
798
- <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; {</div>
799
- <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(lhs))</div>
800
- <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; {</div>
801
- <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; _es[lhs] = _es.load(addr);</div>
802
- <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div>
803
- <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">else</span></div>
804
- <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; {</div>
805
- <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; _es[lhs].join_with(_es.load(addr));</div>
806
- <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; }</div>
807
- <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div>
808
- <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
809
- <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; {</div>
810
- <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(lhs))</div>
811
- <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div>
812
- <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; _es.getVAddrs(lhs) = _es.loadVAddrs(addr);</div>
813
- <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
814
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">else</span></div>
815
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div>
816
- <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; _es.getVAddrs(lhs).join_with(_es.loadVAddrs(addr));</div>
817
- <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div>
818
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; }</div>
785
+ <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
786
+ <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
787
+ <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordtype">bool</span> isItv = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
788
+ <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
789
+ <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; {</div>
790
+ <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
791
+ <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
792
+ <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; {</div>
793
+ <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(_es.load(addr));</div>
794
+ <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; isItv = <span class="keyword">true</span>;</div>
795
+ <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div>
796
+ <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
797
+ <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; {</div>
798
+ <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(_es.loadVAddrs(addr));</div>
799
+ <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; isAddr = <span class="keyword">true</span>;</div>
800
+ <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; }</div>
801
+ <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">else</span></div>
802
+ <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; {</div>
803
+ <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// rhs not in table</span></div>
804
+ <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div>
805
+ <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div>
806
+ <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (isItv)</div>
807
+ <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div>
808
+ <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">// lhs var is an integer</span></div>
809
+ <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; _es[lhs] = rhsItv;</div>
810
+ <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div>
811
+ <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
812
+ <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; {</div>
813
+ <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="comment">// lhs var is an address</span></div>
814
+ <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; _es.getVAddrs(lhs) = rhsAddr;</div>
815
+ <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div>
816
+ <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">else</span></div>
817
+ <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; {</div>
818
+ <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// rhs not in table</span></div>
819
819
  <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; }</div>
820
820
  <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div>
821
821
  <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;}</div>
@@ -928,71 +928,78 @@ $(function() {
928
928
  <div class="line"><a name="l00931"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e"> 931</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVFIR2ItvExeState::translatePhi</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PhiStmt.html">PhiStmt</a> *phi)</div>
929
929
  <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;{</div>
930
930
  <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
931
- <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
932
- <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div>
933
- <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
934
- <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(curId))</div>
935
- <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
936
- <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;cur = _es[curId];</div>
937
- <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(res))</div>
938
- <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; {</div>
939
- <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; _es[res] = cur;</div>
940
- <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div>
941
- <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keywordflow">else</span></div>
942
- <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; {</div>
943
- <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; _es[res].<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(cur);</div>
944
- <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; }</div>
945
- <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; }</div>
946
- <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(curId))</div>
947
- <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; {</div>
948
- <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; assert(!getVAddrs(curId).empty());</div>
949
- <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;cur = getVAddrs(curId);</div>
950
- <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(res))</div>
951
- <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; {</div>
952
- <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; _es.getVAddrs(res) = cur;</div>
953
- <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; }</div>
954
- <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">else</span></div>
955
- <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; {</div>
956
- <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; _es.getVAddrs(res).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(cur);</div>
957
- <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div>
958
- <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div>
959
- <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div>
960
- <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;}</div>
961
- <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; </div>
962
- <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; </div>
963
- <div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 966</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVFIR2ItvExeState::translateCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
964
- <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;{</div>
965
- <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
966
- <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
967
- <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
968
- <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; {</div>
969
- <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; _es[lhs] = _es[rhs];</div>
970
- <div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; }</div>
971
- <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
972
- <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; {</div>
973
- <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; assert(!getVAddrs(rhs).empty());</div>
974
- <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
975
- <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div>
976
- <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;}</div>
977
- <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; </div>
978
- <div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 981</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVFIR2ItvExeState::translateRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
979
- <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;{</div>
980
- <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
981
- <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
982
- <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
983
- <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; {</div>
984
- <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; _es[lhs] = _es[rhs];</div>
985
- <div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; }</div>
986
- <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
987
- <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; {</div>
988
- <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; assert(!getVAddrs(rhs).empty());</div>
989
- <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
990
- <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; }</div>
991
- <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;}</div>
931
+ <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
932
+ <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
933
+ <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordtype">bool</span> isItv = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
934
+ <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
935
+ <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
936
+ <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
937
+ <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(curId))</div>
938
+ <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; {</div>
939
+ <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; rhsItv.<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(_es[curId]);</div>
940
+ <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; isItv = <span class="keyword">true</span>;</div>
941
+ <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div>
942
+ <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(curId))</div>
943
+ <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; {</div>
944
+ <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; assert(!getVAddrs(curId).empty());</div>
945
+ <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getVAddrs(curId));</div>
946
+ <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; isAddr = <span class="keyword">true</span>;</div>
947
+ <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; }</div>
948
+ <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">else</span></div>
949
+ <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; {</div>
950
+ <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="comment">// rhs not in the table</span></div>
951
+ <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div>
952
+ <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div>
953
+ <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">if</span> (isItv)</div>
954
+ <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; {</div>
955
+ <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="comment">// res var is an integer</span></div>
956
+ <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; _es[res] = rhsItv;</div>
957
+ <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div>
958
+ <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
959
+ <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; {</div>
960
+ <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="comment">// res var is an address</span></div>
961
+ <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; _es.getVAddrs(res) = rhsAddr;</div>
962
+ <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div>
963
+ <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">else</span></div>
964
+ <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; {</div>
965
+ <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="comment">// rhs not in table</span></div>
966
+ <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; }</div>
967
+ <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;}</div>
968
+ <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; </div>
969
+ <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; </div>
970
+ <div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 973</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVFIR2ItvExeState::translateCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallPE.html">CallPE</a> *callPE)</div>
971
+ <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;{</div>
972
+ <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
973
+ <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
974
+ <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
975
+ <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; {</div>
976
+ <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; _es[lhs] = _es[rhs];</div>
977
+ <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; }</div>
978
+ <div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
979
+ <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; {</div>
980
+ <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; assert(!getVAddrs(rhs).empty());</div>
981
+ <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
982
+ <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div>
983
+ <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;}</div>
984
+ <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; </div>
985
+ <div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 988</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVFIR2ItvExeState::translateRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetPE.html">RetPE</a> *retPE)</div>
986
+ <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;{</div>
987
+ <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
988
+ <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
989
+ <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
990
+ <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; {</div>
991
+ <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; _es[lhs] = _es[rhs];</div>
992
+ <div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; }</div>
993
+ <div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
994
+ <div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; {</div>
995
+ <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; assert(!getVAddrs(rhs).empty());</div>
996
+ <div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
997
+ <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; }</div>
998
+ <div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;}</div>
992
999
  </div><!-- fragment --></div><!-- contents -->
993
1000
  <div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
994
1001
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00904">SVFStatements.h:904</a></div></div>
995
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00966">SVFIR2ItvExeState.cpp:966</a></div></div>
1002
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00973">SVFIR2ItvExeState.cpp:973</a></div></div>
996
1003
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVF::SVFType::SVFArrayTy</a></div><div class="ttdeci">@ SVFArrayTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00257">SVFType.h:257</a></div></div>
997
1004
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
998
1005
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00985">SVFStatements.h:985</a></div></div>
@@ -1061,7 +1068,7 @@ $(function() {
1061
1068
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
1062
1069
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a39dead4fe213e3d02b1613debbc86e71"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a39dead4fe213e3d02b1613debbc86e71">SVF::IntervalExeState::_locToItvVal</a></div><div class="ttdeci">LocToValMap _locToItvVal</div><div class="ttdoc">key: nodeID value: Domain Value</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00070">IntervalExeState.h:70</a></div></div>
1063
1070
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
1064
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00981">SVFIR2ItvExeState.cpp:981</a></div></div>
1071
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00988">SVFIR2ItvExeState.cpp:988</a></div></div>
1065
1072
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">SVF::CmpStmt::ICMP_SLT</a></div><div class="ttdeci">@ ICMP_SLT</div><div class="ttdoc">signed less than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00917">SVFStatements.h:917</a></div></div>
1066
1073
  <div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00469">SVFType.h:469</a></div></div>
1067
1074
  <div class="ttc" id="aclassSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00114">SVFIR.h:114</a></div></div>
@@ -264,7 +264,7 @@ $(function() {
264
264
  <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#endif //Z3_EXAMPLE_SVFIR2ITVEXESTATE_H</span></div>
265
265
  </div><!-- fragment --></div><!-- contents -->
266
266
  <div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
267
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00966">SVFIR2ItvExeState.cpp:966</a></div></div>
267
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00973">SVFIR2ItvExeState.cpp:973</a></div></div>
268
268
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
269
269
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae48cc31474d2c1cbc581b8f7ed433a14"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae48cc31474d2c1cbc581b8f7ed433a14">SVF::SVFIR2ItvExeState::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00174">SVFIR2ItvExeState.h:174</a></div></div>
270
270
  <div class="ttc" id="aclassSVF_1_1AddrStmt_html"><div class="ttname"><a href="classSVF_1_1AddrStmt.html">SVF::AddrStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00313">SVFStatements.h:313</a></div></div>
@@ -305,7 +305,7 @@ $(function() {
305
305
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
306
306
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
307
307
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a66c426719f583653cb70189f01d6fda5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">SVF::SVFIR2ItvExeState::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00162">SVFIR2ItvExeState.h:162</a></div></div>
308
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00981">SVFIR2ItvExeState.cpp:981</a></div></div>
308
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00988">SVFIR2ItvExeState.cpp:988</a></div></div>
309
309
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af0b6abd2310a9bf0311760b290114341"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af0b6abd2310a9bf0311760b290114341">SVF::SVFIR2ItvExeState::setRelEs</a></div><div class="ttdeci">void setRelEs(const RelExeState &amp;relEs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00059">SVFIR2ItvExeState.h:59</a></div></div>
310
310
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ad49576a7192c87d41f4dc923cd3d0efe"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ad49576a7192c87d41f4dc923cd3d0efe">SVF::SVFIR2ItvExeState::getByteOffsetfromGepTypePair</a></div><div class="ttdeci">IntervalValue getByteOffsetfromGepTypePair(const AccessPath::IdxVarAndGepTypePair &amp;gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the byte offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00201">SVFIR2ItvExeState.cpp:201</a></div></div>
311
311
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00534">SVFIR2ItvExeState.cpp:534</a></div></div>
@@ -1574,20 +1574,20 @@ for 3rd pair &lt;%var1, [2xi32]&gt;, it is %var1'th element in array [2xi32] = 4
1574
1574
  </table>
1575
1575
  </div><div class="memdoc">
1576
1576
 
1577
- <p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00966">966</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
1578
- <div class="fragment"><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;{</div>
1579
- <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
1580
- <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
1581
- <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
1582
- <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; {</div>
1583
- <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <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>
1584
- <div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; }</div>
1585
- <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
1586
- <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; {</div>
1587
- <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
1588
- <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
1589
- <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div>
1590
- <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;}</div>
1577
+ <p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00973">973</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
1578
+ <div class="fragment"><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;{</div>
1579
+ <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
1580
+ <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = callPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
1581
+ <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
1582
+ <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; {</div>
1583
+ <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <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>
1584
+ <div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; }</div>
1585
+ <div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
1586
+ <div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; {</div>
1587
+ <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
1588
+ <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
1589
+ <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div>
1590
+ <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;}</div>
1591
1591
  </div><!-- fragment -->
1592
1592
  </div>
1593
1593
  </div>
@@ -2044,40 +2044,40 @@ for 3rd pair &lt;%var1, [2xi32]&gt;, it is %var1'th element in array [2xi32] = 4
2044
2044
  <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; {</div>
2045
2045
  <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &amp;addrs = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
2046
2046
  <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; assert(!addrs.empty());</div>
2047
- <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
2048
- <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; {</div>
2049
- <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr);</div>
2050
- <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab5eebce09b695a3ea1a1c6d5641296e2">inLocToIValTable</a>(objId))</div>
2051
- <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
2052
- <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">inLocToAddrsTable</a>(objId))</div>
2053
- <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs).<a class="code" href="classSVF_1_1AddressValue.html#a77d6a1706328d86b210b26bacaf2fa9f">setBottom</a>();</div>
2054
- <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">break</span>;</div>
2055
- <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div>
2056
- <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
2057
- <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; {</div>
2058
- <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr);</div>
2059
- <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab5eebce09b695a3ea1a1c6d5641296e2">inLocToIValTable</a>(objId))</div>
2060
- <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; {</div>
2061
- <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(lhs))</div>
2062
- <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; {</div>
2063
- <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ae28249f952e1aa620b23e946a1f209ab">load</a>(addr);</div>
2064
- <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; }</div>
2065
- <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">else</span></div>
2066
- <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; {</div>
2067
- <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs].join_with(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ae28249f952e1aa620b23e946a1f209ab">load</a>(addr));</div>
2068
- <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; }</div>
2069
- <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div>
2070
- <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">inLocToAddrsTable</a>(objId))</div>
2071
- <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; {</div>
2072
- <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(lhs))</div>
2073
- <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; {</div>
2074
- <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#aa9bf42bd6ea06a7e61171244461eb066">loadVAddrs</a>(addr);</div>
2075
- <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
2076
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">else</span></div>
2077
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div>
2078
- <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#aa9bf42bd6ea06a7e61171244461eb066">loadVAddrs</a>(addr));</div>
2079
- <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div>
2080
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; }</div>
2047
+ <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
2048
+ <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
2049
+ <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordtype">bool</span> isItv = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
2050
+ <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
2051
+ <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; {</div>
2052
+ <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a66c426719f583653cb70189f01d6fda5">getInternalID</a>(addr);</div>
2053
+ <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab5eebce09b695a3ea1a1c6d5641296e2">inLocToIValTable</a>(objId))</div>
2054
+ <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; {</div>
2055
+ <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; 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>
2056
+ <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; isItv = <span class="keyword">true</span>;</div>
2057
+ <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div>
2058
+ <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a174523c405d7a7d7dbbcbaa43c335665">inLocToAddrsTable</a>(objId))</div>
2059
+ <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; {</div>
2060
+ <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; 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#aa9bf42bd6ea06a7e61171244461eb066">loadVAddrs</a>(addr));</div>
2061
+ <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; isAddr = <span class="keyword">true</span>;</div>
2062
+ <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; }</div>
2063
+ <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">else</span></div>
2064
+ <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; {</div>
2065
+ <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="comment">// rhs not in table</span></div>
2066
+ <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div>
2067
+ <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div>
2068
+ <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (isItv)</div>
2069
+ <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div>
2070
+ <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">// lhs var is an integer</span></div>
2071
+ <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[lhs] = rhsItv;</div>
2072
+ <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div>
2073
+ <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
2074
+ <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; {</div>
2075
+ <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="comment">// lhs var is an address</span></div>
2076
+ <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = rhsAddr;</div>
2077
+ <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div>
2078
+ <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">else</span></div>
2079
+ <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; {</div>
2080
+ <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// rhs not in table</span></div>
2081
2081
  <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; }</div>
2082
2082
  <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div>
2083
2083
  <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;}</div>
@@ -2136,36 +2136,43 @@ for 3rd pair &lt;%var1, [2xi32]&gt;, it is %var1'th element in array [2xi32] = 4
2136
2136
  <p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00931">931</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
2137
2137
  <div class="fragment"><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;{</div>
2138
2138
  <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
2139
- <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
2140
- <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div>
2141
- <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
2142
- <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(curId))</div>
2143
- <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
2144
- <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;cur = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[curId];</div>
2145
- <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(res))</div>
2146
- <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; {</div>
2147
- <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = cur;</div>
2148
- <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div>
2149
- <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keywordflow">else</span></div>
2150
- <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; {</div>
2151
- <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res].join_with(cur);</div>
2152
- <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; }</div>
2153
- <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; }</div>
2154
- <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(curId))</div>
2155
- <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; {</div>
2156
- <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(curId).empty());</div>
2157
- <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2b6de5a37851f83ed3fa8f69145148a8">VAddrs</a> &amp;cur = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(curId);</div>
2158
- <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(res))</div>
2159
- <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; {</div>
2160
- <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(res) = cur;</div>
2161
- <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; }</div>
2162
- <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">else</span></div>
2163
- <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; {</div>
2164
- <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(res).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(cur);</div>
2165
- <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div>
2166
- <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div>
2167
- <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div>
2168
- <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;}</div>
2139
+ <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> rhsItv = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
2140
+ <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a> rhsAddr;</div>
2141
+ <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordtype">bool</span> isItv = <span class="keyword">false</span>, isAddr = <span class="keyword">false</span>;</div>
2142
+ <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i &lt; phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#af300571886b7aa2d84b0a70851c99bc3">getOpVarNum</a>(); i++)</div>
2143
+ <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
2144
+ <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> curId = phi-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(i);</div>
2145
+ <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(curId))</div>
2146
+ <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; {</div>
2147
+ <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; 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>
2148
+ <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; isItv = <span class="keyword">true</span>;</div>
2149
+ <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div>
2150
+ <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(curId))</div>
2151
+ <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; {</div>
2152
+ <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(curId).empty());</div>
2153
+ <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; rhsAddr.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(curId));</div>
2154
+ <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; isAddr = <span class="keyword">true</span>;</div>
2155
+ <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; }</div>
2156
+ <div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">else</span></div>
2157
+ <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; {</div>
2158
+ <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="comment">// rhs not in the table</span></div>
2159
+ <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div>
2160
+ <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div>
2161
+ <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">if</span> (isItv)</div>
2162
+ <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; {</div>
2163
+ <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="comment">// res var is an integer</span></div>
2164
+ <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>[res] = rhsItv;</div>
2165
+ <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div>
2166
+ <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (isAddr)</div>
2167
+ <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; {</div>
2168
+ <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="comment">// res var is an address</span></div>
2169
+ <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(res) = rhsAddr;</div>
2170
+ <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div>
2171
+ <div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">else</span></div>
2172
+ <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; {</div>
2173
+ <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="comment">// rhs not in table</span></div>
2174
+ <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; }</div>
2175
+ <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;}</div>
2169
2176
  </div><!-- fragment -->
2170
2177
  </div>
2171
2178
  </div>
@@ -2254,20 +2261,20 @@ for 3rd pair &lt;%var1, [2xi32]&gt;, it is %var1'th element in array [2xi32] = 4
2254
2261
  </table>
2255
2262
  </div><div class="memdoc">
2256
2263
 
2257
- <p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00981">981</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
2258
- <div class="fragment"><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;{</div>
2259
- <div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
2260
- <div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
2261
- <div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
2262
- <div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; {</div>
2263
- <div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <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>
2264
- <div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; }</div>
2265
- <div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
2266
- <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; {</div>
2267
- <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
2268
- <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
2269
- <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; }</div>
2270
- <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;}</div>
2264
+ <p class="definition">Definition at line <a class="el" href="SVFIR2ItvExeState_8cpp_source.html#l00988">988</a> of file <a class="el" href="SVFIR2ItvExeState_8cpp_source.html">SVFIR2ItvExeState.cpp</a>.</p>
2265
+ <div class="fragment"><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;{</div>
2266
+ <div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> lhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
2267
+ <div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rhs = retPE-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
2268
+ <div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8107e336e3a84fd3b7341786db7e7a13">inVarToIValTable</a>(rhs))</div>
2269
+ <div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; {</div>
2270
+ <div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <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>
2271
+ <div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; }</div>
2272
+ <div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a999c358b80dd07591b0432eaa41c20c9">inVarToAddrsTable</a>(rhs))</div>
2273
+ <div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; {</div>
2274
+ <div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; assert(!<a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs).empty());</div>
2275
+ <div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#ab6b5ed878ce12016424c48c6252a764e">_es</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(lhs) = <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#add123d3c64674d34c6c8973cb82c6270">getVAddrs</a>(rhs);</div>
2276
+ <div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; }</div>
2277
+ <div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;}</div>
2271
2278
  </div><!-- fragment -->
2272
2279
  </div>
2273
2280
  </div>
@@ -2672,7 +2679,6 @@ for 3rd pair &lt;%var1, [2xi32]&gt;, it is %var1'th element in array [2xi32] = 4
2672
2679
  <div class="ttc" id="anamespaceSVF_html_a5c4820681ef340339ddded756eb82ae1"><div class="ttname"><a href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">SVF::APOffset</a></div><div class="ttdeci">s64_t APOffset</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00061">SVFType.h:61</a></div></div>
2673
2680
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00904">SVFStatements.h:904</a></div></div>
2674
2681
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVF::SVFType::SVFArrayTy</a></div><div class="ttdeci">@ SVFArrayTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00257">SVFType.h:257</a></div></div>
2675
- <div class="ttc" id="aclassSVF_1_1AddressValue_html_a77d6a1706328d86b210b26bacaf2fa9f"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a77d6a1706328d86b210b26bacaf2fa9f">SVF::AddressValue::setBottom</a></div><div class="ttdeci">void setBottom()</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00197">AddressValue.h:197</a></div></div>
2676
2682
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae48cc31474d2c1cbc581b8f7ed433a14"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae48cc31474d2c1cbc581b8f7ed433a14">SVF::SVFIR2ItvExeState::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00174">SVFIR2ItvExeState.h:174</a></div></div>
2677
2683
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00985">SVFStatements.h:985</a></div></div>
2678
2684
  <div class="ttc" id="aclassSVF_1_1GepStmt_html_a28a7ca818584abdc2d345b41d592c5dc"><div class="ttname"><a href="classSVF_1_1GepStmt.html#a28a7ca818584abdc2d345b41d592c5dc">SVF::GepStmt::accumulateConstantByteOffset</a></div><div class="ttdeci">APOffset accumulateConstantByteOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00510">SVFStatements.h:510</a></div></div>
@@ -2788,6 +2794,7 @@ for 3rd pair &lt;%var1, [2xi32]&gt;, it is %var1'th element in array [2xi32] = 4
2788
2794
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a7f828731597450f1d43b61413ab0e7bb"><div class="ttname"><a href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">SVF::MemObj::isConstantArray</a></div><div class="ttdeci">bool isConstantArray() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00533">SymbolTableInfo.cpp:533</a></div></div>
2789
2795
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_aa6a21fb1cfbc263bb38651176c495632"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">SVF::CmpStmt::getPredicate</a></div><div class="ttdeci">u32_t getPredicate() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00947">SVFStatements.h:947</a></div></div>
2790
2796
  <div class="ttc" id="aclassSVF_1_1SVFValue_html_a4a0cfe3a8f37d33ffcdca3d66026dcc3"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">SVF::SVFValue::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Needs to be implemented by a SVF front end.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01272">LLVMUtil.cpp:1272</a></div></div>
2797
+ <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>
2791
2798
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html_a884199a26d43d09bc7e33369fceb8274"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html#a884199a26d43d09bc7e33369fceb8274">SVF::IntervalExeState::inVarToIValTable</a></div><div class="ttdeci">bool inVarToIValTable(u32_t id) const</div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00163">IntervalExeState.h:163</a></div></div>
2792
2799
  <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#l00859">SVFStatements.h:859</a></div></div>
2793
2800
  <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 &amp;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>
@@ -2821,6 +2828,7 @@ for 3rd pair &lt;%var1, [2xi32]&gt;, it is %var1'th element in array [2xi32] = 4
2821
2828
  <div class="ttc" id="aclassSVF_1_1ExeState_html_a2f01e583abcdeb236a11e85c7a8aafdc"><div class="ttname"><a href="classSVF_1_1ExeState.html#a2f01e583abcdeb236a11e85c7a8aafdc">SVF::ExeState::getVirtualMemAddress</a></div><div class="ttdeci">static u32_t getVirtualMemAddress(u32_t idx)</div><div class="ttdoc">The physical address starts with 0x7f...... + idx.</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00258">ExeState.h:258</a></div></div>
2822
2829
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">SVF::CmpStmt::ICMP_UGT</a></div><div class="ttdeci">@ ICMP_UGT</div><div class="ttdoc">unsigned greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00911">SVFStatements.h:911</a></div></div>
2823
2830
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">SVF::BinaryOPStmt::And</a></div><div class="ttdeci">@ And</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00989">SVFStatements.h:989</a></div></div>
2831
+ <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a3771eb932069dcad8212009efc411b99"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">SVF::IntervalValue::join_with</a></div><div class="ttdeci">void join_with(const IntervalValue &amp;other)</div><div class="ttdoc">Current IntervalValue joins with another IntervalValue.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00345">IntervalValue.h:345</a></div></div>
2824
2832
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d">SVF::SVFType::SVFStructTy</a></div><div class="ttdeci">@ SVFStructTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00256">SVFType.h:256</a></div></div>
2825
2833
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">SVF::CmpStmt::FCMP_TRUE</a></div><div class="ttdeci">@ FCMP_TRUE</div><div class="ttdoc">1 1 1 1 Always true (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00905">SVFStatements.h:905</a></div></div>
2826
2834
  <div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
@@ -478,7 +478,7 @@ Functions</h2></td></tr>
478
478
  </div>
479
479
  </div><!-- contents -->
480
480
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
481
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00966">SVFIR2ItvExeState.cpp:966</a></div></div>
481
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00973">SVFIR2ItvExeState.cpp:973</a></div></div>
482
482
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
483
483
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
484
484
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
@@ -511,7 +511,7 @@ Functions</h2></td></tr>
511
511
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html">SVF::SVFIR2ItvExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00041">SVFIR2ItvExeState.h:41</a></div></div>
512
512
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
513
513
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
514
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00981">SVFIR2ItvExeState.cpp:981</a></div></div>
514
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00988">SVFIR2ItvExeState.cpp:988</a></div></div>
515
515
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
516
516
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00534">SVFIR2ItvExeState.cpp:534</a></div></div>
517
517
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
@@ -307,7 +307,7 @@ $(function() {
307
307
  <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
308
308
  </div><!-- fragment --></div><!-- contents -->
309
309
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a0df409a67428e528321869d201f2a474"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a0df409a67428e528321869d201f2a474">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(const Data &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00165">WorkList.h:165</a></div></div>
310
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00966">SVFIR2ItvExeState.cpp:966</a></div></div>
310
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_adb82778157e0f5e7a2ea4d803bcd07ad"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad">SVF::SVFIR2ItvExeState::translateCall</a></div><div class="ttdeci">void translateCall(const CallPE *callPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00973">SVFIR2ItvExeState.cpp:973</a></div></div>
311
311
  <div class="ttc" id="aclassSVF_1_1CopyStmt_html"><div class="ttname"><a href="classSVF_1_1CopyStmt.html">SVF::CopyStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00351">SVFStatements.h:351</a></div></div>
312
312
  <div class="ttc" id="asvf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00205">svf-ex.cpp:205</a></div></div>
313
313
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a8fa72918fce7e9c0b2dc34b683a797c6"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a8fa72918fce7e9c0b2dc34b683a797c6">SVF::FIFOWorkList::pop</a></div><div class="ttdeci">Data pop()</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00200">WorkList.h:200</a></div></div>
@@ -351,7 +351,7 @@ $(function() {
351
351
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html">SVF::BinaryOPStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00958">SVFStatements.h:958</a></div></div>
352
352
  <div class="ttc" id="aclassSVF_1_1StoreStmt_html"><div class="ttname"><a href="classSVF_1_1StoreStmt.html">SVF::StoreStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00387">SVFStatements.h:387</a></div></div>
353
353
  <div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00177">SVFValue.h:177</a></div></div>
354
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00981">SVFIR2ItvExeState.cpp:981</a></div></div>
354
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a31e299f91eed29d1a8db3b884d57d1dc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc">SVF::SVFIR2ItvExeState::translateRet</a></div><div class="ttdeci">void translateRet(const RetPE *retPE)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00988">SVFIR2ItvExeState.cpp:988</a></div></div>
355
355
  <div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
356
356
  <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a449ee8f244120866037c7f6d2ee5fc13"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVF::SVFIR2ItvExeState::translateBinary</a></div><div class="ttdeci">void translateBinary(const BinaryOPStmt *binary)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00534">SVFIR2ItvExeState.cpp:534</a></div></div>
357
357
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00221">GenericGraph.h:221</a></div></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.808",
3
+ "version": "1.0.809",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -785,41 +785,41 @@ void SVFIR2ItvExeState::translateLoad(const LoadStmt *load)
785
785
  {
786
786
  VAddrs &addrs = getVAddrs(rhs);
787
787
  assert(!addrs.empty());
788
- for (const auto &addr: addrs)
789
- {
790
- u32_t objId = getInternalID(addr);
791
- if (inLocToIValTable(objId))
792
- _es[lhs] = IntervalValue::bottom();
793
- else if (inLocToAddrsTable(objId))
794
- _es.getVAddrs(lhs).setBottom();
795
- break;
796
- }
788
+ IntervalValue rhsItv = IntervalValue::bottom();
789
+ AddressValue rhsAddr;
790
+ bool isItv = false, isAddr = false;
797
791
  for (const auto &addr: addrs)
798
792
  {
799
793
  u32_t objId = getInternalID(addr);
800
794
  if (inLocToIValTable(objId))
801
795
  {
802
- if (!inVarToIValTable(lhs))
803
- {
804
- _es[lhs] = _es.load(addr);
805
- }
806
- else
807
- {
808
- _es[lhs].join_with(_es.load(addr));
809
- }
796
+ rhsItv.join_with(_es.load(addr));
797
+ isItv = true;
810
798
  }
811
799
  else if (inLocToAddrsTable(objId))
812
800
  {
813
- if (!inVarToAddrsTable(lhs))
814
- {
815
- _es.getVAddrs(lhs) = _es.loadVAddrs(addr);
816
- }
817
- else
818
- {
819
- _es.getVAddrs(lhs).join_with(_es.loadVAddrs(addr));
820
- }
801
+ rhsAddr.join_with(_es.loadVAddrs(addr));
802
+ isAddr = true;
803
+ }
804
+ else
805
+ {
806
+ // rhs not in table
821
807
  }
822
808
  }
809
+ if (isItv)
810
+ {
811
+ // lhs var is an integer
812
+ _es[lhs] = rhsItv;
813
+ }
814
+ else if (isAddr)
815
+ {
816
+ // lhs var is an address
817
+ _es.getVAddrs(lhs) = rhsAddr;
818
+ }
819
+ else
820
+ {
821
+ // rhs not in table
822
+ }
823
823
  }
824
824
  }
825
825
 
@@ -931,35 +931,42 @@ void SVFIR2ItvExeState::translateSelect(const SelectStmt *select)
931
931
  void SVFIR2ItvExeState::translatePhi(const PhiStmt *phi)
932
932
  {
933
933
  u32_t res = phi->getResID();
934
+ IntervalValue rhsItv = IntervalValue::bottom();
935
+ AddressValue rhsAddr;
936
+ bool isItv = false, isAddr = false;
934
937
  for (u32_t i = 0; i < phi->getOpVarNum(); i++)
935
938
  {
936
939
  NodeID curId = phi->getOpVarID(i);
937
940
  if (inVarToIValTable(curId))
938
941
  {
939
- const IntervalValue &cur = _es[curId];
940
- if (!inVarToIValTable(res))
941
- {
942
- _es[res] = cur;
943
- }
944
- else
945
- {
946
- _es[res].join_with(cur);
947
- }
942
+ rhsItv.join_with(_es[curId]);
943
+ isItv = true;
948
944
  }
949
945
  else if (inVarToAddrsTable(curId))
950
946
  {
951
947
  assert(!getVAddrs(curId).empty());
952
- const VAddrs &cur = getVAddrs(curId);
953
- if (!inVarToAddrsTable(res))
954
- {
955
- _es.getVAddrs(res) = cur;
956
- }
957
- else
958
- {
959
- _es.getVAddrs(res).join_with(cur);
960
- }
948
+ rhsAddr.join_with(getVAddrs(curId));
949
+ isAddr = true;
950
+ }
951
+ else
952
+ {
953
+ // rhs not in the table
961
954
  }
962
955
  }
956
+ if (isItv)
957
+ {
958
+ // res var is an integer
959
+ _es[res] = rhsItv;
960
+ }
961
+ else if (isAddr)
962
+ {
963
+ // res var is an address
964
+ _es.getVAddrs(res) = rhsAddr;
965
+ }
966
+ else
967
+ {
968
+ // rhs not in table
969
+ }
963
970
  }
964
971
 
965
972