svf-tools 1.0.764 → 1.0.765
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.
|
@@ -180,92 +180,99 @@ $(function() {
|
|
|
180
180
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">else</span></div>
|
|
181
181
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div>
|
|
182
182
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
|
|
183
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <
|
|
184
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
185
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
186
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> 
|
|
187
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
188
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
189
|
-
<div class="line"><a name="
|
|
190
|
-
<div class="line"><a name="
|
|
191
|
-
<div class="line"><a name="
|
|
192
|
-
<div class="line"><a name="
|
|
193
|
-
<div class="line"><a name="
|
|
194
|
-
<div class="line"><a name="
|
|
195
|
-
<div class="line"><a name="
|
|
196
|
-
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#
|
|
183
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> >= 0)</div>
|
|
184
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div>
|
|
185
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
|
|
186
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
|
|
187
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
188
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  totalConstOffset += flattenOffset;</div>
|
|
189
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
|
|
190
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">else</span></div>
|
|
191
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
192
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
|
193
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div>
|
|
194
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> totalConstOffset;</div>
|
|
195
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</div>
|
|
196
|
+
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 160</a></span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">AccessPath::computeAllLocations</a>()<span class="keyword"> const</span></div>
|
|
197
197
|
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword"></span>{</div>
|
|
198
|
-
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="
|
|
199
|
-
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> 
|
|
200
|
-
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">
|
|
201
|
-
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> 
|
|
198
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
|
|
199
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantFieldIdx());</div>
|
|
200
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> result;</div>
|
|
201
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div>
|
|
202
202
|
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
|
|
203
|
-
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> 
|
|
204
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
205
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  </div>
|
|
206
|
-
<div class="line"><a name="l00170"></a><span class="lineno"
|
|
207
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> 
|
|
208
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> 
|
|
209
|
-
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> 
|
|
210
|
-
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">
|
|
211
|
-
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> 
|
|
212
|
-
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> 
|
|
213
|
-
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> 
|
|
214
|
-
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> 
|
|
215
|
-
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> 
|
|
216
|
-
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">
|
|
217
|
-
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> 
|
|
218
|
-
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> 
|
|
219
|
-
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> 
|
|
220
|
-
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
|
|
221
|
-
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> 
|
|
222
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
223
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> 
|
|
224
|
-
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> 
|
|
225
|
-
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> 
|
|
226
|
-
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> 
|
|
227
|
-
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> 
|
|
228
|
-
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> 
|
|
229
|
-
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
|
|
230
|
-
<div class="line"><a name="l00194"></a><span class="lineno"
|
|
231
|
-
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> 
|
|
232
|
-
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> 
|
|
233
|
-
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span> 
|
|
234
|
-
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span> 
|
|
235
|
-
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
|
|
236
|
-
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> 
|
|
237
|
-
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
|
|
238
|
-
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
|
|
239
|
-
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span> 
|
|
240
|
-
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> 
|
|
241
|
-
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span> 
|
|
242
|
-
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> 
|
|
243
|
-
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span> 
|
|
244
|
-
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
|
|
245
|
-
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> 
|
|
246
|
-
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> 
|
|
247
|
-
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">
|
|
248
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span> 
|
|
249
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span> 
|
|
250
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
|
251
|
-
<div class="line"><a name="
|
|
252
|
-
<div class="line"><a name="
|
|
253
|
-
<div class="line"><a name="
|
|
254
|
-
<div class="line"><a name="
|
|
255
|
-
<div class="line"><a name="
|
|
256
|
-
<div class="line"><a name="
|
|
257
|
-
<div class="line"><a name="
|
|
258
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
259
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> 
|
|
260
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> 
|
|
261
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
262
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
263
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
264
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> 
|
|
265
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
266
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
267
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
268
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> 
|
|
203
|
+
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 167</a></span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> <a class="code" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">AccessPath::operator+</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>& rhs)<span class="keyword"> const</span></div>
|
|
204
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword"></span>{</div>
|
|
205
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
|
|
206
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantFieldIdx();</div>
|
|
207
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>())</div>
|
|
208
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  ap.<a class="code" href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">addOffsetVarAndGepTypePair</a>(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
|
|
209
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
|
210
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">return</span> ap;</div>
|
|
211
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> }</div>
|
|
212
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
|
|
213
|
+
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 177</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">AccessPath::operator< </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>& rhs)<span class="keyword"> const</span></div>
|
|
214
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="keyword"></span>{</div>
|
|
215
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
|
|
216
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">return</span> (fldIdx < rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
|
|
217
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span></div>
|
|
218
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div>
|
|
219
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>& pairVec = getOffsetVarAndGepTypePairVec();</div>
|
|
220
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>& rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
|
|
221
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
|
|
222
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> (pairVec.size() < rhsPairVec.size());</div>
|
|
223
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">else</span></div>
|
|
224
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div>
|
|
225
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  OffsetVarAndGepTypePairs::const_iterator it = pairVec.begin();</div>
|
|
226
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  OffsetVarAndGepTypePairs::const_iterator rhsIt = rhsPairVec.begin();</div>
|
|
227
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">for</span> (; it != pairVec.end() && rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
|
|
228
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
229
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> (*it) < (*rhsIt);</div>
|
|
230
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
231
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
|
232
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
233
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div>
|
|
234
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div>
|
|
235
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> }</div>
|
|
236
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  </div>
|
|
237
|
+
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 201</a></span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a> <a class="code" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">AccessPath::checkRelation</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>& LHS, <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a>& RHS)</div>
|
|
238
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span> {</div>
|
|
239
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
|
|
240
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
|
|
241
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
|
|
242
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div>
|
|
243
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
|
|
244
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> Same;</div>
|
|
245
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div>
|
|
246
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> Superset;</div>
|
|
247
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div>
|
|
248
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> Subset;</div>
|
|
249
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">else</span></div>
|
|
250
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span> Overlap;</div>
|
|
251
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
|
252
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">else</span></div>
|
|
253
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div>
|
|
254
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span> NonOverlap;</div>
|
|
255
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div>
|
|
256
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> }</div>
|
|
257
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  </div>
|
|
258
|
+
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 223</a></span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">AccessPath::dump</a>()<span class="keyword"> const</span></div>
|
|
259
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword"></span>{</div>
|
|
260
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
261
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  std::stringstream rawstr(str);</div>
|
|
262
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
|
|
263
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  rawstr << <span class="stringliteral">"AccessPath\tField_Index: "</span> << getConstantFieldIdx();</div>
|
|
264
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  rawstr << <span class="stringliteral">",\tNum-Stride: {"</span>;</div>
|
|
265
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>& vec = getOffsetVarAndGepTypePairVec();</div>
|
|
266
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  OffsetVarAndGepTypePairs::const_iterator it = vec.begin();</div>
|
|
267
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  OffsetVarAndGepTypePairs::const_iterator eit = vec.end();</div>
|
|
268
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div>
|
|
269
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div>
|
|
270
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it->second;</div>
|
|
271
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  rawstr << <span class="stringliteral">" (Svf var: "</span> << it->first-><a class="code" href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">toString</a>() << <span class="stringliteral">", Iter type: "</span> << *ty << <span class="stringliteral">")"</span>;</div>
|
|
272
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
273
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  rawstr << <span class="stringliteral">" }\n"</span>;</div>
|
|
274
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
275
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> }</div>
|
|
269
276
|
</div><!-- fragment --></div><!-- contents -->
|
|
270
277
|
<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>
|
|
271
278
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a16756e0545fd3d50ab89f45a2e83bb79"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">SVF::SparseBitVector::intersects</a></div><div class="ttdeci">bool intersects(const SparseBitVector< ElementSize > *RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01031">SparseBitVector.h:1031</a></div></div>
|
|
@@ -276,15 +283,15 @@ $(function() {
|
|
|
276
283
|
<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>
|
|
277
284
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
|
|
278
285
|
<div class="ttc" id="aAccessPath_8h_html"><div class="ttname"><a href="AccessPath_8h.html">AccessPath.h</a></div></div>
|
|
279
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator<</a></div><div class="ttdeci">bool operator<(const AccessPath &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
286
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator<</a></div><div class="ttdeci">bool operator<(const AccessPath &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00177">AccessPath.cpp:177</a></div></div>
|
|
280
287
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a2358a8194b5e2c4bcbb5218dee7fcbcd"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">SVF::AccessPath::addOffsetVarAndGepTypePair</a></div><div class="ttdeci">bool addOffsetVarAndGepTypePair(const SVFVar *var, const SVFType *gepIterType)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00042">AccessPath.cpp:42</a></div></div>
|
|
281
288
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
282
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
289
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00160">AccessPath.cpp:160</a></div></div>
|
|
283
290
|
<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>
|
|
284
291
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
285
292
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
286
293
|
<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>
|
|
287
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &LHS, const AccessPath &RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
294
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &LHS, const AccessPath &RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00201">AccessPath.cpp:201</a></div></div>
|
|
288
295
|
<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#l00150">SVFValue.h:150</a></div></div>
|
|
289
296
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
290
297
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html"><div class="ttname"><a href="classSVF_1_1AccessPath.html">SVF::AccessPath</a></div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00052">AccessPath.h:52</a></div></div>
|
|
@@ -296,12 +303,12 @@ $(function() {
|
|
|
296
303
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a9035ac13134de4647d63507cd80ca3d6"><div class="ttname"><a href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">SVF::SVFType::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8cpp_source.html#l00006">SVFType.cpp:6</a></div></div>
|
|
297
304
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ab0641554924d44f16c2831cac63ccf8b"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">SVF::AccessPath::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const OffsetVarAndGepTypePairs & getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
|
|
298
305
|
<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>
|
|
299
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
306
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00167">AccessPath.cpp:167</a></div></div>
|
|
300
307
|
<div class="ttc" id="acJSON_8cpp_html_a95bf816579e97b6f33bdb5e25ed6d5de"><div class="ttname"><a href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a></div><div class="ttdeci">buffer offset</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l01113">cJSON.cpp:1113</a></div></div>
|
|
301
308
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
302
309
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a403312192a96a9fd5e7d071481592a7f"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">SVF::AccessPath::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00049">AccessPath.cpp:49</a></div></div>
|
|
303
310
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00141">AccessPath.h:141</a></div></div>
|
|
304
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
311
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00223">AccessPath.cpp:223</a></div></div>
|
|
305
312
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a></div><div class="ttdeci">LSRelation</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00059">AccessPath.h:59</a></div></div>
|
|
306
313
|
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html_a73f04bdfc19261b65164b98787bc2ed4"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">SVF::SVFConstantInt::getSExtValue</a></div><div class="ttdeci">s64_t getSExtValue() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00956">SVFValue.h:956</a></div></div>
|
|
307
314
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
@@ -222,16 +222,16 @@ $(function() {
|
|
|
222
222
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a">SVF::AccessPath::Overlap</a></div><div class="ttdeci">@ Overlap</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
223
223
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a73ba2fd20ff0e21a2f09a3396f2596f8"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">SVF::AccessPath::OffsetVarAndGepTypePairs</a></div><div class="ttdeci">std::vector< VarAndGepTypePair > OffsetVarAndGepTypePairs</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00065">AccessPath.h:65</a></div></div>
|
|
224
224
|
<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>
|
|
225
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator<</a></div><div class="ttdeci">bool operator<(const AccessPath &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
225
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ae0f38a5f473af89678db2755667c3421"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421">SVF::AccessPath::operator<</a></div><div class="ttdeci">bool operator<(const AccessPath &rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00177">AccessPath.cpp:177</a></div></div>
|
|
226
226
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a2358a8194b5e2c4bcbb5218dee7fcbcd"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a2358a8194b5e2c4bcbb5218dee7fcbcd">SVF::AccessPath::addOffsetVarAndGepTypePair</a></div><div class="ttdeci">bool addOffsetVarAndGepTypePair(const SVFVar *var, const SVFType *gepIterType)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00042">AccessPath.cpp:42</a></div></div>
|
|
227
227
|
<div class="ttc" id="astructSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00067">SVFType.h:67</a></div></div>
|
|
228
228
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
229
229
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_afea2322fdbad3a6382b60fc3f77e8e94"><div class="ttname"><a href="classSVF_1_1AccessPath.html#afea2322fdbad3a6382b60fc3f77e8e94">SVF::AccessPath::AccessPath</a></div><div class="ttdeci">AccessPath(const AccessPath &ap)</div><div class="ttdoc">Copy Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00071">AccessPath.h:71</a></div></div>
|
|
230
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
230
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00160">AccessPath.cpp:160</a></div></div>
|
|
231
231
|
<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>
|
|
232
232
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">SVF::AccessPath::Same</a></div><div class="ttdeci">@ Same</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
233
233
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a68e49bb797a84ea035ea338549f2e054"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">SVF::AccessPath::getConstantFieldIdx</a></div><div class="ttdeci">APOffset getConstantFieldIdx() const</div><div class="ttdoc">Get methods.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00098">AccessPath.h:98</a></div></div>
|
|
234
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &LHS, const AccessPath &RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
234
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a98b8b3428479259fbafd9e527ecc09bb"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb">SVF::AccessPath::checkRelation</a></div><div class="ttdeci">LSRelation checkRelation(const AccessPath &LHS, const AccessPath &RHS)</div><div class="ttdoc">Check relations of two location sets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00201">AccessPath.cpp:201</a></div></div>
|
|
235
235
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
236
236
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html"><div class="ttname"><a href="classSVF_1_1AccessPath.html">SVF::AccessPath</a></div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00052">AccessPath.h:52</a></div></div>
|
|
237
237
|
<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>
|
|
@@ -243,14 +243,14 @@ $(function() {
|
|
|
243
243
|
<div class="ttc" id="aclassSVF_1_1SVFIRWriter_html"><div class="ttname"><a href="classSVF_1_1SVFIRWriter.html">SVF::SVFIRWriter</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFFileSystem_8h_source.html#l00379">SVFFileSystem.h:379</a></div></div>
|
|
244
244
|
<div class="ttc" id="aclassSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
|
|
245
245
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_ab0641554924d44f16c2831cac63ccf8b"><div class="ttname"><a href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">SVF::AccessPath::getOffsetVarAndGepTypePairVec</a></div><div class="ttdeci">const OffsetVarAndGepTypePairs & getOffsetVarAndGepTypePairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00106">AccessPath.h:106</a></div></div>
|
|
246
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
246
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a6591b6092a829b0c874754b649087aa2"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2">SVF::AccessPath::operator+</a></div><div class="ttdeci">AccessPath operator+(const AccessPath &rhs) const</div><div class="ttdoc">Overload operators.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00167">AccessPath.cpp:167</a></div></div>
|
|
247
247
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14">SVF::AccessPath::Superset</a></div><div class="ttdeci">@ Superset</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
248
248
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aa9f0a1290083a9b077c6065cad054163"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa9f0a1290083a9b077c6065cad054163">SVF::AccessPath::offsetVarAndGepTypePairs</a></div><div class="ttdeci">OffsetVarAndGepTypePairs offsetVarAndGepTypePairs</div><div class="ttdoc">a vector of actual offset in the form of <SVF Var, iterator type>s</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00142">AccessPath.h:142</a></div></div>
|
|
249
249
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a403312192a96a9fd5e7d071481592a7f"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a403312192a96a9fd5e7d071481592a7f">SVF::AccessPath::isConstantOffset</a></div><div class="ttdeci">bool isConstantOffset() const</div><div class="ttdoc">Return TRUE if this is a constant location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00049">AccessPath.cpp:49</a></div></div>
|
|
250
250
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html">SVF::SymbolTableInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00047">SymbolTableInfo.h:47</a></div></div>
|
|
251
251
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_abfc3dfecd5be261ee39f2443d72c1d07"><div class="ttname"><a href="classSVF_1_1AccessPath.html#abfc3dfecd5be261ee39f2443d72c1d07">SVF::AccessPath::operator=</a></div><div class="ttdeci">const AccessPath & operator=(const AccessPath &rhs)</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00083">AccessPath.h:83</a></div></div>
|
|
252
252
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aa1747064a0833855a5848ebf4a4d65fa"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">SVF::AccessPath::fldIdx</a></div><div class="ttdeci">APOffset fldIdx</div><div class="ttdoc">Accumulated Constant Offsets.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00141">AccessPath.h:141</a></div></div>
|
|
253
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
253
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a4519477605a58d5821d05951a88abcd0"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0">SVF::AccessPath::dump</a></div><div class="ttdeci">std::string dump() const</div><div class="ttdoc">Dump location set.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00223">AccessPath.cpp:223</a></div></div>
|
|
254
254
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245">SVF::AccessPath::LSRelation</a></div><div class="ttdeci">LSRelation</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00059">AccessPath.h:59</a></div></div>
|
|
255
255
|
<div class="ttc" id="astructstd_1_1hash_3_01SVF_1_1AccessPath_01_4_html_a16b0806f551270a0078f71796a37f07f"><div class="ttname"><a href="structstd_1_1hash_3_01SVF_1_1AccessPath_01_4.html#a16b0806f551270a0078f71796a37f07f">std::hash< SVF::AccessPath >::operator()</a></div><div class="ttdeci">size_t operator()(const SVF::AccessPath &ap) const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00149">AccessPath.h:149</a></div></div>
|
|
256
256
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4">SVF::AccessPath::Subset</a></div><div class="ttdeci">@ Subset</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
@@ -396,26 +396,26 @@ Friends</h2></td></tr>
|
|
|
396
396
|
|
|
397
397
|
<p>Check relations of two location sets. </p>
|
|
398
398
|
|
|
399
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
400
|
-
<div class="fragment"><div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="
|
|
408
|
-
<div class="line"><a name="
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
399
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00201">201</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
400
|
+
<div class="fragment"><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> {</div>
|
|
401
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> lhsLocations = LHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
|
|
402
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> rhsLocations = RHS.<a class="code" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">computeAllLocations</a>();</div>
|
|
403
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
|
|
404
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div>
|
|
405
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
|
|
406
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">Same</a>;</div>
|
|
407
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(rhsLocations))</div>
|
|
408
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a52a64f855e6233e88b319cf2f3442f14">Superset</a>;</div>
|
|
409
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#abbd0e0cf759fad7858224ed8a63aade8">contains</a>(lhsLocations))</div>
|
|
410
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245a45bfb1e14fd39a700dba1243afe022e4">Subset</a>;</div>
|
|
411
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">else</span></div>
|
|
412
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245afbdf7000b827f7d8590e5f0997e0d59a">Overlap</a>;</div>
|
|
413
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  }</div>
|
|
414
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">else</span></div>
|
|
415
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  {</div>
|
|
416
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245acb3c4a3f685068e391025eb01ebf061d">NonOverlap</a>;</div>
|
|
417
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  }</div>
|
|
418
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> }</div>
|
|
419
419
|
</div><!-- fragment -->
|
|
420
420
|
</div>
|
|
421
421
|
</div>
|
|
@@ -445,12 +445,12 @@ Friends</h2></td></tr>
|
|
|
445
445
|
<p>Compute all possible locations according to offset and number-stride pairs. </p>
|
|
446
446
|
<p>Compute all possible locations according to offset and number-stride pairs. </p>
|
|
447
447
|
|
|
448
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
449
|
-
<div class="fragment"><div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="
|
|
448
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00160">160</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
449
|
+
<div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> {</div>
|
|
450
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
|
|
451
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(<a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>());</div>
|
|
452
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> result;</div>
|
|
453
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div>
|
|
454
454
|
</div><!-- fragment -->
|
|
455
455
|
</div>
|
|
456
456
|
</div>
|
|
@@ -500,12 +500,19 @@ Friends</h2></td></tr>
|
|
|
500
500
|
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">else</span></div>
|
|
501
501
|
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  {</div>
|
|
502
502
|
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
|
|
503
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <
|
|
504
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
505
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
506
|
-
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> 
|
|
507
|
-
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> 
|
|
508
|
-
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> 
|
|
503
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> >= 0)</div>
|
|
504
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div>
|
|
505
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
|
|
506
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a24df52313f8093bb651ae9da972cd663">getFlattenedElemIdx</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>,</div>
|
|
507
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
508
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  totalConstOffset += flattenOffset;</div>
|
|
509
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div>
|
|
510
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">else</span></div>
|
|
511
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  totalConstOffset += <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>;</div>
|
|
512
|
+
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div>
|
|
513
|
+
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div>
|
|
514
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> totalConstOffset;</div>
|
|
515
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> }</div>
|
|
509
516
|
</div><!-- fragment -->
|
|
510
517
|
</div>
|
|
511
518
|
</div>
|
|
@@ -526,24 +533,24 @@ Friends</h2></td></tr>
|
|
|
526
533
|
|
|
527
534
|
<p>Dump location set. </p>
|
|
528
535
|
|
|
529
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
530
|
-
<div class="fragment"><div class="line"><a name="
|
|
531
|
-
<div class="line"><a name="
|
|
532
|
-
<div class="line"><a name="
|
|
533
|
-
<div class="line"><a name="
|
|
534
|
-
<div class="line"><a name="
|
|
535
|
-
<div class="line"><a name="
|
|
536
|
-
<div class="line"><a name="
|
|
537
|
-
<div class="line"><a name="
|
|
538
|
-
<div class="line"><a name="
|
|
539
|
-
<div class="line"><a name="
|
|
540
|
-
<div class="line"><a name="
|
|
541
|
-
<div class="line"><a name="
|
|
542
|
-
<div class="line"><a name="
|
|
543
|
-
<div class="line"><a name="
|
|
544
|
-
<div class="line"><a name="
|
|
545
|
-
<div class="line"><a name="
|
|
546
|
-
<div class="line"><a name="
|
|
536
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00223">223</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
537
|
+
<div class="fragment"><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> {</div>
|
|
538
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
539
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  std::stringstream rawstr(str);</div>
|
|
540
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  </div>
|
|
541
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  rawstr << <span class="stringliteral">"AccessPath\tField_Index: "</span> << <a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>();</div>
|
|
542
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  rawstr << <span class="stringliteral">",\tNum-Stride: {"</span>;</div>
|
|
543
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>& vec = <a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
|
|
544
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  OffsetVarAndGepTypePairs::const_iterator it = vec.begin();</div>
|
|
545
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  OffsetVarAndGepTypePairs::const_iterator eit = vec.end();</div>
|
|
546
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div>
|
|
547
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div>
|
|
548
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it->second;</div>
|
|
549
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  rawstr << <span class="stringliteral">" (Svf var: "</span> << it->first-><a class="code" href="classSVF_1_1SVFType.html#a9035ac13134de4647d63507cd80ca3d6">toString</a>() << <span class="stringliteral">", Iter type: "</span> << *ty << <span class="stringliteral">")"</span>;</div>
|
|
550
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div>
|
|
551
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  rawstr << <span class="stringliteral">" }\n"</span>;</div>
|
|
552
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
553
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> }</div>
|
|
547
554
|
</div><!-- fragment -->
|
|
548
555
|
</div>
|
|
549
556
|
</div>
|
|
@@ -738,15 +745,15 @@ Friends</h2></td></tr>
|
|
|
738
745
|
|
|
739
746
|
<p>Overload operators. </p>
|
|
740
747
|
|
|
741
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
742
|
-
<div class="fragment"><div class="line"><a name="
|
|
743
|
-
<div class="line"><a name="
|
|
744
|
-
<div class="line"><a name="
|
|
745
|
-
<div class="line"><a name="
|
|
746
|
-
<div class="line"><a name="
|
|
747
|
-
<div class="line"><a name="
|
|
748
|
-
<div class="line"><a name="
|
|
749
|
-
<div class="line"><a name="
|
|
748
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00167">167</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
749
|
+
<div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> {</div>
|
|
750
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
|
|
751
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  ap.fldIdx += <a class="code" href="classSVF_1_1AccessPath.html#a68e49bb797a84ea035ea338549f2e054">getConstantFieldIdx</a>();</div>
|
|
752
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a> : ap.getOffsetVarAndGepTypePairVec())</div>
|
|
753
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  ap.addOffsetVarAndGepTypePair(<a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.first, <a class="code" href="cJSON_8cpp.html#a009ef1d888ab6dbe77e6b42b0b39f1ae">p</a>.second);</div>
|
|
754
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
|
|
755
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">return</span> ap;</div>
|
|
756
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> }</div>
|
|
750
757
|
</div><!-- fragment -->
|
|
751
758
|
</div>
|
|
752
759
|
</div>
|
|
@@ -766,29 +773,29 @@ Friends</h2></td></tr>
|
|
|
766
773
|
</table>
|
|
767
774
|
</div><div class="memdoc">
|
|
768
775
|
|
|
769
|
-
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#
|
|
770
|
-
<div class="fragment"><div class="line"><a name="
|
|
771
|
-
<div class="line"><a name="
|
|
772
|
-
<div class="line"><a name="
|
|
773
|
-
<div class="line"><a name="
|
|
774
|
-
<div class="line"><a name="
|
|
775
|
-
<div class="line"><a name="
|
|
776
|
-
<div class="line"><a name="
|
|
777
|
-
<div class="line"><a name="
|
|
778
|
-
<div class="line"><a name="
|
|
779
|
-
<div class="line"><a name="
|
|
780
|
-
<div class="line"><a name="
|
|
781
|
-
<div class="line"><a name="
|
|
782
|
-
<div class="line"><a name="
|
|
783
|
-
<div class="line"><a name="
|
|
784
|
-
<div class="line"><a name="
|
|
785
|
-
<div class="line"><a name="
|
|
786
|
-
<div class="line"><a name="
|
|
787
|
-
<div class="line"><a name="
|
|
788
|
-
<div class="line"><a name="
|
|
789
|
-
<div class="line"><a name="
|
|
790
|
-
<div class="line"><a name="
|
|
791
|
-
<div class="line"><a name="
|
|
776
|
+
<p class="definition">Definition at line <a class="el" href="AccessPath_8cpp_source.html#l00177">177</a> of file <a class="el" href="AccessPath_8cpp_source.html">AccessPath.cpp</a>.</p>
|
|
777
|
+
<div class="fragment"><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> {</div>
|
|
778
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
|
|
779
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">return</span> (<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> < rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
|
|
780
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">else</span></div>
|
|
781
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  {</div>
|
|
782
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>& pairVec = <a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
|
|
783
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a73ba2fd20ff0e21a2f09a3396f2596f8">OffsetVarAndGepTypePairs</a>& rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#ab0641554924d44f16c2831cac63ccf8b">getOffsetVarAndGepTypePairVec</a>();</div>
|
|
784
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
|
|
785
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> (pairVec.size() < rhsPairVec.size());</div>
|
|
786
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">else</span></div>
|
|
787
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div>
|
|
788
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  OffsetVarAndGepTypePairs::const_iterator it = pairVec.begin();</div>
|
|
789
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  OffsetVarAndGepTypePairs::const_iterator rhsIt = rhsPairVec.begin();</div>
|
|
790
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">for</span> (; it != pairVec.end() && rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
|
|
791
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  {</div>
|
|
792
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">return</span> (*it) < (*rhsIt);</div>
|
|
793
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  }</div>
|
|
794
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  </div>
|
|
795
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
796
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div>
|
|
797
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div>
|
|
798
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span> }</div>
|
|
792
799
|
</div><!-- fragment -->
|
|
793
800
|
</div>
|
|
794
801
|
</div>
|
|
@@ -1028,7 +1035,7 @@ Friends</h2></td></tr>
|
|
|
1028
1035
|
<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>
|
|
1029
1036
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
|
|
1030
1037
|
<div class="ttc" id="aclassSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00459">SparseBitVector.h:459</a></div></div>
|
|
1031
|
-
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#
|
|
1038
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a76222b6571e46e8a8bd5c8c597c8ffaf"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf">SVF::AccessPath::computeAllLocations</a></div><div class="ttdeci">NodeBS computeAllLocations() const</div><div class="ttdoc">Compute all possible locations according to offset and number-stride pairs.</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00160">AccessPath.cpp:160</a></div></div>
|
|
1032
1039
|
<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>
|
|
1033
1040
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a"><div class="ttname"><a href="classSVF_1_1AccessPath.html#aabb6c9600fac408f36b9fde013597245ab1ba3a42758473e5ff427ba36147a56a">SVF::AccessPath::Same</a></div><div class="ttdeci">@ Same</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00061">AccessPath.h:61</a></div></div>
|
|
1034
1041
|
<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>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.765",
|
|
4
4
|
"description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -141,8 +141,15 @@ APOffset AccessPath::computeConstantOffset() const
|
|
|
141
141
|
else
|
|
142
142
|
{
|
|
143
143
|
APOffset offset = op->getSExtValue();
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
if (offset >= 0)
|
|
145
|
+
{
|
|
146
|
+
u32_t flattenOffset =
|
|
147
|
+
SymbolTableInfo::SymbolInfo()->getFlattenedElemIdx(type,
|
|
148
|
+
offset);
|
|
149
|
+
totalConstOffset += flattenOffset;
|
|
150
|
+
}
|
|
151
|
+
else
|
|
152
|
+
totalConstOffset += offset;
|
|
146
153
|
}
|
|
147
154
|
}
|
|
148
155
|
return totalConstOffset;
|