svf-tools 1.0.789 → 1.0.791

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.
@@ -104,933 +104,936 @@ $(function() {
104
104
  <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div>
105
105
  <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span>SVFUtil;</div>
106
106
  <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
107
- <div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e"> 36</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">SVFIR2ItvExeState::applySummary</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;es)</div>
108
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div>
109
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">_varToItvVal</a>)</div>
110
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; {</div>
111
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; _es._varToItvVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
112
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
113
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1IntervalExeState.html#a39dead4fe213e3d02b1613debbc86e71">_locToItvVal</a>)</div>
114
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div>
115
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; _es._locToItvVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
116
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
117
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>)</div>
118
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div>
119
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; _es._varToVAddrs[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
120
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
121
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>)</div>
122
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; {</div>
123
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; _es._locToVAddrs[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
124
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
125
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div>
126
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
127
- <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1"> 56</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVFIR2ItvExeState::moveToGlobal</a>()</div>
128
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div>
129
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: _es._varToItvVal)</div>
130
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div>
131
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">_varToItvVal</a>.insert(it);</div>
132
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
133
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: _es._locToItvVal)</div>
134
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; {</div>
135
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a39dead4fe213e3d02b1613debbc86e71">_locToItvVal</a>.insert(it);</div>
136
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div>
137
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;_varToVAddr: _es._varToVAddrs)</div>
138
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
139
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.insert(_varToVAddr);</div>
140
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
141
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;_locToVAddr: _es._locToVAddrs)</div>
142
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div>
143
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.insert(_locToVAddr);</div>
144
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
145
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
146
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; _es._varToItvVal.clear();</div>
147
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">_varToItvVal</a>.erase(<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;getBlkPtr());</div>
148
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; _es._varToItvVal[<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
149
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; _es._locToItvVal.clear();</div>
150
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; _es._varToVAddrs.clear();</div>
151
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; _es._locToVAddrs.clear();</div>
152
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div>
153
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
154
- <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a57cbbcc977705ba7cd660bb5b632a66c"> 83</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a57cbbcc977705ba7cd660bb5b632a66c">SVFIR2ItvExeState::widenVAddrs</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;rhs)</div>
155
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div>
156
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>)</div>
157
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; {</div>
158
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.find(rhsItem.first);</div>
159
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.end())</div>
160
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
161
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: rhsItem.second)</div>
162
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
163
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span> (!lhsIter-&gt;second.contains(addr))</div>
164
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; {</div>
165
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i &lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
166
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div>
167
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; lhsIter-&gt;second.join_with(getGepObjAddress(getInternalID(addr), i));</div>
168
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
169
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
170
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div>
171
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
172
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
173
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>)</div>
174
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
175
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.find(rhsItem.first);</div>
176
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.end())</div>
177
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
178
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: rhsItem.second)</div>
179
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
180
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (!lhsIter-&gt;second.contains(addr))</div>
181
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
182
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i &lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
183
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; {</div>
184
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; lhsIter-&gt;second.join_with(getGepObjAddress(getInternalID(addr), i));</div>
185
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
186
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
187
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div>
188
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
189
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
190
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div>
191
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
192
- <div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c"> 121</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c">SVFIR2ItvExeState::narrowVAddrs</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;rhs)</div>
193
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div>
194
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>)</div>
195
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; {</div>
196
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.find(rhsItem.first);</div>
197
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.end())</div>
198
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
199
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: lhsIter-&gt;second)</div>
200
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; {</div>
201
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
202
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
203
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; lhsIter-&gt;second = rhsItem.second;</div>
204
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">break</span>;</div>
205
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
206
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
207
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
208
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
209
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>)</div>
210
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div>
211
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.find(rhsItem.first);</div>
212
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.end())</div>
213
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
214
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: lhsIter-&gt;second)</div>
215
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
216
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
217
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
218
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; lhsIter-&gt;second = rhsItem.second;</div>
219
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">break</span>;</div>
220
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
221
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
222
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
223
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
224
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div>
225
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
226
- <div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a"> 155</a></span>&#160;<a class="code" href="classSVF_1_1AddressValue.html">SVFIR2ItvExeState::VAddrs</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVFIR2ItvExeState::getGepObjAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pointer, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
227
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div>
228
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; assert(!getVAddrs(pointer).empty());</div>
229
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(pointer);</div>
230
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> ret;</div>
231
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
232
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
233
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; int64_t baseObj = getInternalID(addr);</div>
234
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (baseObj == 0)</div>
235
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
236
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; ret.<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(0));</div>
237
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">continue</span>;</div>
238
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
239
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; assert(SVFUtil::isa&lt;ObjVar&gt;(_svfir-&gt;getGNode(baseObj)) &amp;&amp; <span class="stringliteral">&quot;Fail to get the base object address!&quot;</span>);</div>
240
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepObj = _svfir-&gt;getGepObjVar(baseObj, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
241
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; initSVFVar(gepObj);</div>
242
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; ret.<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(gepObj));</div>
243
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
244
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> ret;</div>
245
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div>
246
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
247
- <div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b"> 176</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">SVFIR2ItvExeState::getBytefromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> elemBytesize)</div>
248
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div>
249
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
250
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
251
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
252
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
253
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
254
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxByteLimit = 99999;</div>
255
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minByteLimit = -99999;</div>
256
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">auto</span> valueReshape = [&amp;](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
257
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div>
258
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &lt; (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)minByteLimit)</div>
259
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
260
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> minByteLimit;</div>
261
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
262
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt; (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)maxByteLimit)</div>
263
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div>
264
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">return</span> maxByteLimit;</div>
265
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div>
266
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">else</span></div>
267
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
268
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
269
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
270
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; };</div>
271
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (op)</div>
272
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
273
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; offsetLb = offsetUb = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() &gt; maxByteLimit</div>
274
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; ? maxByteLimit</div>
275
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; : op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
276
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
277
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">else</span></div>
278
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div>
279
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
280
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;idxVal = _es[idx];</div>
281
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
282
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> std::make_pair(0, maxByteLimit);</div>
283
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// if idxVal is a concrete value</span></div>
284
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
285
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div>
286
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
287
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
288
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">else</span></div>
289
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
290
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
291
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
292
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
293
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
294
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
295
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
296
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div>
297
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
298
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; {</div>
299
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; offsetLb = offsetLb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType())* elemBytesize;</div>
300
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; offsetUb = offsetUb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType())* elemBytesize;</div>
301
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div>
302
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">else</span></div>
303
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
304
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; offsetLb = offsetLb * elemBytesize;</div>
305
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; offsetUb = offsetUb * elemBytesize;</div>
306
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
307
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
308
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
309
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;}</div>
310
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
311
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; </div>
312
- <div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb"> 243</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVFIR2ItvExeState::getIndexfromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
313
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;{</div>
314
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
315
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
316
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
317
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
318
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
319
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
320
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minFieldLimit = 0;</div>
321
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">auto</span> valueReshape = [&amp;](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
322
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div>
323
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &lt; minFieldLimit)</div>
324
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
325
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> minFieldLimit;</div>
326
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
327
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt; maxFieldLimit)</div>
328
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; {</div>
329
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> maxFieldLimit;</div>
330
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div>
331
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">else</span></div>
332
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div>
333
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
334
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
335
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; };</div>
336
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span> (op)</div>
337
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
338
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; offsetLb = offsetUb = valueReshape(op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>());</div>
339
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
340
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">else</span></div>
341
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
342
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
343
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">//if (!inVarToIValTable(idx)) return std::make_pair(-1, -1);</span></div>
344
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;idxVal = _es[idx];</div>
345
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
346
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> std::make_pair(0, <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
347
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// if idxVal is a concrete value</span></div>
348
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
349
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
350
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
351
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
352
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">else</span></div>
353
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; {</div>
354
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
355
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
356
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
357
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div>
358
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
359
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
360
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
361
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
362
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div>
363
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; offsetLb = offsetLb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
364
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; offsetUb = offsetUb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
365
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
366
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">else</span></div>
367
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; {</div>
368
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
369
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; -&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
370
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; -&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
371
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span> (so.empty() || offsetUb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() ||</div>
372
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; offsetLb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
373
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div>
374
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; offsetLb = 0;</div>
375
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; offsetUb = maxFieldLimit;</div>
376
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div>
377
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">else</span></div>
378
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; {</div>
379
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; offsetLb =</div>
380
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
381
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetLb);</div>
382
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; offsetUb =</div>
107
+ <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<a class="code" href="classSVF_1_1AddressValue.html">SVF::SVFIR2ItvExeState::VAddrs</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a75d5dfbc8252ef0994951af32aa53b74">SVF::SVFIR2ItvExeState::globalNullVaddrs</a> =</div>
108
+ <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">AddressValue</a>();</div>
109
+ <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
110
+ <div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e"> 39</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">SVFIR2ItvExeState::applySummary</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;es)</div>
111
+ <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div>
112
+ <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">_varToItvVal</a>)</div>
113
+ <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; {</div>
114
+ <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; _es._varToItvVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
115
+ <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div>
116
+ <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1IntervalExeState.html#a39dead4fe213e3d02b1613debbc86e71">_locToItvVal</a>)</div>
117
+ <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
118
+ <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; _es._locToItvVal[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
119
+ <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
120
+ <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>)</div>
121
+ <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
122
+ <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; _es._varToVAddrs[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
123
+ <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div>
124
+ <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>: es.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>)</div>
125
+ <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
126
+ <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; _es._locToVAddrs[<a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.first] = <a class="code" href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a>.second;</div>
127
+ <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
128
+ <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
129
+ <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
130
+ <div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1"> 59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVFIR2ItvExeState::moveToGlobal</a>()</div>
131
+ <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div>
132
+ <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: _es._varToItvVal)</div>
133
+ <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div>
134
+ <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">_varToItvVal</a>.insert(it);</div>
135
+ <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
136
+ <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: _es._locToItvVal)</div>
137
+ <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
138
+ <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a39dead4fe213e3d02b1613debbc86e71">_locToItvVal</a>.insert(it);</div>
139
+ <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div>
140
+ <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;_varToVAddr: _es._varToVAddrs)</div>
141
+ <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
142
+ <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.insert(_varToVAddr);</div>
143
+ <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
144
+ <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;_locToVAddr: _es._locToVAddrs)</div>
145
+ <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; {</div>
146
+ <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.insert(_locToVAddr);</div>
147
+ <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div>
148
+ <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
149
+ <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; _es._varToItvVal.clear();</div>
150
+ <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#ac72e3ae77e06e0dfc7c2edd2bf765d77">_varToItvVal</a>.erase(<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;getBlkPtr());</div>
151
+ <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; _es._varToItvVal[<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3b417ee79560fd00f4cf80906044c198">getBlkPtr</a>()] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
152
+ <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; _es._locToItvVal.clear();</div>
153
+ <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; _es._varToVAddrs.clear();</div>
154
+ <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; _es._locToVAddrs.clear();</div>
155
+ <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div>
156
+ <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
157
+ <div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a57cbbcc977705ba7cd660bb5b632a66c"> 86</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a57cbbcc977705ba7cd660bb5b632a66c">SVFIR2ItvExeState::widenVAddrs</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;rhs)</div>
158
+ <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div>
159
+ <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>)</div>
160
+ <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
161
+ <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.find(rhsItem.first);</div>
162
+ <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.end())</div>
163
+ <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div>
164
+ <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: rhsItem.second)</div>
165
+ <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
166
+ <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span> (!lhsIter-&gt;second.contains(addr))</div>
167
+ <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div>
168
+ <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i &lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
169
+ <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
170
+ <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; lhsIter-&gt;second.join_with(getGepObjAddress(getInternalID(addr), i));</div>
171
+ <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
172
+ <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
173
+ <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
174
+ <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
175
+ <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
176
+ <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>)</div>
177
+ <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; {</div>
178
+ <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.find(rhsItem.first);</div>
179
+ <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.end())</div>
180
+ <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
181
+ <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: rhsItem.second)</div>
182
+ <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; {</div>
183
+ <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span> (!lhsIter-&gt;second.contains(addr))</div>
184
+ <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
185
+ <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a> i = 0; i &lt; (<a class="code" href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">s32_t</a>) <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>(); i++)</div>
186
+ <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
187
+ <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; lhsIter-&gt;second.join_with(getGepObjAddress(getInternalID(addr), i));</div>
188
+ <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
189
+ <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
190
+ <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
191
+ <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
192
+ <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
193
+ <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div>
194
+ <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
195
+ <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c"> 124</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c">SVFIR2ItvExeState::narrowVAddrs</a>(<a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalExeState.html">IntervalExeState</a> &amp;rhs)</div>
196
+ <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;{</div>
197
+ <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>)</div>
198
+ <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
199
+ <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.find(rhsItem.first);</div>
200
+ <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">_varToVAddrs</a>.end())</div>
201
+ <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
202
+ <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: lhsIter-&gt;second)</div>
203
+ <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div>
204
+ <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
205
+ <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; {</div>
206
+ <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; lhsIter-&gt;second = rhsItem.second;</div>
207
+ <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">break</span>;</div>
208
+ <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
209
+ <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
210
+ <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
211
+ <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
212
+ <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;rhsItem: rhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>)</div>
213
+ <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
214
+ <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">auto</span> lhsIter = lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.find(rhsItem.first);</div>
215
+ <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span> (lhsIter != lhs.<a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>.end())</div>
216
+ <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; {</div>
217
+ <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: lhsIter-&gt;second)</div>
218
+ <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
219
+ <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span> (!rhsItem.second.contains(addr))</div>
220
+ <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
221
+ <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; lhsIter-&gt;second = rhsItem.second;</div>
222
+ <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">break</span>;</div>
223
+ <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
224
+ <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
225
+ <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
226
+ <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
227
+ <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
228
+ <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
229
+ <div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a"> 158</a></span>&#160;<a class="code" href="classSVF_1_1AddressValue.html">SVFIR2ItvExeState::VAddrs</a> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVFIR2ItvExeState::getGepObjAddress</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pointer, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
230
+ <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div>
231
+ <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; assert(!getVAddrs(pointer).empty());</div>
232
+ <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(pointer);</div>
233
+ <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> ret;</div>
234
+ <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
235
+ <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
236
+ <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; int64_t baseObj = getInternalID(addr);</div>
237
+ <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (baseObj == 0)</div>
238
+ <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div>
239
+ <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; ret.<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(0));</div>
240
+ <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">continue</span>;</div>
241
+ <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
242
+ <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; assert(SVFUtil::isa&lt;ObjVar&gt;(_svfir-&gt;getGNode(baseObj)) &amp;&amp; <span class="stringliteral">&quot;Fail to get the base object address!&quot;</span>);</div>
243
+ <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> gepObj = _svfir-&gt;getGepObjVar(baseObj, <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
244
+ <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; initSVFVar(gepObj);</div>
245
+ <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; ret.<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(gepObj));</div>
246
+ <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
247
+ <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> ret;</div>
248
+ <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div>
249
+ <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
250
+ <div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b"> 179</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">SVFIR2ItvExeState::getBytefromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> elemBytesize)</div>
251
+ <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div>
252
+ <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
253
+ <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
254
+ <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
255
+ <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
256
+ <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
257
+ <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxByteLimit = 99999;</div>
258
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minByteLimit = -99999;</div>
259
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">auto</span> valueReshape = [&amp;](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
260
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
261
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &lt; (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)minByteLimit)</div>
262
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div>
263
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> minByteLimit;</div>
264
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
265
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt; (<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a>)maxByteLimit)</div>
266
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div>
267
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> maxByteLimit;</div>
268
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
269
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">else</span></div>
270
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; {</div>
271
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
272
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
273
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; };</div>
274
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (op)</div>
275
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div>
276
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; offsetLb = offsetUb = op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() &gt; maxByteLimit</div>
277
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; ? maxByteLimit</div>
278
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; : op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
279
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
280
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">else</span></div>
281
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div>
282
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
283
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;idxVal = _es[idx];</div>
284
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
285
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> std::make_pair(0, maxByteLimit);</div>
286
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// if idxVal is a concrete value</span></div>
287
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
288
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div>
289
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
290
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
291
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">else</span></div>
292
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; {</div>
293
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
294
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
295
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
296
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
297
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; </div>
298
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
299
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
300
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
301
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
302
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; offsetLb = offsetLb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType())* elemBytesize;</div>
303
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; offsetUb = offsetUb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType())* elemBytesize;</div>
304
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
305
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">else</span></div>
306
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; {</div>
307
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; offsetLb = offsetLb * elemBytesize;</div>
308
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; offsetUb = offsetUb * elemBytesize;</div>
309
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div>
310
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
311
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
312
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div>
313
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div>
314
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
315
+ <div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb"> 246</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVFIR2ItvExeState::getIndexfromGepTypePair</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#acefbd7faec2833144b07c5bb96eb6f84">AccessPath::VarAndGepTypePair</a>&amp; gep_pair, <span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
316
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;{</div>
317
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a> *value = gep_pair.first-&gt;getValue();</div>
318
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = gep_pair.second;</div>
319
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *op = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(value);</div>
320
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = 0;</div>
321
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = 0;</div>
322
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)<a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>();</div>
323
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> minFieldLimit = 0;</div>
324
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">auto</span> valueReshape = [&amp;](<a class="code" href="namespaceSVF.html#ad781b0b14e89773e774072b280658ef3">s64_t</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>)</div>
325
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
326
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &lt; minFieldLimit)</div>
327
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div>
328
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> minFieldLimit;</div>
329
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
330
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> &gt; maxFieldLimit)</div>
331
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
332
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">return</span> maxFieldLimit;</div>
333
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
334
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">else</span></div>
335
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div>
336
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
337
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div>
338
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; };</div>
339
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span> (op)</div>
340
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div>
341
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; offsetLb = offsetUb = valueReshape(op-&gt;<a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>());</div>
342
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div>
343
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">else</span></div>
344
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div>
345
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> idx = _svfir-&gt;getValueNode(value);</div>
346
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">//if (!inVarToIValTable(idx)) return std::make_pair(-1, -1);</span></div>
347
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;idxVal = _es[idx];</div>
348
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">isBottom</a>() || idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a977128211266b93e58e298a7ac29a059">isTop</a>())</div>
349
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> std::make_pair(0, <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>());</div>
350
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// if idxVal is a concrete value</span></div>
351
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span> (idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">is_numeral</a>())</div>
352
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
353
+ <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; offsetLb = offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
354
+ <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div>
355
+ <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">else</span></div>
356
+ <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; {</div>
357
+ <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; offsetLb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#a0df07a2659cbf3a918de5b0d7c407264">lb</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
358
+ <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; offsetUb = valueReshape(idxVal.<a class="code" href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">ub</a>().<a class="code" href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">getNumeral</a>());</div>
359
+ <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
360
+ <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
361
+ <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
362
+ <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
363
+ <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div>
364
+ <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a> *pty = SVFUtil::dyn_cast&lt;SVFPointerType&gt;(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
365
+ <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div>
366
+ <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; offsetLb = offsetLb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
367
+ <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; offsetUb = offsetUb * gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#a6c74f234a6b40bc5292bb14874c2e600">getAccessPath</a>().<a class="code" href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">getElementNum</a>(pty-&gt;getPtrElementType());</div>
368
+ <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
369
+ <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">else</span></div>
370
+ <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; {</div>
371
+ <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">const</span> std::vector&lt;u32_t&gt;&amp; so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()</div>
372
+ <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; -&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)</div>
373
+ <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; -&gt;<a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
374
+ <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (so.empty() || offsetUb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size() ||</div>
375
+ <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; offsetLb &gt;= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
376
+ <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; {</div>
377
+ <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; offsetLb = 0;</div>
378
+ <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; offsetUb = maxFieldLimit;</div>
379
+ <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
380
+ <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">else</span></div>
381
+ <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; {</div>
382
+ <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; offsetLb =</div>
383
383
  <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
384
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetUb);</div>
385
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
386
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div>
387
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div>
388
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
389
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;}</div>
390
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; </div>
391
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div>
392
- <div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b"> 324</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b">SVFIR2ItvExeState::getGepByteOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> elemBytesize)</div>
393
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div>
394
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
395
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> std::make_pair(gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
396
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
397
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
398
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = 0xFFFFFF;</div>
399
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
400
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div>
401
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetIdx = getBytefromGepTypePair(</div>
402
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep, elemBytesize);</div>
403
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
404
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
405
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span> (totalOffsetLb + offsetLb &gt; maxFieldLimit)</div>
406
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; totalOffsetLb = maxFieldLimit;</div>
407
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">else</span></div>
408
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; totalOffsetLb += offsetLb;</div>
409
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span> (totalOffsetUb + offsetUb &gt; maxFieldLimit)</div>
410
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; totalOffsetUb = maxFieldLimit;</div>
411
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">else</span></div>
412
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; totalOffsetUb += offsetUb ;</div>
413
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div>
414
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
415
- <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;}</div>
416
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
417
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; </div>
418
- <div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b"> 352</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVFIR2ItvExeState::getGepOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
419
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;{</div>
420
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
421
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> std::make_pair(gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
422
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
423
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
424
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
425
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
426
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div>
427
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetIdx = getIndexfromGepTypePair(</div>
428
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep);</div>
429
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
430
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
431
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetLb + offsetLb) &gt; maxFieldLimit)</div>
432
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; totalOffsetLb = maxFieldLimit;</div>
433
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">else</span></div>
434
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; totalOffsetLb += offsetLb;</div>
435
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetUb + offsetUb) &gt; maxFieldLimit)</div>
436
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; totalOffsetUb = maxFieldLimit;</div>
437
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">else</span></div>
438
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; totalOffsetUb += offsetUb ;</div>
439
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div>
440
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
441
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;}</div>
442
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div>
443
- <div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e"> 384</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVFIR2ItvExeState::initValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
444
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;{</div>
445
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
446
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
447
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; </div>
448
- <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>())</div>
449
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; {</div>
450
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">// TODO:miss floatpointerty, voidty, labelty, matadataty</span></div>
451
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a> ||</div>
452
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1">SVFType::SVFPointerTy</a> ||</div>
453
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVFType::SVFFunctionTy</a> ||</div>
454
- <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d">SVFType::SVFStructTy</a> ||</div>
455
- <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVFType::SVFArrayTy</a>)</div>
456
- <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">// continue with null expression</span></div>
457
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
458
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">else</span></div>
459
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
460
- <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; </div>
461
- <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span> &lt;&lt; <span class="stringliteral">&quot; type: &quot;</span> &lt;&lt; *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
462
- <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types we have&quot;</span>);</div>
463
- <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div>
464
- <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div>
465
- <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">else</span></div>
466
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; {</div>
467
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span> (svfir-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>() == valVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div>
468
- <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
469
- <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">else</span></div>
470
- <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
471
- <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; assert(SVFUtil::isa&lt;DummyValVar&gt;(valVar) &amp;&amp; <span class="stringliteral">&quot;not a DummValVar if it has no type?&quot;</span>);</div>
472
- <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div>
473
- <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;}</div>
474
- <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; </div>
475
- <div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d"> 421</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVFIR2ItvExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
476
- <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;{</div>
477
- <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div>
478
- <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span> (objVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
479
- <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; {</div>
480
- <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
481
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
482
- <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; {</div>
483
- <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *consInt = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
484
- <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div>
485
- <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordtype">double</span> numeral = (double)consInt-&gt;getSExtValue();</div>
486
- <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
487
- <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div>
488
- <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>* consFP = SVFUtil::dyn_cast&lt;SVFConstantFP&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
489
- <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; {</div>
490
- <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP-&gt;getFPValue(), consFP-&gt;getFPValue());</div>
491
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div>
492
- <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFConstantNullPtr&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
493
- <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; {</div>
494
- <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
495
- <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div>
496
- <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFGlobalValue&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
497
- <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div>
498
- <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
499
- <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div>
500
- <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
501
- <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; {</div>
502
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
503
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div>
504
- <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">else</span></div>
505
- <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; {</div>
506
- <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
507
- <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div>
508
- <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div>
509
- <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">else</span></div>
510
- <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; {</div>
511
- <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
512
- <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div>
513
- <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div>
514
- <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">else</span></div>
515
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; {</div>
516
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
517
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div>
518
- <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;}</div>
519
- <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div>
520
- <div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b"> 467</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVFIR2ItvExeState::initSVFVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
521
- <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;{</div>
522
- <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(varId) || _es.inVarToAddrsTable(varId)) <span class="keywordflow">return</span>;</div>
523
- <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
524
- <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div>
525
- <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="comment">// write objvar into cache instead of exestate</span></div>
526
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast&lt;ObjVar&gt;(svfVar))</div>
527
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; {</div>
528
- <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; initObjVar(objVar, varId);</div>
529
- <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span>;</div>
530
- <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div>
531
- <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar = dyn_cast&lt;ValVar&gt;(svfVar))</div>
532
- <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; {</div>
533
- <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; initValVar(valVar, varId);</div>
534
- <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">return</span>;</div>
535
- <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; }</div>
536
- <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">else</span></div>
537
- <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; {</div>
538
- <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; initValVar(valVar, varId);</div>
539
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span>;</div>
540
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div>
541
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;}</div>
542
- <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; </div>
543
- <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; </div>
544
- <div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9"> 491</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVFIR2ItvExeState::translateAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr)</div>
545
- <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;{</div>
546
- <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; initSVFVar(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
547
- <div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
548
- <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; {</div>
549
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
550
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; }</div>
551
- <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
552
- <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; {</div>
553
- <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()) = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(</div>
554
- <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
555
- <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div>
556
- <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">else</span></div>
557
- <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div>
558
- <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not number or virtual addrs?&quot;</span>);</div>
559
- <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div>
560
- <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;}</div>
561
- <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; </div>
562
- <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; </div>
563
- <div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13"> 510</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVFIR2ItvExeState::translateBinary</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary)</div>
564
- <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;{</div>
565
- <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
566
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
567
- <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
568
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op0)) _es[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
569
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op1)) _es[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
570
- <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
571
- <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div>
572
- <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
573
- <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
574
- <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">switch</span> (binary-&gt;<a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
575
- <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; {</div>
576
- <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
577
- <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
578
- <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; resVal = (lhs + rhs);</div>
579
- <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">break</span>;</div>
580
- <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
581
- <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
582
- <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; resVal = (lhs - rhs);</div>
583
- <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">break</span>;</div>
584
- <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
585
- <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
586
- <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; resVal = (lhs * rhs);</div>
587
- <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">break</span>;</div>
588
- <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
589
- <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
590
- <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
591
- <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; resVal = (lhs / rhs);</div>
592
- <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">break</span>;</div>
593
- <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
594
- <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
595
- <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
596
- <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; resVal = (lhs % rhs);</div>
597
- <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">break</span>;</div>
598
- <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
599
- <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; resVal = (lhs ^ rhs);</div>
384
+ <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetLb);</div>
385
+ <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; offsetUb =</div>
386
+ <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-&gt;<a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(</div>
387
+ <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>, offsetUb);</div>
388
+ <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div>
389
+ <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div>
390
+ <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
391
+ <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> {offsetLb, offsetUb};</div>
392
+ <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div>
393
+ <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div>
394
+ <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; </div>
395
+ <div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b"> 327</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b">SVFIR2ItvExeState::getGepByteOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep, <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> elemBytesize)</div>
396
+ <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div>
397
+ <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
398
+ <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">return</span> std::make_pair(gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
399
+ <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
400
+ <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
401
+ <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = 0xFFFFFF;</div>
402
+ <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
403
+ <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div>
404
+ <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetIdx = getBytefromGepTypePair(</div>
405
+ <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep, elemBytesize);</div>
406
+ <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
407
+ <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
408
+ <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span> (totalOffsetLb + offsetLb &gt; maxFieldLimit)</div>
409
+ <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; totalOffsetLb = maxFieldLimit;</div>
410
+ <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">else</span></div>
411
+ <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; totalOffsetLb += offsetLb;</div>
412
+ <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span> (totalOffsetUb + offsetUb &gt; maxFieldLimit)</div>
413
+ <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; totalOffsetUb = maxFieldLimit;</div>
414
+ <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">else</span></div>
415
+ <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; totalOffsetUb += offsetUb ;</div>
416
+ <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div>
417
+ <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
418
+ <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;}</div>
419
+ <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
420
+ <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; </div>
421
+ <div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b"> 355</a></span>&#160;std::pair&lt;APOffset, APOffset&gt; <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVFIR2ItvExeState::getGepOffset</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
422
+ <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;{</div>
423
+ <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span> (gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().empty())</div>
424
+ <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> std::make_pair(gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>(), gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#afe5ae814b71b59fc03bd672d62a5fab7">getConstantFieldIdx</a>());</div>
425
+ <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetLb = 0;</div>
426
+ <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalOffsetUb = 0;</div>
427
+ <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> maxFieldLimit = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
428
+ <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>().size() - 1; i &gt;= 0; i--)</div>
429
+ <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div>
430
+ <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetIdx = getIndexfromGepTypePair(</div>
431
+ <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; gep-&gt;<a class="code" href="classSVF_1_1GepStmt.html#acce9e813dbca30e0264dac6c89ea72af">getOffsetVarAndGepTypePairVec</a>()[i], gep);</div>
432
+ <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetLb = offsetIdx.first;</div>
433
+ <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> offsetUb = offsetIdx.second;</div>
434
+ <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetLb + offsetLb) &gt; maxFieldLimit)</div>
435
+ <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; totalOffsetLb = maxFieldLimit;</div>
436
+ <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">else</span></div>
437
+ <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; totalOffsetLb += offsetLb;</div>
438
+ <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span> ((<span class="keywordtype">long</span> <span class="keywordtype">long</span>) (totalOffsetUb + offsetUb) &gt; maxFieldLimit)</div>
439
+ <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; totalOffsetUb = maxFieldLimit;</div>
440
+ <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">else</span></div>
441
+ <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; totalOffsetUb += offsetUb ;</div>
442
+ <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div>
443
+ <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> {totalOffsetLb, totalOffsetUb};</div>
444
+ <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;}</div>
445
+ <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; </div>
446
+ <div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e"> 387</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVFIR2ItvExeState::initValVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
447
+ <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;{</div>
448
+ <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; </div>
449
+ <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
450
+ <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div>
451
+ <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a> *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> = valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ab6f95d3e7e099d75cfc9645ebc037047">getType</a>())</div>
452
+ <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; {</div>
453
+ <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="comment">// TODO:miss floatpointerty, voidty, labelty, matadataty</span></div>
454
+ <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVFType::SVFIntegerTy</a> ||</div>
455
+ <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae8c18603570fa65fa5a9aabdf2f5d0a1">SVFType::SVFPointerTy</a> ||</div>
456
+ <div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca01274de074f51be05f2ad6b2d0ca9dd6">SVFType::SVFFunctionTy</a> ||</div>
457
+ <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40ca77e52ad9bebff282f40383f468fe856d">SVFType::SVFStructTy</a> ||</div>
458
+ <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>-&gt;getKind() == <a class="code" href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cac8c846ff3208d07a4a39c7a21433c6a5">SVFType::SVFArrayTy</a>)</div>
459
+ <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">// continue with null expression</span></div>
460
+ <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
461
+ <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">else</span></div>
462
+ <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; {</div>
463
+ <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div>
464
+ <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() &lt;&lt; valVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">getValue</a>()-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a4a0cfe3a8f37d33ffcdca3d66026dcc3">toString</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span> &lt;&lt; <span class="stringliteral">&quot; type: &quot;</span> &lt;&lt; *<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
465
+ <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;what other types we have&quot;</span>);</div>
466
+ <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
467
+ <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
468
+ <div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">else</span></div>
469
+ <div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; {</div>
470
+ <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> (svfir-&gt;<a class="code" href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">getNullPtr</a>() == valVar-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>())</div>
471
+ <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
472
+ <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">else</span></div>
473
+ <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; _es[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
474
+ <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; assert(SVFUtil::isa&lt;DummyValVar&gt;(valVar) &amp;&amp; <span class="stringliteral">&quot;not a DummValVar if it has no type?&quot;</span>);</div>
475
+ <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div>
476
+ <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;}</div>
477
+ <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; </div>
478
+ <div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d"> 424</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVFIR2ItvExeState::initObjVar</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
479
+ <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;{</div>
480
+ <div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div>
481
+ <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span> (objVar-&gt;<a class="code" href="classSVF_1_1SVFVar.html#a1ace69053c2c4436fd78d5624bd0086a">hasValue</a>())</div>
482
+ <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div>
483
+ <div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemObj.html">MemObj</a> *obj = objVar-&gt;<a class="code" href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">getMemObj</a>();</div>
484
+ <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">isConstDataOrConstGlobal</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
485
+ <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; {</div>
486
+ <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a> *consInt = SVFUtil::dyn_cast&lt;SVFConstantInt&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
487
+ <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; {</div>
488
+ <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordtype">double</span> numeral = (double)consInt-&gt;getSExtValue();</div>
489
+ <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(numeral, numeral);</div>
490
+ <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div>
491
+ <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>* consFP = SVFUtil::dyn_cast&lt;SVFConstantFP&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
492
+ <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div>
493
+ <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(consFP-&gt;getFPValue(), consFP-&gt;getFPValue());</div>
494
+ <div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div>
495
+ <div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFConstantNullPtr&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
496
+ <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div>
497
+ <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
498
+ <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div>
499
+ <div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa&lt;SVFGlobalValue&gt;(obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">getValue</a>()))</div>
500
+ <div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div>
501
+ <div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
502
+ <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div>
503
+ <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a7f828731597450f1d43b61413ab0e7bb">isConstantArray</a>() || obj-&gt;<a class="code" href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">isConstantStruct</a>())</div>
504
+ <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div>
505
+ <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
506
+ <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div>
507
+ <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">else</span></div>
508
+ <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div>
509
+ <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[varId] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
510
+ <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div>
511
+ <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div>
512
+ <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">else</span></div>
513
+ <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div>
514
+ <div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
515
+ <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
516
+ <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
517
+ <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">else</span></div>
518
+ <div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; {</div>
519
+ <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(varId).<a class="code" href="classSVF_1_1AddressValue.html#a40c67147606ab95dd3318d0fe821d8c0">insert</a>(getVirtualMemAddress(varId));</div>
520
+ <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div>
521
+ <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;}</div>
522
+ <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; </div>
523
+ <div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b"> 470</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVFIR2ItvExeState::initSVFVar</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> varId)</div>
524
+ <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div>
525
+ <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(varId) || _es.inVarToAddrsTable(varId)) <span class="keywordflow">return</span>;</div>
526
+ <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="classSVF_1_1SVFIR.html">SVFIR</a> *svfir = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>();</div>
527
+ <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="classSVF_1_1SVFVar.html">SVFVar</a> *svfVar = svfir-&gt;<a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(varId);</div>
528
+ <div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">// write objvar into cache instead of exestate</span></div>
529
+ <div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ObjVar.html">ObjVar</a> *objVar = dyn_cast&lt;ObjVar&gt;(svfVar))</div>
530
+ <div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div>
531
+ <div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; initObjVar(objVar, varId);</div>
532
+ <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">return</span>;</div>
533
+ <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div>
534
+ <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1ValVar.html">ValVar</a> *valVar = dyn_cast&lt;ValVar&gt;(svfVar))</div>
535
+ <div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div>
536
+ <div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; initValVar(valVar, varId);</div>
537
+ <div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span>;</div>
538
+ <div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div>
539
+ <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">else</span></div>
540
+ <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {</div>
541
+ <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; initValVar(valVar, varId);</div>
542
+ <div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span>;</div>
543
+ <div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div>
544
+ <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;}</div>
545
+ <div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; </div>
546
+ <div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; </div>
547
+ <div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9"> 494</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVFIR2ItvExeState::translateAddr</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AddrStmt.html">AddrStmt</a> *addr)</div>
548
+ <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;{</div>
549
+ <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; initSVFVar(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
550
+ <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
551
+ <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; {</div>
552
+ <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()] = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>[addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()];</div>
553
+ <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div>
554
+ <div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>()))</div>
555
+ <div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div>
556
+ <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>()) = <a class="code" href="classSVF_1_1IntervalExeState.html#a92b1b163493a74a31d30a261128edd05">IntervalExeState::globalES</a>.<a class="code" href="classSVF_1_1IntervalExeState.html#a36e15d9d95908b74fcf321e30a9cdebe">getVAddrs</a>(</div>
557
+ <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; addr-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>());</div>
558
+ <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; }</div>
559
+ <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">else</span></div>
560
+ <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; {</div>
561
+ <div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;not number or virtual addrs?&quot;</span>);</div>
562
+ <div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div>
563
+ <div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;}</div>
564
+ <div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; </div>
565
+ <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; </div>
566
+ <div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13"> 513</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a449ee8f244120866037c7f6d2ee5fc13">SVFIR2ItvExeState::translateBinary</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html">BinaryOPStmt</a> *binary)</div>
567
+ <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;{</div>
568
+ <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
569
+ <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
570
+ <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = binary-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
571
+ <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op0)) _es[op0] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
572
+ <div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(op1)) _es[op1] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
573
+ <div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
574
+ <div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; {</div>
575
+ <div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
576
+ <div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
577
+ <div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">switch</span> (binary-&gt;<a class="code" href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">getOpcode</a>())</div>
578
+ <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; {</div>
579
+ <div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">BinaryOPStmt::Add</a>:</div>
580
+ <div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a97c70ced12e0f1c5e3c3708b13727e8e">BinaryOPStmt::FAdd</a>:</div>
581
+ <div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; resVal = (lhs + rhs);</div>
582
+ <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">break</span>;</div>
583
+ <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">BinaryOPStmt::Sub</a>:</div>
584
+ <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a05348a0e3f232ac552bb3ca56525c448">BinaryOPStmt::FSub</a>:</div>
585
+ <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; resVal = (lhs - rhs);</div>
586
+ <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">break</span>;</div>
587
+ <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">BinaryOPStmt::Mul</a>:</div>
588
+ <div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a22a047e74227056ef3340628fae80198">BinaryOPStmt::FMul</a>:</div>
589
+ <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; resVal = (lhs * rhs);</div>
590
+ <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">break</span>;</div>
591
+ <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">BinaryOPStmt::SDiv</a>:</div>
592
+ <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">BinaryOPStmt::FDiv</a>:</div>
593
+ <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">BinaryOPStmt::UDiv</a>:</div>
594
+ <div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; resVal = (lhs / rhs);</div>
595
+ <div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">break</span>;</div>
596
+ <div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2db0456c9943dd75aa091cb19040448">BinaryOPStmt::SRem</a>:</div>
597
+ <div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">BinaryOPStmt::FRem</a>:</div>
598
+ <div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6af7dba9dda5edcee046ca81fb184858bc">BinaryOPStmt::URem</a>:</div>
599
+ <div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; resVal = (lhs % rhs);</div>
600
600
  <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">break</span>;</div>
601
- <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
602
- <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; resVal = (lhs &amp; rhs);</div>
601
+ <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">BinaryOPStmt::Xor</a>:</div>
602
+ <div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; resVal = (lhs ^ rhs);</div>
603
603
  <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">break</span>;</div>
604
- <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
605
- <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; resVal = (lhs | rhs);</div>
604
+ <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0df258a85e260bcb9534ae1b650e1856">BinaryOPStmt::And</a>:</div>
605
+ <div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; resVal = (lhs &amp; rhs);</div>
606
606
  <div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">break</span>;</div>
607
- <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
608
- <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
607
+ <div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">BinaryOPStmt::Or</a>:</div>
608
+ <div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; resVal = (lhs | rhs);</div>
609
609
  <div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">break</span>;</div>
610
- <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
611
- <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; resVal = (lhs &lt;&lt; rhs);</div>
610
+ <div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">BinaryOPStmt::AShr</a>:</div>
611
+ <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
612
612
  <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">break</span>;</div>
613
- <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
614
- <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
613
+ <div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">BinaryOPStmt::Shl</a>:</div>
614
+ <div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; resVal = (lhs &lt;&lt; rhs);</div>
615
615
  <div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">break</span>;</div>
616
- <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">default</span>:</div>
617
- <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {</div>
618
- <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined binary: &quot;</span>);</div>
619
- <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div>
620
- <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div>
621
- <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; _es[res] = resVal;</div>
622
- <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div>
623
- <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;}</div>
624
- <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; </div>
625
- <div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24"> 572</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVFIR2ItvExeState::translateCmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp)</div>
626
- <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;{</div>
627
- <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
628
- <div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
629
- <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
630
- <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
631
- <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; {</div>
632
- <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
633
- <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
634
- <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
635
- <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
636
- <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; {</div>
637
- <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
638
- <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
639
- <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
640
- <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; resVal = (lhs == rhs);</div>
641
- <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">break</span>;</div>
642
- <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
643
- <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
644
- <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
645
- <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; resVal = (lhs != rhs);</div>
646
- <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">break</span>;</div>
647
- <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
648
- <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
649
- <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
650
- <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
651
- <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; resVal = (lhs &gt; rhs);</div>
652
- <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">break</span>;</div>
653
- <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
654
- <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
655
- <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
656
- <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
657
- <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; resVal = (lhs &gt;= rhs);</div>
658
- <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">break</span>;</div>
659
- <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
660
- <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
661
- <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
662
- <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
663
- <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; resVal = (lhs &lt; rhs);</div>
664
- <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">break</span>;</div>
665
- <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
666
- <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
667
- <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
668
- <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
669
- <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; resVal = (lhs &lt;= rhs);</div>
670
- <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">break</span>;</div>
671
- <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
672
- <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
616
+ <div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">BinaryOPStmt::LShr</a>:</div>
617
+ <div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; resVal = (lhs &gt;&gt; rhs);</div>
618
+ <div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">break</span>;</div>
619
+ <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">default</span>:</div>
620
+ <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; {</div>
621
+ <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined binary: &quot;</span>);</div>
622
+ <div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div>
623
+ <div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div>
624
+ <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; _es[res] = resVal;</div>
625
+ <div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div>
626
+ <div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div>
627
+ <div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; </div>
628
+ <div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24"> 575</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVFIR2ItvExeState::translateCmp</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CmpStmt.html">CmpStmt</a> *cmp)</div>
629
+ <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;{</div>
630
+ <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op0 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(0);</div>
631
+ <div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> op1 = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">getOpVarID</a>(1);</div>
632
+ <div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = cmp-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
633
+ <div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(op0) &amp;&amp; inVarToIValTable(op1))</div>
634
+ <div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div>
635
+ <div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
636
+ <div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;lhs = _es[op0], &amp;rhs = _es[op1];</div>
637
+ <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
638
+ <div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
639
+ <div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div>
640
+ <div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
641
+ <div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
642
+ <div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
643
+ <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; resVal = (lhs == rhs);</div>
644
+ <div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">break</span>;</div>
645
+ <div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
646
+ <div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
647
+ <div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
648
+ <div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; resVal = (lhs != rhs);</div>
649
+ <div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">break</span>;</div>
650
+ <div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
651
+ <div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
652
+ <div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
653
+ <div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
654
+ <div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; resVal = (lhs &gt; rhs);</div>
655
+ <div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">break</span>;</div>
656
+ <div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
657
+ <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
658
+ <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
659
+ <div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
660
+ <div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; resVal = (lhs &gt;= rhs);</div>
661
+ <div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">break</span>;</div>
662
+ <div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
663
+ <div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
664
+ <div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
665
+ <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
666
+ <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; resVal = (lhs &lt; rhs);</div>
667
+ <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">break</span>;</div>
668
+ <div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
669
+ <div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
670
+ <div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
671
+ <div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
672
+ <div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; resVal = (lhs &lt;= rhs);</div>
673
673
  <div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">break</span>;</div>
674
- <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
675
- <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
674
+ <div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
675
+ <div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
676
676
  <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">break</span>;</div>
677
- <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">default</span>:</div>
678
- <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; {</div>
679
- <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
680
- <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div>
681
- <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</div>
682
- <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; _es[res] = resVal;</div>
683
- <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div>
684
- <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(op0) &amp;&amp; inVarToAddrsTable(op1))</div>
685
- <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; {</div>
686
- <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
687
- <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;lhs = getVAddrs(op0), &amp;rhs = getVAddrs(op1);</div>
688
- <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; assert(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() &amp;&amp; !rhs.empty() &amp;&amp; <span class="stringliteral">&quot;empty address?&quot;</span>);</div>
689
- <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
690
- <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
691
- <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; {</div>
692
- <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
693
- <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
694
- <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
695
- <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; {</div>
696
- <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
697
- <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; {</div>
698
- <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
699
- <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; }</div>
700
- <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">else</span></div>
701
- <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; {</div>
702
- <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
703
- <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; {</div>
704
- <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
705
- <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div>
706
- <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">else</span></div>
707
- <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; {</div>
708
- <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
709
- <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; }</div>
710
- <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; }</div>
711
- <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">break</span>;</div>
712
- <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; }</div>
713
- <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
714
- <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
715
- <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
716
- <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; {</div>
717
- <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
718
- <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; {</div>
719
- <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
720
- <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; }</div>
721
- <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">else</span></div>
722
- <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div>
723
- <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
724
- <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; {</div>
725
- <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
726
- <div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div>
727
- <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">else</span></div>
728
- <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; {</div>
729
- <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
730
- <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div>
731
- <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div>
732
- <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">break</span>;</div>
733
- <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div>
734
- <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
735
- <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
736
- <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
737
- <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
738
- <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; {</div>
739
- <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
740
- <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; {</div>
741
- <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt; *rhs.begin());</div>
742
- <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div>
743
- <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">else</span></div>
744
- <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; {</div>
745
- <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
746
- <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div>
747
- <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">break</span>;</div>
748
- <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; }</div>
749
- <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
750
- <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
751
- <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
752
- <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
753
- <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; {</div>
754
- <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
755
- <div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; {</div>
756
- <div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt;= *rhs.begin());</div>
757
- <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; }</div>
758
- <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">else</span></div>
759
- <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; {</div>
760
- <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
761
- <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div>
762
- <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">break</span>;</div>
763
- <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div>
764
- <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
765
- <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
766
- <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
767
- <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
768
- <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {</div>
769
- <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
770
- <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; {</div>
771
- <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt; *rhs.begin());</div>
772
- <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div>
773
- <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">else</span></div>
774
- <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; {</div>
775
- <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
776
- <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; }</div>
777
- <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">break</span>;</div>
778
- <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; }</div>
779
- <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
780
- <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
781
- <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
782
- <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
783
- <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; {</div>
784
- <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
785
- <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; {</div>
786
- <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt;= *rhs.begin());</div>
787
- <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; }</div>
788
- <div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">else</span></div>
789
- <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; {</div>
790
- <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
791
- <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div>
792
- <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">break</span>;</div>
793
- <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; }</div>
794
- <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
795
- <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
796
- <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">break</span>;</div>
797
- <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
798
- <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
677
+ <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
678
+ <div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
679
+ <div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">break</span>;</div>
680
+ <div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">default</span>:</div>
681
+ <div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; {</div>
682
+ <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
683
+ <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div>
684
+ <div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; }</div>
685
+ <div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; _es[res] = resVal;</div>
686
+ <div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div>
687
+ <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(op0) &amp;&amp; inVarToAddrsTable(op1))</div>
688
+ <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; {</div>
689
+ <div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> resVal;</div>
690
+ <div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;lhs = getVAddrs(op0), &amp;rhs = getVAddrs(op1);</div>
691
+ <div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; assert(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>() &amp;&amp; !rhs.empty() &amp;&amp; <span class="stringliteral">&quot;empty address?&quot;</span>);</div>
692
+ <div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keyword">auto</span> predicate = cmp-&gt;<a class="code" href="classSVF_1_1CmpStmt.html#aa6a21fb1cfbc263bb38651176c495632">getPredicate</a>();</div>
693
+ <div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">switch</span> (predicate)</div>
694
+ <div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div>
695
+ <div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acafa5a0ab60aff74a8d653c3f9fac04936">CmpStmt::ICMP_EQ</a>:</div>
696
+ <div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">CmpStmt::FCMP_OEQ</a>:</div>
697
+ <div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">CmpStmt::FCMP_UEQ</a>:</div>
698
+ <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; {</div>
699
+ <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
700
+ <div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; {</div>
701
+ <div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
702
+ <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; }</div>
703
+ <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">else</span></div>
704
+ <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; {</div>
705
+ <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
706
+ <div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; {</div>
707
+ <div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
708
+ <div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div>
709
+ <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">else</span></div>
710
+ <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; {</div>
711
+ <div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0);</div>
712
+ <div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; }</div>
713
+ <div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; }</div>
714
+ <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">break</span>;</div>
715
+ <div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; }</div>
716
+ <div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6eef834451ec753add639be49c51f03f">CmpStmt::ICMP_NE</a>:</div>
717
+ <div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2a3ce0c02931984d92d70356efc49193">CmpStmt::FCMP_ONE</a>:</div>
718
+ <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">CmpStmt::FCMP_UNE</a>:</div>
719
+ <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; {</div>
720
+ <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
721
+ <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; {</div>
722
+ <div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(!lhs.<a class="code" href="classSVF_1_1AddressValue.html#a04456fe47889dd8f1b712255c9598fe9">equals</a>(rhs));</div>
723
+ <div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; }</div>
724
+ <div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">else</span></div>
725
+ <div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; {</div>
726
+ <div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">hasIntersect</a>(rhs))</div>
727
+ <div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {</div>
728
+ <div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
729
+ <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; }</div>
730
+ <div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">else</span></div>
731
+ <div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {</div>
732
+ <div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1);</div>
733
+ <div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div>
734
+ <div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; }</div>
735
+ <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">break</span>;</div>
736
+ <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; }</div>
737
+ <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8d59d9d7f39bb9c8b1e3dcebe0c5dc48">CmpStmt::ICMP_UGT</a>:</div>
738
+ <div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">CmpStmt::ICMP_SGT</a>:</div>
739
+ <div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">CmpStmt::FCMP_OGT</a>:</div>
740
+ <div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3873c41e060b95cb37eac587402b597c">CmpStmt::FCMP_UGT</a>:</div>
741
+ <div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div>
742
+ <div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
743
+ <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; {</div>
744
+ <div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt; *rhs.begin());</div>
745
+ <div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; }</div>
746
+ <div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">else</span></div>
747
+ <div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; {</div>
748
+ <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
749
+ <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; }</div>
750
+ <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">break</span>;</div>
751
+ <div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; }</div>
752
+ <div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">CmpStmt::ICMP_UGE</a>:</div>
753
+ <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac5a87d53b1ad255cec18b3784cd81f80">CmpStmt::ICMP_SGE</a>:</div>
754
+ <div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5c4576ce636e323cbc3aa322480c5d2c">CmpStmt::FCMP_OGE</a>:</div>
755
+ <div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acac0e2d9db5453eb8be7543fb4315003da">CmpStmt::FCMP_UGE</a>:</div>
756
+ <div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; {</div>
757
+ <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
758
+ <div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; {</div>
759
+ <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &gt;= *rhs.begin());</div>
760
+ <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div>
761
+ <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">else</span></div>
762
+ <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; {</div>
763
+ <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
764
+ <div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div>
765
+ <div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">break</span>;</div>
766
+ <div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div>
767
+ <div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7833b647068883840c9bb438103e736d">CmpStmt::ICMP_ULT</a>:</div>
768
+ <div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca88d74bf66465f4fdd221db0c11d62927">CmpStmt::ICMP_SLT</a>:</div>
769
+ <div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca5e3cf3105b8f13da66719856579956fa">CmpStmt::FCMP_OLT</a>:</div>
770
+ <div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa6b852204a4d0758ebd632d8a88b966d">CmpStmt::FCMP_ULT</a>:</div>
771
+ <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; {</div>
772
+ <div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
773
+ <div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; {</div>
774
+ <div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt; *rhs.begin());</div>
775
+ <div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; }</div>
776
+ <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">else</span></div>
777
+ <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; {</div>
778
+ <div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
779
+ <div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; }</div>
780
+ <div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">break</span>;</div>
781
+ <div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div>
782
+ <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca56a20e408f9639234e4a11036764a38f">CmpStmt::ICMP_ULE</a>:</div>
783
+ <div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaeeae52f8d195815edfb8c85037d246d6">CmpStmt::ICMP_SLE</a>:</div>
784
+ <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca9dd165c6da06811ffc8c2e53b30ab32d">CmpStmt::FCMP_OLE</a>:</div>
785
+ <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">CmpStmt::FCMP_ULE</a>:</div>
786
+ <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; {</div>
787
+ <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">if</span> (lhs.<a class="code" href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">size</a>() == 1 &amp;&amp; rhs.size() == 1)</div>
788
+ <div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; {</div>
789
+ <div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(*lhs.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>() &lt;= *rhs.begin());</div>
790
+ <div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; }</div>
791
+ <div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">else</span></div>
792
+ <div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; {</div>
793
+ <div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
794
+ <div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; }</div>
795
+ <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">break</span>;</div>
796
+ <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div>
797
+ <div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">CmpStmt::FCMP_FALSE</a>:</div>
798
+ <div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(0, 0);</div>
799
799
  <div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">break</span>;</div>
800
- <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">default</span>:</div>
801
- <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; {</div>
802
- <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
803
- <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div>
804
- <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; }</div>
805
- <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; _es[res] = resVal;</div>
806
- <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div>
807
- <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;}</div>
808
- <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; </div>
809
- <div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68"> 756</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVFIR2ItvExeState::translateLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load)</div>
810
- <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;{</div>
811
- <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
812
- <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
813
- <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
814
- <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; {</div>
815
- <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(rhs);</div>
816
- <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; assert(!addrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
817
- <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
818
- <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; {</div>
819
- <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
820
- <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
821
- <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
822
- <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
823
- <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; _es.getVAddrs(lhs).setBottom();</div>
824
- <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">break</span>;</div>
825
- <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div>
826
- <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
827
- <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; {</div>
828
- <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
829
- <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
830
- <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; {</div>
831
- <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(lhs))</div>
832
- <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; {</div>
833
- <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; _es[lhs] = _es.load(addr);</div>
834
- <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div>
835
- <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">else</span></div>
836
- <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; {</div>
837
- <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; _es[lhs].join_with(_es.load(addr));</div>
838
- <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; }</div>
839
- <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; }</div>
840
- <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
841
- <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; {</div>
842
- <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(lhs))</div>
843
- <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; {</div>
844
- <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; _es.getVAddrs(lhs) = _es.loadVAddrs(addr);</div>
845
- <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; }</div>
846
- <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">else</span></div>
847
- <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; {</div>
848
- <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; _es.getVAddrs(lhs).join_with(_es.loadVAddrs(addr));</div>
849
- <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div>
850
- <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div>
851
- <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div>
852
- <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; }</div>
853
- <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;}</div>
854
- <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; </div>
855
- <div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5"> 802</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVFIR2ItvExeState::translateStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</div>
856
- <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;{</div>
857
- <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
858
- <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
859
- <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(lhs))</div>
860
- <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; {</div>
861
- <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
862
- <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; {</div>
863
- <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; assert(!getVAddrs(lhs).empty());</div>
864
- <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
865
- <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
866
- <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; {</div>
867
- <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; _es.store(addr, _es[rhs]);</div>
868
- <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div>
869
- <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
870
- <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
871
- <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; {</div>
872
- <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; assert(!getVAddrs(lhs).empty());</div>
873
- <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
874
- <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
875
- <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; {</div>
876
- <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; assert(!getVAddrs(rhs).empty());</div>
877
- <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; _es.storeVAddrs(addr, getVAddrs(rhs));</div>
878
- <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div>
879
- <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; </div>
880
- <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div>
881
- <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div>
882
- <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;}</div>
883
- <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; </div>
884
- <div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999"> 831</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVFIR2ItvExeState::translateCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>)</div>
885
- <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;{</div>
886
- <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getLHSVarID();</div>
887
- <div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getRHSVarID();</div>
888
- <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;isBlkPtr(lhs))</div>
889
- <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; {</div>
890
- <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
891
- <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; }</div>
892
- <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">else</span></div>
893
- <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; {</div>
894
- <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
895
- <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; {</div>
896
- <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; _es[lhs] = _es[rhs];</div>
897
- <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
898
- <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
899
- <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; {</div>
900
- <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; assert(!getVAddrs(rhs).empty());</div>
901
- <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
902
- <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; }</div>
903
- <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; }</div>
904
- <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;}</div>
905
- <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; </div>
906
- <div class="line"><a name="l00853"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc"> 853</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVFIR2ItvExeState::translateGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
907
- <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;{</div>
908
- <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
909
- <div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
910
- <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(rhs)) <span class="keywordflow">return</span>;</div>
911
- <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; assert(!getVAddrs(rhs).empty());</div>
912
- <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;rhsVal = getVAddrs(rhs);</div>
913
- <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span> (rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
914
- <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetPair = getGepOffset(gep);</div>
915
- <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">if</span> (offsetPair.first == -1 &amp;&amp; offsetPair.second == -1) <span class="keywordflow">return</span>;</div>
916
- <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">if</span> (!isVirtualMemAddress(*rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>()))</div>
917
- <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; {</div>
918
- <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">return</span>;</div>
919
- <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; }</div>
920
- <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keywordflow">else</span></div>
921
- <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; {</div>
922
- <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> gepAddrs;</div>
923
- <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.second;</div>
924
- <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">if</span> (offsetPair.second &gt; <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1)</div>
925
- <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; {</div>
926
- <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; ub = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
927
- <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div>
928
- <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = offsetPair.first; i &lt;= ub; i++)</div>
929
- <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; {</div>
930
- <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getGepObjAddress(rhs, i));</div>
931
- <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; }</div>
932
- <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">if</span>(gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
933
- <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; _es.getVAddrs(lhs) = gepAddrs;</div>
934
- <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">return</span>;</div>
935
- <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; }</div>
936
- <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;}</div>
937
- <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; </div>
938
- <div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8"> 885</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVFIR2ItvExeState::translateSelect</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select)</div>
939
- <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;{</div>
940
- <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = select-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
941
- <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
942
- <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
943
- <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cond = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
944
- <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(tval) &amp;&amp; inVarToIValTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
945
- <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; {</div>
946
- <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
947
- <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; {</div>
948
- <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; _es[res] = _es[cond].is_zero() ? _es[fval] : _es[tval];</div>
949
- <div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; }</div>
950
- <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">else</span></div>
951
- <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; {</div>
952
- <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; _es[res] = _es[cond];</div>
953
- <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; }</div>
954
- <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
955
- <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(tval) &amp;&amp; inVarToAddrsTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
956
- <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; {</div>
957
- <div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
958
- <div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; {</div>
959
- <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; assert(!getVAddrs(fval).empty());</div>
960
- <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; assert(!getVAddrs(tval).empty());</div>
961
- <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; _es.getVAddrs(res) = _es[cond].is_zero() ? getVAddrs(fval) : getVAddrs(tval);</div>
962
- <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; }</div>
963
- <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; }</div>
964
- <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;}</div>
965
- <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; </div>
966
- <div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e"> 913</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>
967
- <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;{</div>
968
- <div class="line"><a name="l00915"></a><span class="lineno"> 915</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>
969
- <div class="line"><a name="l00916"></a><span class="lineno"> 916</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>
970
- <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; {</div>
971
- <div class="line"><a name="l00918"></a><span class="lineno"> 918</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>
972
- <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(curId))</div>
973
- <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; {</div>
974
- <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;cur = _es[curId];</div>
975
- <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(res))</div>
976
- <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; {</div>
977
- <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; _es[res] = cur;</div>
978
- <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; }</div>
979
- <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">else</span></div>
980
- <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; {</div>
981
- <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; _es[res].<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(cur);</div>
982
- <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; }</div>
983
- <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; }</div>
984
- <div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(curId))</div>
985
- <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; {</div>
986
- <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; assert(!getVAddrs(curId).empty());</div>
987
- <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;cur = getVAddrs(curId);</div>
988
- <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(res))</div>
989
- <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; {</div>
990
- <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; _es.getVAddrs(res) = cur;</div>
991
- <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; }</div>
992
- <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">else</span></div>
993
- <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; {</div>
994
- <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; _es.getVAddrs(res).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(cur);</div>
995
- <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div>
996
- <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div>
997
- <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div>
998
- <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;}</div>
999
- <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; </div>
1000
- <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; </div>
1001
- <div class="line"><a name="l00948"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 948</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>
1002
- <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;{</div>
1003
- <div class="line"><a name="l00950"></a><span class="lineno"> 950</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>
1004
- <div class="line"><a name="l00951"></a><span class="lineno"> 951</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>
1005
- <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
1006
- <div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; {</div>
1007
- <div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; _es[lhs] = _es[rhs];</div>
1008
- <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div>
1009
- <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
1010
- <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; {</div>
1011
- <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; assert(!getVAddrs(rhs).empty());</div>
1012
- <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
1013
- <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div>
1014
- <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;}</div>
1015
- <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; </div>
1016
- <div class="line"><a name="l00963"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 963</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>
1017
- <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;{</div>
1018
- <div class="line"><a name="l00965"></a><span class="lineno"> 965</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>
1019
- <div class="line"><a name="l00966"></a><span class="lineno"> 966</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>
1020
- <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
1021
- <div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; {</div>
1022
- <div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; _es[lhs] = _es[rhs];</div>
1023
- <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; }</div>
1024
- <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
1025
- <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; {</div>
1026
- <div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; assert(!getVAddrs(rhs).empty());</div>
1027
- <div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
1028
- <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; }</div>
1029
- <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;}</div>
800
+ <div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">case</span> <a class="code" href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca7234c9a242034a71d0bdcb54aeec6da7">CmpStmt::FCMP_TRUE</a>:</div>
801
+ <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; resVal = <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a>(1, 1);</div>
802
+ <div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">break</span>;</div>
803
+ <div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">default</span>:</div>
804
+ <div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; {</div>
805
+ <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;undefined compare: &quot;</span>);</div>
806
+ <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div>
807
+ <div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; }</div>
808
+ <div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; _es[res] = resVal;</div>
809
+ <div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; }</div>
810
+ <div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;}</div>
811
+ <div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; </div>
812
+ <div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68"> 759</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVFIR2ItvExeState::translateLoad</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a> *load)</div>
813
+ <div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;{</div>
814
+ <div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
815
+ <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = load-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
816
+ <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
817
+ <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; {</div>
818
+ <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(rhs);</div>
819
+ <div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; assert(!addrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>());</div>
820
+ <div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
821
+ <div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; {</div>
822
+ <div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
823
+ <div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
824
+ <div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#aa027be2f9243ce4cae799b265b019443">IntervalValue::bottom</a>();</div>
825
+ <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
826
+ <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; _es.getVAddrs(lhs).setBottom();</div>
827
+ <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">break</span>;</div>
828
+ <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; }</div>
829
+ <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
830
+ <div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; {</div>
831
+ <div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> objId = getInternalID(addr);</div>
832
+ <div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">if</span> (inLocToIValTable(objId))</div>
833
+ <div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; {</div>
834
+ <div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(lhs))</div>
835
+ <div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; {</div>
836
+ <div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; _es[lhs] = _es.load(addr);</div>
837
+ <div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div>
838
+ <div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">else</span></div>
839
+ <div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; {</div>
840
+ <div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; _es[lhs].join_with(_es.load(addr));</div>
841
+ <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; }</div>
842
+ <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div>
843
+ <div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inLocToAddrsTable(objId))</div>
844
+ <div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; {</div>
845
+ <div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(lhs))</div>
846
+ <div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; {</div>
847
+ <div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; _es.getVAddrs(lhs) = _es.loadVAddrs(addr);</div>
848
+ <div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div>
849
+ <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">else</span></div>
850
+ <div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; {</div>
851
+ <div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; _es.getVAddrs(lhs).join_with(_es.loadVAddrs(addr));</div>
852
+ <div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; }</div>
853
+ <div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div>
854
+ <div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div>
855
+ <div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div>
856
+ <div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;}</div>
857
+ <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; </div>
858
+ <div class="line"><a name="l00805"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5"> 805</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVFIR2ItvExeState::translateStore</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a> *store)</div>
859
+ <div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;{</div>
860
+ <div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
861
+ <div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = store-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
862
+ <div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span> (inVarToAddrsTable(lhs))</div>
863
+ <div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; {</div>
864
+ <div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
865
+ <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; {</div>
866
+ <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; assert(!getVAddrs(lhs).empty());</div>
867
+ <div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
868
+ <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
869
+ <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; {</div>
870
+ <div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; _es.store(addr, _es[rhs]);</div>
871
+ <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div>
872
+ <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; }</div>
873
+ <div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
874
+ <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; {</div>
875
+ <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; assert(!getVAddrs(lhs).empty());</div>
876
+ <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;addrs = getVAddrs(lhs);</div>
877
+ <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;addr: addrs)</div>
878
+ <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; {</div>
879
+ <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; assert(!getVAddrs(rhs).empty());</div>
880
+ <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; _es.storeVAddrs(addr, getVAddrs(rhs));</div>
881
+ <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div>
882
+ <div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; </div>
883
+ <div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div>
884
+ <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div>
885
+ <div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;}</div>
886
+ <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; </div>
887
+ <div class="line"><a name="l00834"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999"> 834</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVFIR2ItvExeState::translateCopy</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CopyStmt.html">CopyStmt</a> *<a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>)</div>
888
+ <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;{</div>
889
+ <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getLHSVarID();</div>
890
+ <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = <a class="code" href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a>-&gt;getRHSVarID();</div>
891
+ <div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">PAG::getPAG</a>()-&gt;isBlkPtr(lhs))</div>
892
+ <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; {</div>
893
+ <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; _es[lhs] = <a class="code" href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">IntervalValue::top</a>();</div>
894
+ <div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; }</div>
895
+ <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">else</span></div>
896
+ <div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; {</div>
897
+ <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
898
+ <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; {</div>
899
+ <div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; _es[lhs] = _es[rhs];</div>
900
+ <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div>
901
+ <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
902
+ <div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; {</div>
903
+ <div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; assert(!getVAddrs(rhs).empty());</div>
904
+ <div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
905
+ <div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</div>
906
+ <div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; }</div>
907
+ <div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;}</div>
908
+ <div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; </div>
909
+ <div class="line"><a name="l00856"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc"> 856</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVFIR2ItvExeState::translateGep</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1GepStmt.html">GepStmt</a> *gep)</div>
910
+ <div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;{</div>
911
+ <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> rhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">getRHSVarID</a>();</div>
912
+ <div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lhs = gep-&gt;<a class="code" href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">getLHSVarID</a>();</div>
913
+ <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(rhs)) <span class="keywordflow">return</span>;</div>
914
+ <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; assert(!getVAddrs(rhs).empty());</div>
915
+ <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;rhsVal = getVAddrs(rhs);</div>
916
+ <div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">if</span> (rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
917
+ <div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; std::pair&lt;APOffset, APOffset&gt; offsetPair = getGepOffset(gep);</div>
918
+ <div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">if</span> (offsetPair.first == -1 &amp;&amp; offsetPair.second == -1) <span class="keywordflow">return</span>;</div>
919
+ <div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">if</span> (!isVirtualMemAddress(*rhsVal.<a class="code" href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">begin</a>()))</div>
920
+ <div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; {</div>
921
+ <div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keywordflow">return</span>;</div>
922
+ <div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; }</div>
923
+ <div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">else</span></div>
924
+ <div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; {</div>
925
+ <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> gepAddrs;</div>
926
+ <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> ub = offsetPair.second;</div>
927
+ <div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">if</span> (offsetPair.second &gt; <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1)</div>
928
+ <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; {</div>
929
+ <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; ub = <a class="code" href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">Options::MaxFieldLimit</a>() - 1;</div>
930
+ <div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div>
931
+ <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> i = offsetPair.first; i &lt;= ub; i++)</div>
932
+ <div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; {</div>
933
+ <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(getGepObjAddress(rhs, i));</div>
934
+ <div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; }</div>
935
+ <div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">if</span>(gepAddrs.<a class="code" href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">empty</a>()) <span class="keywordflow">return</span>;</div>
936
+ <div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; _es.getVAddrs(lhs) = gepAddrs;</div>
937
+ <div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span>;</div>
938
+ <div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div>
939
+ <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;}</div>
940
+ <div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; </div>
941
+ <div class="line"><a name="l00888"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8"> 888</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVFIR2ItvExeState::translateSelect</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SelectStmt.html">SelectStmt</a> *select)</div>
942
+ <div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;{</div>
943
+ <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> res = select-&gt;<a class="code" href="classSVF_1_1MultiOpndStmt.html#a71a530eb9fa9f7e273e471b4a75a039e">getResID</a>();</div>
944
+ <div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">getTrueValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
945
+ <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> fval = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">getFalseValue</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
946
+ <div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cond = select-&gt;<a class="code" href="classSVF_1_1SelectStmt.html#ad4c3e9529176478bb726279a76050e8c">getCondition</a>()-&gt;<a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div>
947
+ <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(tval) &amp;&amp; inVarToIValTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
948
+ <div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; {</div>
949
+ <div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
950
+ <div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; {</div>
951
+ <div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; _es[res] = _es[cond].is_zero() ? _es[fval] : _es[tval];</div>
952
+ <div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div>
953
+ <div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">else</span></div>
954
+ <div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; {</div>
955
+ <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; _es[res] = _es[cond];</div>
956
+ <div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; }</div>
957
+ <div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div>
958
+ <div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(tval) &amp;&amp; inVarToAddrsTable(fval) &amp;&amp; inVarToIValTable(cond))</div>
959
+ <div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; {</div>
960
+ <div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">if</span> (_es[cond].is_numeral())</div>
961
+ <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; {</div>
962
+ <div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; assert(!getVAddrs(fval).empty());</div>
963
+ <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; assert(!getVAddrs(tval).empty());</div>
964
+ <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; _es.getVAddrs(res) = _es[cond].is_zero() ? getVAddrs(fval) : getVAddrs(tval);</div>
965
+ <div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; }</div>
966
+ <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div>
967
+ <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;}</div>
968
+ <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; </div>
969
+ <div class="line"><a name="l00916"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e"> 916</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>
970
+ <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;{</div>
971
+ <div class="line"><a name="l00918"></a><span class="lineno"> 918</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>
972
+ <div class="line"><a name="l00919"></a><span class="lineno"> 919</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>
973
+ <div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; {</div>
974
+ <div class="line"><a name="l00921"></a><span class="lineno"> 921</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>
975
+ <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(curId))</div>
976
+ <div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; {</div>
977
+ <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1IntervalValue.html">IntervalValue</a> &amp;cur = _es[curId];</div>
978
+ <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">if</span> (!inVarToIValTable(res))</div>
979
+ <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; {</div>
980
+ <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; _es[res] = cur;</div>
981
+ <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div>
982
+ <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keywordflow">else</span></div>
983
+ <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; {</div>
984
+ <div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; _es[res].<a class="code" href="classSVF_1_1IntervalValue.html#a3771eb932069dcad8212009efc411b99">join_with</a>(cur);</div>
985
+ <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</div>
986
+ <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; }</div>
987
+ <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(curId))</div>
988
+ <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div>
989
+ <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; assert(!getVAddrs(curId).empty());</div>
990
+ <div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1AddressValue.html">VAddrs</a> &amp;cur = getVAddrs(curId);</div>
991
+ <div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordflow">if</span> (!inVarToAddrsTable(res))</div>
992
+ <div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; {</div>
993
+ <div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; _es.getVAddrs(res) = cur;</div>
994
+ <div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; }</div>
995
+ <div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">else</span></div>
996
+ <div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; {</div>
997
+ <div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; _es.getVAddrs(res).<a class="code" href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">join_with</a>(cur);</div>
998
+ <div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; }</div>
999
+ <div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; }</div>
1000
+ <div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; }</div>
1001
+ <div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;}</div>
1002
+ <div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; </div>
1003
+ <div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; </div>
1004
+ <div class="line"><a name="l00951"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#adb82778157e0f5e7a2ea4d803bcd07ad"> 951</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>
1005
+ <div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;{</div>
1006
+ <div class="line"><a name="l00953"></a><span class="lineno"> 953</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>
1007
+ <div class="line"><a name="l00954"></a><span class="lineno"> 954</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>
1008
+ <div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
1009
+ <div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; {</div>
1010
+ <div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; _es[lhs] = _es[rhs];</div>
1011
+ <div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div>
1012
+ <div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (inVarToAddrsTable(rhs))</div>
1013
+ <div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; {</div>
1014
+ <div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; assert(!getVAddrs(rhs).empty());</div>
1015
+ <div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
1016
+ <div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; }</div>
1017
+ <div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;}</div>
1018
+ <div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; </div>
1019
+ <div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classSVF_1_1SVFIR2ItvExeState.html#a31e299f91eed29d1a8db3b884d57d1dc"> 966</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>
1020
+ <div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;{</div>
1021
+ <div class="line"><a name="l00968"></a><span class="lineno"> 968</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>
1022
+ <div class="line"><a name="l00969"></a><span class="lineno"> 969</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>
1023
+ <div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">if</span> (inVarToIValTable(rhs))</div>
1024
+ <div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; {</div>
1025
+ <div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; _es[lhs] = _es[rhs];</div>
1026
+ <div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; }</div>
1027
+ <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>
1028
+ <div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; {</div>
1029
+ <div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; assert(!getVAddrs(rhs).empty());</div>
1030
+ <div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; _es.getVAddrs(lhs) = getVAddrs(rhs);</div>
1031
+ <div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div>
1032
+ <div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;}</div>
1030
1033
  </div><!-- fragment --></div><!-- contents -->
1031
1034
  <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>
1032
1035
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acad23a87cb6f2b3b2486a9a1277b491c09">SVF::CmpStmt::FCMP_UNE</a></div><div class="ttdeci">@ FCMP_UNE</div><div class="ttdoc">1 1 1 0 True if unordered or not equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00902">SVFStatements.h:902</a></div></div>
1033
- <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#l00948">SVFIR2ItvExeState.cpp:948</a></div></div>
1036
+ <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#l00951">SVFIR2ItvExeState.cpp:951</a></div></div>
1034
1037
  <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>
1035
1038
  <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#l00350">SVFStatements.h:350</a></div></div>
1036
1039
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6aafa66e75600b0098c4fa3304720cb7a6">SVF::BinaryOPStmt::FRem</a></div><div class="ttdeci">@ FRem</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00983">SVFStatements.h:983</a></div></div>
@@ -1041,9 +1044,9 @@ $(function() {
1041
1044
  <div class="ttc" id="aclassSVF_1_1PhiStmt_html"><div class="ttname"><a href="classSVF_1_1PhiStmt.html">SVF::PhiStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00747">SVFStatements.h:747</a></div></div>
1042
1045
  <div class="ttc" id="aclassSVF_1_1SelectStmt_html_af64d7855e352a0afb5d2e98a8622a4ad"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#af64d7855e352a0afb5d2e98a8622a4ad">SVF::SelectStmt::getFalseValue</a></div><div class="ttdeci">const SVFVar * getFalseValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00861">SVFStatements.h:861</a></div></div>
1043
1046
  <div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00332">SVFType.h:332</a></div></div>
1044
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed7fc3951608972b6f8fdce14b4a0cbb"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVF::SVFIR2ItvExeState::getIndexfromGepTypePair</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair &amp;gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the Index offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00243">SVFIR2ItvExeState.cpp:243</a></div></div>
1047
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed7fc3951608972b6f8fdce14b4a0cbb"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVF::SVFIR2ItvExeState::getIndexfromGepTypePair</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair &amp;gep_pair, const GepStmt *gep)</div><div class="ttdoc">Return the Index offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00246">SVFIR2ItvExeState.cpp:246</a></div></div>
1045
1048
  <div class="ttc" id="aclassSVF_1_1MultiOpndStmt_html_a5c6efcc023e90ef2e618586091958c59"><div class="ttname"><a href="classSVF_1_1MultiOpndStmt.html#a5c6efcc023e90ef2e618586091958c59">SVF::MultiOpndStmt::getOpVarID</a></div><div class="ttdeci">NodeID getOpVarID(u32_t pos) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00284">SVFStatements.cpp:284</a></div></div>
1046
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00885">SVFIR2ItvExeState.cpp:885</a></div></div>
1049
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a604126e59364cb56b44a88cae5afbfb8"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a604126e59364cb56b44a88cae5afbfb8">SVF::SVFIR2ItvExeState::translateSelect</a></div><div class="ttdeci">void translateSelect(const SelectStmt *select)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00888">SVFIR2ItvExeState.cpp:888</a></div></div>
1047
1050
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_acad5216bdc02a234d57abfe9ae72a12a"><div class="ttname"><a href="classSVF_1_1AddressValue.html#acad5216bdc02a234d57abfe9ae72a12a">SVF::AddressValue::join_with</a></div><div class="ttdeci">bool join_with(const AddressValue &amp;other)</div><div class="ttdoc">Current AddressValue joins with another AddressValue.</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00139">AddressValue.h:139</a></div></div>
1048
1051
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_ae93859318bf4f618b4cf681988a870ce"><div class="ttname"><a href="classSVF_1_1AddressValue.html#ae93859318bf4f618b4cf681988a870ce">SVF::AddressValue::size</a></div><div class="ttdeci">u32_t size() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00118">AddressValue.h:118</a></div></div>
1049
1052
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338acaa100cf99398f6118d332191380574c06">SVF::CmpStmt::FCMP_FALSE</a></div><div class="ttdeci">@ FCMP_FALSE</div><div class="ttdoc">0 0 0 0 Always false (always folded)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00888">SVFStatements.h:888</a></div></div>
@@ -1054,45 +1057,46 @@ $(function() {
1054
1057
  <div class="ttc" id="aclassSVF_1_1SVFType_html_a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22"><div class="ttname"><a href="classSVF_1_1SVFType.html#a333e01a9c431c8f53bd2fc597bd5c40cae2025d3e9d7943027c74ae6bba3fff22">SVF::SVFType::SVFIntegerTy</a></div><div class="ttdeci">@ SVFIntegerTy</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00254">SVFType.h:254</a></div></div>
1055
1058
  <div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
1056
1059
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac89b793572db14a3c018122cf9fc79d6">SVF::BinaryOPStmt::Xor</a></div><div class="ttdeci">@ Xor</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00989">SVFStatements.h:989</a></div></div>
1060
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a75d5dfbc8252ef0994951af32aa53b74"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a75d5dfbc8252ef0994951af32aa53b74">SVF::SVFIR2ItvExeState::globalNullVaddrs</a></div><div class="ttdeci">static VAddrs globalNullVaddrs</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8h_source.html#l00045">SVFIR2ItvExeState.h:45</a></div></div>
1057
1061
  <div class="ttc" id="aSVFIR2ItvExeState_8h_html"><div class="ttname"><a href="SVFIR2ItvExeState_8h.html">SVFIR2ItvExeState.h</a></div></div>
1058
1062
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a758382a3b40e116175ca321fa4449d7f">SVF::BinaryOPStmt::Sub</a></div><div class="ttdeci">@ Sub</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00974">SVFStatements.h:974</a></div></div>
1059
1063
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca3428808abe683bfc6bb0267077cdb128">SVF::CmpStmt::ICMP_UGE</a></div><div class="ttdeci">@ ICMP_UGE</div><div class="ttdoc">unsigned greater or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00910">SVFStatements.h:910</a></div></div>
1060
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00491">SVFIR2ItvExeState.cpp:491</a></div></div>
1064
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af7f42ee51b03b1aaaee18f10eec0c2b9"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af7f42ee51b03b1aaaee18f10eec0c2b9">SVF::SVFIR2ItvExeState::translateAddr</a></div><div class="ttdeci">void translateAddr(const AddrStmt *addr)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00494">SVFIR2ItvExeState.cpp:494</a></div></div>
1061
1065
  <div class="ttc" id="aclassSVF_1_1SelectStmt_html"><div class="ttname"><a href="classSVF_1_1SelectStmt.html">SVF::SelectStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00815">SVFStatements.h:815</a></div></div>
1062
1066
  <div class="ttc" id="aclassSVF_1_1RetPE_html"><div class="ttname"><a href="classSVF_1_1RetPE.html">SVF::RetPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00604">SVFStatements.h:604</a></div></div>
1063
1067
  <div class="ttc" id="aclassSVF_1_1ExeState_html_a69895af213955ea1ba29812bfddcea66"><div class="ttname"><a href="classSVF_1_1ExeState.html#a69895af213955ea1ba29812bfddcea66">SVF::ExeState::_varToVAddrs</a></div><div class="ttdeci">VarToVAddrs _varToVAddrs</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00172">ExeState.h:172</a></div></div>
1064
1068
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html"><div class="ttname"><a href="classSVF_1_1CmpStmt.html">SVF::CmpStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00870">SVFStatements.h:870</a></div></div>
1065
1069
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a90745e5effc8b7ef43c693d1e4fa7dbe">SVF::BinaryOPStmt::Or</a></div><div class="ttdeci">@ Or</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00988">SVFStatements.h:988</a></div></div>
1066
1070
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a193780e40cee5123c543b6f739b3b46b">SVF::BinaryOPStmt::Shl</a></div><div class="ttdeci">@ Shl</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00984">SVFStatements.h:984</a></div></div>
1067
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00572">SVFIR2ItvExeState.cpp:572</a></div></div>
1068
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00853">SVFIR2ItvExeState.cpp:853</a></div></div>
1071
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aac5cc8767eb750bf121f1897788dee24"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aac5cc8767eb750bf121f1897788dee24">SVF::SVFIR2ItvExeState::translateCmp</a></div><div class="ttdeci">void translateCmp(const CmpStmt *cmp)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00575">SVFIR2ItvExeState.cpp:575</a></div></div>
1072
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aa274b5b4e18c28ec8035ca1b073aacfc"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aa274b5b4e18c28ec8035ca1b073aacfc">SVF::SVFIR2ItvExeState::translateGep</a></div><div class="ttdeci">void translateGep(const GepStmt *gep)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00856">SVFIR2ItvExeState.cpp:856</a></div></div>
1069
1073
  <div class="ttc" id="aclassSVF_1_1SVFVar_html_ac2db6304ea5526fb446ae882983beeb0"><div class="ttname"><a href="classSVF_1_1SVFVar.html#ac2db6304ea5526fb446ae882983beeb0">SVF::SVFVar::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get/has methods of the components.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00094">SVFVariables.h:94</a></div></div>
1070
1074
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca900bbc9c7824294c3a69c2cb006c27ee">SVF::CmpStmt::FCMP_OEQ</a></div><div class="ttdeci">@ FCMP_OEQ</div><div class="ttdoc">0 0 0 1 True if ordered and equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00889">SVFStatements.h:889</a></div></div>
1071
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a198e8d5f586a698462dee2c3fde8c83e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">SVF::SVFIR2ItvExeState::applySummary</a></div><div class="ttdeci">void applySummary(IntervalExeState &amp;es)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00036">SVFIR2ItvExeState.cpp:36</a></div></div>
1072
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00913">SVFIR2ItvExeState.cpp:913</a></div></div>
1073
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a57cbbcc977705ba7cd660bb5b632a66c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a57cbbcc977705ba7cd660bb5b632a66c">SVF::SVFIR2ItvExeState::widenVAddrs</a></div><div class="ttdeci">void widenVAddrs(IntervalExeState &amp;lhs, const IntervalExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00083">SVFIR2ItvExeState.cpp:83</a></div></div>
1075
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a198e8d5f586a698462dee2c3fde8c83e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a198e8d5f586a698462dee2c3fde8c83e">SVF::SVFIR2ItvExeState::applySummary</a></div><div class="ttdeci">void applySummary(IntervalExeState &amp;es)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00039">SVFIR2ItvExeState.cpp:39</a></div></div>
1076
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_ae00e5398cbeb9aa1cfc464da4250a91e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#ae00e5398cbeb9aa1cfc464da4250a91e">SVF::SVFIR2ItvExeState::translatePhi</a></div><div class="ttdeci">void translatePhi(const PhiStmt *phi)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00916">SVFIR2ItvExeState.cpp:916</a></div></div>
1077
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a57cbbcc977705ba7cd660bb5b632a66c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a57cbbcc977705ba7cd660bb5b632a66c">SVF::SVFIR2ItvExeState::widenVAddrs</a></div><div class="ttdeci">void widenVAddrs(IntervalExeState &amp;lhs, const IntervalExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00086">SVFIR2ItvExeState.cpp:86</a></div></div>
1074
1078
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ad2f8b02de2c62175d3341be92a925250">SVF::BinaryOPStmt::UDiv</a></div><div class="ttdeci">@ UDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00978">SVFStatements.h:978</a></div></div>
1075
1079
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a553540425a63724c8b7f2fd0ca25b567">SVF::BinaryOPStmt::FDiv</a></div><div class="ttdeci">@ FDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00980">SVFStatements.h:980</a></div></div>
1076
1080
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca6121702881c763c3c8cd3e30dedc7486">SVF::CmpStmt::FCMP_OGT</a></div><div class="ttdeci">@ FCMP_OGT</div><div class="ttdoc">0 0 1 0 True if ordered and greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00890">SVFStatements.h:890</a></div></div>
1077
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a67532bdc1e4a49cf4d9da4b99b38e69a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">VAddrs getGepObjAddress(u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00155">SVFIR2ItvExeState.cpp:155</a></div></div>
1081
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a67532bdc1e4a49cf4d9da4b99b38e69a"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVF::SVFIR2ItvExeState::getGepObjAddress</a></div><div class="ttdeci">VAddrs getGepObjAddress(u32_t pointer, APOffset offset)</div><div class="ttdoc">Return the field address given a pointer points to a struct object and an offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00158">SVFIR2ItvExeState.cpp:158</a></div></div>
1078
1082
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_af8be90fc1b61103187908dce4ba68001"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#af8be90fc1b61103187908dce4ba68001">SVF::IntervalValue::isBottom</a></div><div class="ttdeci">bool isBottom() const override</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00060">IntervalValue.h:60</a></div></div>
1079
1083
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca229d105d0841dc895811b29af62a91ee">SVF::CmpStmt::ICMP_SGT</a></div><div class="ttdeci">@ ICMP_SGT</div><div class="ttdoc">signed greater than</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00913">SVFStatements.h:913</a></div></div>
1080
1084
  <div class="ttc" id="aclassSVF_1_1ExeState_html_adb724bd1c3154368c629f4972c503d72"><div class="ttname"><a href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">SVF::ExeState::_locToVAddrs</a></div><div class="ttdeci">VarToVAddrs _locToVAddrs</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00173">ExeState.h:173</a></div></div>
1081
1085
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a1a4ff4aaaf2573240a318e1b79328cd0"><div class="ttname"><a href="classSVF_1_1MemObj.html#a1a4ff4aaaf2573240a318e1b79328cd0">SVF::MemObj::isConstDataOrConstGlobal</a></div><div class="ttdeci">bool isConstDataOrConstGlobal() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00525">SymbolTableInfo.cpp:525</a></div></div>
1082
1086
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6ac988853383e1588cf568687848e73576">SVF::BinaryOPStmt::AShr</a></div><div class="ttdeci">@ AShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00986">SVFStatements.h:986</a></div></div>
1083
1087
  <div class="ttc" id="aclassSVF_1_1CallPE_html"><div class="ttname"><a href="classSVF_1_1CallPE.html">SVF::CallPE</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00544">SVFStatements.h:544</a></div></div>
1084
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a584e5b2285a2980fc57cf84b06a76e0c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c">SVF::SVFIR2ItvExeState::narrowVAddrs</a></div><div class="ttdeci">void narrowVAddrs(IntervalExeState &amp;lhs, const IntervalExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00121">SVFIR2ItvExeState.cpp:121</a></div></div>
1088
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a584e5b2285a2980fc57cf84b06a76e0c"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a584e5b2285a2980fc57cf84b06a76e0c">SVF::SVFIR2ItvExeState::narrowVAddrs</a></div><div class="ttdeci">void narrowVAddrs(IntervalExeState &amp;lhs, const IntervalExeState &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00124">SVFIR2ItvExeState.cpp:124</a></div></div>
1085
1089
  <div class="ttc" id="aclassSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00180">GenericGraph.h:180</a></div></div>
1086
1090
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a0bf768bb67e7f6f5ee6302bb6dd71da1">SVF::BinaryOPStmt::LShr</a></div><div class="ttdeci">@ LShr</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00985">SVFStatements.h:985</a></div></div>
1087
1091
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_a523826aede7ad22736beed0c8223b6b0"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#a523826aede7ad22736beed0c8223b6b0">SVF::IntervalValue::is_numeral</a></div><div class="ttdeci">bool is_numeral() const</div><div class="ttdoc">Return true if the IntervalValue is a number [num, num].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00270">IntervalValue.h:270</a></div></div>
1088
1092
  <div class="ttc" id="aclassSVF_1_1AccessPath_html_a3c98f0c5f07109f9da0a8a897aa51d18"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a3c98f0c5f07109f9da0a8a897aa51d18">SVF::AccessPath::getElementNum</a></div><div class="ttdeci">u32_t getElementNum(const SVFType *type) const</div><div class="ttdoc">Return element number of a type.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00063">AccessPath.cpp:63</a></div></div>
1089
1093
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_add3acad151d5af6c9a5f692f7a01e65b"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#add3acad151d5af6c9a5f692f7a01e65b">SVF::IntervalValue::top</a></div><div class="ttdeci">static IntervalValue top()</div><div class="ttdoc">Create the IntervalValue [-oo, +oo].</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00083">IntervalValue.h:83</a></div></div>
1090
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00756">SVFIR2ItvExeState.cpp:756</a></div></div>
1094
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a8f2a564370d9b9fb05e139c45eeaba68"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a8f2a564370d9b9fb05e139c45eeaba68">SVF::SVFIR2ItvExeState::translateLoad</a></div><div class="ttdeci">void translateLoad(const LoadStmt *load)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00759">SVFIR2ItvExeState.cpp:759</a></div></div>
1091
1095
  <div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
1092
1096
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a24df52313f8093bb651ae9da972cd663"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">SVF::SymbolTableInfo::getFlattenedElemIdx</a></div><div class="ttdeci">u32_t getFlattenedElemIdx(const SVFType *T, u32_t origId)</div><div class="ttdoc">Flattened element idx of an array or struct by considering stride.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00181">SymbolTableInfo.cpp:181</a></div></div>
1093
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a24f009ea362c4acf1cfa44d4dd80ef8b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b">SVF::SVFIR2ItvExeState::getGepByteOffset</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getGepByteOffset(const GepStmt *gep, APOffset elemBytesize)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00324">SVFIR2ItvExeState.cpp:324</a></div></div>
1097
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a24f009ea362c4acf1cfa44d4dd80ef8b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b">SVF::SVFIR2ItvExeState::getGepByteOffset</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getGepByteOffset(const GepStmt *gep, APOffset elemBytesize)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00327">SVFIR2ItvExeState.cpp:327</a></div></div>
1094
1098
  <div class="ttc" id="aclassSVF_1_1AssignStmt_html_a4cec89489e82c60c287cae3327f3f01d"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a4cec89489e82c60c287cae3327f3f01d">SVF::AssignStmt::getRHSVarID</a></div><div class="ttdeci">NodeID getRHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00298">SVFStatements.h:298</a></div></div>
1095
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afed2852aec6793e1943f97ed39dd8d2b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVF::SVFIR2ItvExeState::getGepOffset</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getGepOffset(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00352">SVFIR2ItvExeState.cpp:352</a></div></div>
1099
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afed2852aec6793e1943f97ed39dd8d2b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVF::SVFIR2ItvExeState::getGepOffset</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getGepOffset(const GepStmt *gep)</div><div class="ttdoc">Return the offset expression of a GepStmt.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00355">SVFIR2ItvExeState.cpp:355</a></div></div>
1096
1100
  <div class="ttc" id="aclassSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00262">SVFVariables.h:262</a></div></div>
1097
1101
  <div class="ttc" id="aclassSVF_1_1NumericLiteral_html_a4181e5e15e10304ea524e5f8b2a3f576"><div class="ttname"><a href="classSVF_1_1NumericLiteral.html#a4181e5e15e10304ea524e5f8b2a3f576">SVF::NumericLiteral::getNumeral</a></div><div class="ttdeci">s64_t getNumeral() const</div><div class="ttdoc">Return Numeral.</div><div class="ttdef"><b>Definition:</b> <a href="NumericLiteral_8h_source.html#l00120">NumericLiteral.h:120</a></div></div>
1098
1102
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca8149cba2e9e265892f02bbd4a35fe6fb">SVF::CmpStmt::FCMP_ULE</a></div><div class="ttdeci">@ FCMP_ULE</div><div class="ttdoc">1 1 0 1 True if unordered, less than, or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00901">SVFStatements.h:901</a></div></div>
@@ -1100,10 +1104,10 @@ $(function() {
1100
1104
  <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#l00386">SVFStatements.h:386</a></div></div>
1101
1105
  <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>
1102
1106
  <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>
1103
- <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#l00963">SVFIR2ItvExeState.cpp:963</a></div></div>
1107
+ <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#l00966">SVFIR2ItvExeState.cpp:966</a></div></div>
1104
1108
  <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#l00915">SVFStatements.h:915</a></div></div>
1105
1109
  <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>
1106
- <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#l00510">SVFIR2ItvExeState.cpp:510</a></div></div>
1110
+ <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#l00513">SVFIR2ItvExeState.cpp:513</a></div></div>
1107
1111
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a5dc699aa85fe879eb4b2c9109cf3030d"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">SVF::SymbolTableInfo::getTypeInfo</a></div><div class="ttdeci">const StInfo * getTypeInfo(const SVFType *T) const</div><div class="ttdoc">Get struct info.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00056">SymbolTableInfo.cpp:56</a></div></div>
1108
1112
  <div class="ttc" id="acJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
1109
1113
  <div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
@@ -1119,7 +1123,7 @@ $(function() {
1119
1123
  <div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00955">SVFValue.h:955</a></div></div>
1120
1124
  <div class="ttc" id="aclassSVF_1_1SVFConstantFP_html"><div class="ttname"><a href="classSVF_1_1SVFConstantFP.html">SVF::SVFConstantFP</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00989">SVFValue.h:989</a></div></div>
1121
1125
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a787e5771d6e70f3cbec3e2a33f5a4e8a">SVF::BinaryOPStmt::Mul</a></div><div class="ttdeci">@ Mul</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00976">SVFStatements.h:976</a></div></div>
1122
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00802">SVFIR2ItvExeState.cpp:802</a></div></div>
1126
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_aed2e41879bae8389c49e69356b7aaac5"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#aed2e41879bae8389c49e69356b7aaac5">SVF::SVFIR2ItvExeState::translateStore</a></div><div class="ttdeci">void translateStore(const StoreStmt *store)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00805">SVFIR2ItvExeState.cpp:805</a></div></div>
1123
1127
  <div class="ttc" id="aclassSVF_1_1IntervalValue_html_adac2dc2c9f744a071ad3f0175ed40cd9"><div class="ttname"><a href="classSVF_1_1IntervalValue.html#adac2dc2c9f744a071ad3f0175ed40cd9">SVF::IntervalValue::ub</a></div><div class="ttdeci">const NumericLiteral &amp; ub() const</div><div class="ttdoc">Return the upper bound.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00225">IntervalValue.h:225</a></div></div>
1124
1128
  <div class="ttc" id="aclassSVF_1_1CmpStmt_html_ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021"><div class="ttname"><a href="classSVF_1_1CmpStmt.html#ad8e01744bfd98d584661025ce59338aca2793f23e72e3ff432bf193adf0f1b021">SVF::CmpStmt::FCMP_UEQ</a></div><div class="ttdeci">@ FCMP_UEQ</div><div class="ttdoc">1 0 0 1 True if unordered or equal</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00897">SVFStatements.h:897</a></div></div>
1125
1129
  <div class="ttc" id="aclassSVF_1_1IntervalExeState_html"><div class="ttname"><a href="classSVF_1_1IntervalExeState.html">SVF::IntervalExeState</a></div><div class="ttdef"><b>Definition:</b> <a href="IntervalExeState_8h_source.html#l00055">IntervalExeState.h:55</a></div></div>
@@ -1134,8 +1138,8 @@ $(function() {
1134
1138
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_a269a73753a7b495eb08bb0c9c0a58dc0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#a269a73753a7b495eb08bb0c9c0a58dc0">SVF::AddressValue::hasIntersect</a></div><div class="ttdeci">bool hasIntersect(const AddressValue &amp;other)</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00175">AddressValue.h:175</a></div></div>
1135
1139
  <div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
1136
1140
  <div class="ttc" id="aclassSVF_1_1GenericGraph_html_a43c9c773bfa17abf481c33073e30d01b"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">SVF::GenericGraph::getGNode</a></div><div class="ttdeci">NodeType * getGNode(NodeID id) const</div><div class="ttdoc">Get a node.</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00406">GenericGraph.h:406</a></div></div>
1137
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00831">SVFIR2ItvExeState.cpp:831</a></div></div>
1138
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af80d7665d9815a80ffdba92c3ba029d1"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVF::SVFIR2ItvExeState::moveToGlobal</a></div><div class="ttdeci">void moveToGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00056">SVFIR2ItvExeState.cpp:56</a></div></div>
1141
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_afcf2f81101f1b9580d82b5c2efb83999"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#afcf2f81101f1b9580d82b5c2efb83999">SVF::SVFIR2ItvExeState::translateCopy</a></div><div class="ttdeci">void translateCopy(const CopyStmt *copy)</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00834">SVFIR2ItvExeState.cpp:834</a></div></div>
1142
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af80d7665d9815a80ffdba92c3ba029d1"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af80d7665d9815a80ffdba92c3ba029d1">SVF::SVFIR2ItvExeState::moveToGlobal</a></div><div class="ttdeci">void moveToGlobal()</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00059">SVFIR2ItvExeState.cpp:59</a></div></div>
1139
1143
  <div class="ttc" id="anamespaceSVF_html_a9b707002523ece2ac54ca893ee9a2d4e"><div class="ttname"><a href="namespaceSVF.html#a9b707002523ece2ac54ca893ee9a2d4e">SVF::s32_t</a></div><div class="ttdeci">signed s32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00052">SVFType.h:52</a></div></div>
1140
1144
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_aa7291f4b74bb824fb38b8c383fa0b6a0"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aa7291f4b74bb824fb38b8c383fa0b6a0">SVF::AddressValue::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00113">AddressValue.h:113</a></div></div>
1141
1145
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a2f70e9c830b18f25c56b530722f106c4"><div class="ttname"><a href="classSVF_1_1MemObj.html#a2f70e9c830b18f25c56b530722f106c4">SVF::MemObj::getValue</a></div><div class="ttdeci">const SVFValue * getValue() const</div><div class="ttdoc">Get the reference value to this object.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00406">SymbolTableInfo.h:406</a></div></div>
@@ -1155,13 +1159,13 @@ $(function() {
1155
1159
  <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#l01271">LLVMUtil.cpp:1271</a></div></div>
1156
1160
  <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>
1157
1161
  <div class="ttc" id="aclassSVF_1_1SelectStmt_html_a537c03b08444da34c26b9e989bb0e568"><div class="ttname"><a href="classSVF_1_1SelectStmt.html#a537c03b08444da34c26b9e989bb0e568">SVF::SelectStmt::getTrueValue</a></div><div class="ttdeci">const SVFVar * getTrueValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00857">SVFStatements.h:857</a></div></div>
1158
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00467">SVFIR2ItvExeState.cpp:467</a></div></div>
1162
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_af5d05c5316127cfe8d975a3a0a23798b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#af5d05c5316127cfe8d975a3a0a23798b">SVF::SVFIR2ItvExeState::initSVFVar</a></div><div class="ttdeci">void initSVFVar(u32_t varId)</div><div class="ttdoc">Init SVFVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00470">SVFIR2ItvExeState.cpp:470</a></div></div>
1159
1163
  <div class="ttc" id="acJSON_8cpp_html_a7669ee67a0563250c1efaa24d130e1ac"><div class="ttname"><a href="cJSON_8cpp.html#a7669ee67a0563250c1efaa24d130e1ac">copy</a></div><div class="ttdeci">copy</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l00414">cJSON.cpp:414</a></div></div>
1160
1164
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_ad0a7c5e87355d7a83176343322db448f"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#ad0a7c5e87355d7a83176343322db448f">SVF::BinaryOPStmt::getOpcode</a></div><div class="ttdeci">u32_t getOpcode() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l01015">SVFStatements.h:1015</a></div></div>
1161
1165
  <div class="ttc" id="aclassSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object.</div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00353">SVFVariables.h:353</a></div></div>
1162
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a2f0fe665f2153115be84a143633b6b3b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">SVF::SVFIR2ItvExeState::getBytefromGepTypePair</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getBytefromGepTypePair(const AccessPath::VarAndGepTypePair &amp;gep_pair, const GepStmt *gep, APOffset elem_bytesize)</div><div class="ttdoc">Return the byte offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00176">SVFIR2ItvExeState.cpp:176</a></div></div>
1166
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a2f0fe665f2153115be84a143633b6b3b"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">SVF::SVFIR2ItvExeState::getBytefromGepTypePair</a></div><div class="ttdeci">std::pair&lt; APOffset, APOffset &gt; getBytefromGepTypePair(const AccessPath::VarAndGepTypePair &amp;gep_pair, const GepStmt *gep, APOffset elem_bytesize)</div><div class="ttdoc">Return the byte offset from one gep param offset.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00179">SVFIR2ItvExeState.cpp:179</a></div></div>
1163
1167
  <div class="ttc" id="aclassSVF_1_1SVFIR_html"><div class="ttname"><a href="classSVF_1_1SVFIR.html">SVF::SVFIR</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00043">SVFIR.h:43</a></div></div>
1164
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00421">SVFIR2ItvExeState.cpp:421</a></div></div>
1168
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a646fa58f61db6abd98d0a04af1fab88d"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a646fa58f61db6abd98d0a04af1fab88d">SVF::SVFIR2ItvExeState::initObjVar</a></div><div class="ttdeci">void initObjVar(const ObjVar *objVar, u32_t varId)</div><div class="ttdoc">Init ObjVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00424">SVFIR2ItvExeState.cpp:424</a></div></div>
1165
1169
  <div class="ttc" id="acJSON_8h_html_ac76cea59d438ba893d2f82aabb367d14"><div class="ttname"><a href="cJSON_8h.html#ac76cea59d438ba893d2f82aabb367d14">item</a></div><div class="ttdeci">cJSON * item</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00222">cJSON.h:222</a></div></div>
1166
1170
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a7a4ce4e97992d92ac044456e66821552">SVF::BinaryOPStmt::SDiv</a></div><div class="ttdeci">@ SDiv</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00979">SVFStatements.h:979</a></div></div>
1167
1171
  <div class="ttc" id="aclassSVF_1_1AssignStmt_html_a98f731be7be9bc8e7fd09f5c2204c840"><div class="ttname"><a href="classSVF_1_1AssignStmt.html#a98f731be7be9bc8e7fd09f5c2204c840">SVF::AssignStmt::getLHSVarID</a></div><div class="ttdeci">NodeID getLHSVarID() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00302">SVFStatements.h:302</a></div></div>
@@ -1191,7 +1195,7 @@ $(function() {
1191
1195
  <div class="ttc" id="aclassSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00515">SymbolTableInfo.cpp:515</a></div></div>
1192
1196
  <div class="ttc" id="aclassSVF_1_1BinaryOPStmt_html_a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862"><div class="ttname"><a href="classSVF_1_1BinaryOPStmt.html#a2f647224242dd87099104e0fdc994de6a06926877b6c25931a409224497753862">SVF::BinaryOPStmt::Add</a></div><div class="ttdeci">@ Add</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00972">SVFStatements.h:972</a></div></div>
1193
1197
  <div class="ttc" id="aclassSVF_1_1AddressValue_html_aed0b4789beda4980e4e215a65350f323"><div class="ttname"><a href="classSVF_1_1AddressValue.html#aed0b4789beda4980e4e215a65350f323">SVF::AddressValue::begin</a></div><div class="ttdeci">AddrSet::const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="AddressValue_8h_source.html#l00103">AddressValue.h:103</a></div></div>
1194
- <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a61d288c8dc621a0578faa5ff784f4b6e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVF::SVFIR2ItvExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, u32_t varId)</div><div class="ttdoc">Init ValVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00384">SVFIR2ItvExeState.cpp:384</a></div></div>
1198
+ <div class="ttc" id="aclassSVF_1_1SVFIR2ItvExeState_html_a61d288c8dc621a0578faa5ff784f4b6e"><div class="ttname"><a href="classSVF_1_1SVFIR2ItvExeState.html#a61d288c8dc621a0578faa5ff784f4b6e">SVF::SVFIR2ItvExeState::initValVar</a></div><div class="ttdeci">void initValVar(const ValVar *valVar, u32_t varId)</div><div class="ttdoc">Init ValVar.</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR2ItvExeState_8cpp_source.html#l00387">SVFIR2ItvExeState.cpp:387</a></div></div>
1195
1199
  <!-- start footer part -->
1196
1200
  <hr class="footer"/><address class="footer"><small>
1197
1201
  Generated by &#160;<a href="http://www.doxygen.org/index.html">