svf-tools 1.0.815 → 1.0.817
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/AccessPath_8cpp_source.html +131 -121
- package/SVF-doxygen/html/AccessPath_8h_source.html +14 -14
- package/SVF-doxygen/html/SVFIR2ItvExeState_8cpp_source.html +692 -695
- package/SVF-doxygen/html/SVFIR2ItvExeState_8h_source.html +15 -15
- package/SVF-doxygen/html/classSVF_1_1AccessPath-members.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1AccessPath.html +140 -131
- package/SVF-doxygen/html/classSVF_1_1SVFIR2ItvExeState.html +663 -666
- package/SVF-doxygen/html/functions_func_g.html +2 -2
- package/SVF-doxygen/html/functions_g.html +4 -4
- package/SVF-doxygen/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/search/all_7.js +2 -2
- package/SVF-doxygen/html/search/functions_7.js +1 -1
- package/SVF-doxygen/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/svf-ex_8cpp.html +11 -11
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +11 -11
- package/package.json +1 -1
- package/svf/include/MemoryModel/AccessPath.h +7 -7
- package/svf/lib/AbstractExecution/SVFIR2ItvExeState.cpp +4 -7
- package/svf/lib/MemoryModel/AccessPath.cpp +14 -7
|
@@ -219,122 +219,129 @@ $(function() {
|
|
|
219
219
|
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
|
|
220
220
|
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  assert(isConstantOffset() && <span class="stringliteral">"not a constant offset"</span>);</div>
|
|
221
221
|
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
|
|
222
|
-
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <
|
|
223
|
-
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">
|
|
224
|
-
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span> 
|
|
225
|
-
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  </div>
|
|
226
|
-
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> 
|
|
227
|
-
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span> 
|
|
228
|
-
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span> 
|
|
229
|
-
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="
|
|
230
|
-
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span> 
|
|
231
|
-
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> 
|
|
232
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span> 
|
|
233
|
-
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span> 
|
|
234
|
-
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span> 
|
|
235
|
-
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span> 
|
|
236
|
-
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> 
|
|
237
|
-
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span> 
|
|
238
|
-
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span> 
|
|
239
|
-
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span> 
|
|
240
|
-
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
|
|
241
|
-
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> 
|
|
242
|
-
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> 
|
|
243
|
-
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span> 
|
|
244
|
-
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span> 
|
|
245
|
-
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span> 
|
|
246
|
-
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span> 
|
|
247
|
-
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="
|
|
248
|
-
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span> 
|
|
249
|
-
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span> 
|
|
250
|
-
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span> 
|
|
251
|
-
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span> 
|
|
252
|
-
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span> 
|
|
253
|
-
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span> 
|
|
254
|
-
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span> 
|
|
255
|
-
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span> 
|
|
256
|
-
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span> 
|
|
257
|
-
<div class="line"><a name="
|
|
258
|
-
<div class="line"><a name="
|
|
259
|
-
<div class="line"><a name="
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="
|
|
263
|
-
<div class="line"><a name="
|
|
264
|
-
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#
|
|
222
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a> totalConstOffset = 0;</div>
|
|
223
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = idxOperandPairs.size() - 1; i >= 0; i--)</div>
|
|
224
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div>
|
|
225
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* value = idxOperandPairs[i].first->getValue();</div>
|
|
226
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</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> = idxOperandPairs[i].second;</div>
|
|
227
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>* op = SVFUtil::dyn_cast<SVFConstantInt>(value);</div>
|
|
228
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  assert(op && <span class="stringliteral">"not a constant offset?"</span>);</div>
|
|
229
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">if</span>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>==<span class="keyword">nullptr</span>)</div>
|
|
230
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  {</div>
|
|
231
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  totalConstOffset += op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>();</div>
|
|
232
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">continue</span>;</div>
|
|
233
|
+
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
|
|
234
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
|
235
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>* pty = SVFUtil::dyn_cast<SVFPointerType>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>))</div>
|
|
236
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  totalConstOffset += op-><a class="code" href="classSVF_1_1SVFConstantInt.html#a73f04bdfc19261b65164b98787bc2ed4">getSExtValue</a>() * getElementNum(pty->getPtrElementType());</div>
|
|
237
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">else</span></div>
|
|
238
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  {</div>
|
|
239
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</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>
|
|
240
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> >= 0)</div>
|
|
241
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div>
|
|
242
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">const</span> std::vector<u32_t>& so = <a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a5dc699aa85fe879eb4b2c9109cf3030d">getTypeInfo</a>(<a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>)-><a class="code" href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">getFlattenedElemIdxVec</a>();</div>
|
|
243
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">// if offset is larger than the size of getFlattenedElemIdxVec (overflow)</span></div>
|
|
244
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// set offset the last index of getFlattenedElemIdxVec to avoid assertion</span></div>
|
|
245
|
+
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> >= (<a class="code" href="namespaceSVF.html#a5c4820681ef340339ddded756eb82ae1">APOffset</a>)so.size())</div>
|
|
246
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  {</div>
|
|
247
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"It is overflow access, we access the last idx\n"</span>;</div>
|
|
248
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a> = so.size() - 1;</div>
|
|
249
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div>
|
|
250
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keywordflow">else</span></div>
|
|
251
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  {</div>
|
|
252
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div>
|
|
253
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  }</div>
|
|
254
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
|
|
255
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> flattenOffset =</div>
|
|
256
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</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>
|
|
257
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="cJSON_8cpp.html#a95bf816579e97b6f33bdb5e25ed6d5de">offset</a>);</div>
|
|
258
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  totalConstOffset += flattenOffset;</div>
|
|
259
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
|
|
260
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div>
|
|
261
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div>
|
|
262
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">return</span> totalConstOffset;</div>
|
|
263
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span> }</div>
|
|
264
|
+
<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a76222b6571e46e8a8bd5c8c597c8ffaf"> 257</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>
|
|
265
265
|
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keyword"></span>{</div>
|
|
266
|
-
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span> 
|
|
267
|
-
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span> 
|
|
268
|
-
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span> 
|
|
269
|
-
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> 
|
|
270
|
-
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> 
|
|
271
|
-
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
|
|
272
|
-
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> 
|
|
273
|
-
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span> 
|
|
274
|
-
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  </div>
|
|
275
|
-
<div class="line"><a name="l00268"></a><span class="lineno"
|
|
276
|
-
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span> 
|
|
277
|
-
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> 
|
|
278
|
-
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span> 
|
|
279
|
-
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">
|
|
280
|
-
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> 
|
|
281
|
-
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span> 
|
|
282
|
-
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span> 
|
|
283
|
-
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> 
|
|
284
|
-
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span> 
|
|
285
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">
|
|
286
|
-
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> 
|
|
287
|
-
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span> 
|
|
288
|
-
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span> 
|
|
289
|
-
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> 
|
|
290
|
-
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> 
|
|
291
|
-
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span> 
|
|
292
|
-
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> 
|
|
293
|
-
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span> 
|
|
294
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> 
|
|
295
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
296
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> 
|
|
297
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> 
|
|
298
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
|
299
|
-
<div class="line"><a name="l00292"></a><span class="lineno"
|
|
300
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> 
|
|
301
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> 
|
|
302
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> 
|
|
303
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> 
|
|
304
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
305
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> 
|
|
306
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
|
|
307
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> 
|
|
308
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span> 
|
|
309
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> 
|
|
310
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span> 
|
|
311
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> 
|
|
312
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span> 
|
|
313
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span> 
|
|
314
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span> 
|
|
315
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> 
|
|
316
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">
|
|
317
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> 
|
|
318
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> 
|
|
319
|
-
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  </div>
|
|
320
|
-
<div class="line"><a name="
|
|
321
|
-
<div class="line"><a name="
|
|
322
|
-
<div class="line"><a name="
|
|
323
|
-
<div class="line"><a name="
|
|
324
|
-
<div class="line"><a name="
|
|
325
|
-
<div class="line"><a name="
|
|
326
|
-
<div class="line"><a name="
|
|
327
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> 
|
|
328
|
-
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> 
|
|
329
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> 
|
|
330
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> 
|
|
331
|
-
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> 
|
|
332
|
-
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> 
|
|
333
|
-
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> 
|
|
334
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> 
|
|
335
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> 
|
|
336
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> 
|
|
337
|
-
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> 
|
|
266
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> result;</div>
|
|
267
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  result.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(getConstantStructFldIdx());</div>
|
|
268
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> result;</div>
|
|
269
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span> }</div>
|
|
270
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div>
|
|
271
|
+
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a6591b6092a829b0c874754b649087aa2"> 264</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>
|
|
272
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="keyword"></span>{</div>
|
|
273
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  assert(gepPointeeType == rhs.<a class="code" href="classSVF_1_1AccessPath.html#a8e0c5f7549c3b6a7808caacd57bf2035">getGepPointeeType</a>() && <span class="stringliteral">"source element type not match"</span>);</div>
|
|
274
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classSVF_1_1AccessPath.html">AccessPath</a> ap(rhs);</div>
|
|
275
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  ap.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a> += getConstantStructFldIdx();</div>
|
|
276
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</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#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>())</div>
|
|
277
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</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>
|
|
278
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  </div>
|
|
279
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">return</span> ap;</div>
|
|
280
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> }</div>
|
|
281
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
|
|
282
|
+
<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#ae0f38a5f473af89678db2755667c3421"> 275</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>
|
|
283
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword"></span>{</div>
|
|
284
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">if</span> (fldIdx != rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>)</div>
|
|
285
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">return</span> (fldIdx < rhs.<a class="code" href="classSVF_1_1AccessPath.html#aa1747064a0833855a5848ebf4a4d65fa">fldIdx</a>);</div>
|
|
286
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">else</span></div>
|
|
287
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div>
|
|
288
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>& pairVec = getIdxOperandPairVec();</div>
|
|
289
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>& rhsPairVec = rhs.<a class="code" href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">getIdxOperandPairVec</a>();</div>
|
|
290
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">if</span> (pairVec.size() != rhsPairVec.size())</div>
|
|
291
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">return</span> (pairVec.size() < rhsPairVec.size());</div>
|
|
292
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">else</span></div>
|
|
293
|
+
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div>
|
|
294
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  IdxOperandPairs::const_iterator it = pairVec.begin();</div>
|
|
295
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  IdxOperandPairs::const_iterator rhsIt = rhsPairVec.begin();</div>
|
|
296
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">for</span> (; it != pairVec.end() && rhsIt != rhsPairVec.end(); ++it, ++rhsIt)</div>
|
|
297
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  {</div>
|
|
298
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">return</span> (*it) < (*rhsIt);</div>
|
|
299
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  }</div>
|
|
300
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
|
|
301
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
|
302
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div>
|
|
303
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
|
304
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> }</div>
|
|
305
|
+
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </div>
|
|
306
|
+
<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a98b8b3428479259fbafd9e527ecc09bb"> 299</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>
|
|
307
|
+
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span> {</div>
|
|
308
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</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>
|
|
309
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</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>
|
|
310
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">if</span> (lhsLocations.<a class="code" href="classSVF_1_1SparseBitVector.html#a16756e0545fd3d50ab89f45a2e83bb79">intersects</a>(rhsLocations))</div>
|
|
311
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div>
|
|
312
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">if</span> (lhsLocations == rhsLocations)</div>
|
|
313
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> Same;</div>
|
|
314
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</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>
|
|
315
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> Superset;</div>
|
|
316
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</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>
|
|
317
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> Subset;</div>
|
|
318
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">else</span></div>
|
|
319
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> Overlap;</div>
|
|
320
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div>
|
|
321
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">else</span></div>
|
|
322
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div>
|
|
323
|
+
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">return</span> NonOverlap;</div>
|
|
324
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div>
|
|
325
|
+
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> }</div>
|
|
326
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
|
|
327
|
+
<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classSVF_1_1AccessPath.html#a4519477605a58d5821d05951a88abcd0"> 321</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>
|
|
328
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="keyword"></span>{</div>
|
|
329
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
330
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  std::stringstream rawstr(str);</div>
|
|
331
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  </div>
|
|
332
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  rawstr << <span class="stringliteral">"AccessPath\tField_Index: "</span> << getConstantStructFldIdx();</div>
|
|
333
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  rawstr << <span class="stringliteral">",\tNum-Stride: {"</span>;</div>
|
|
334
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">IdxOperandPairs</a>& vec = getIdxOperandPairVec();</div>
|
|
335
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  IdxOperandPairs::const_iterator it = vec.begin();</div>
|
|
336
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  IdxOperandPairs::const_iterator eit = vec.end();</div>
|
|
337
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">for</span> (; it != eit; ++it)</div>
|
|
338
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div>
|
|
339
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = it->second;</div>
|
|
340
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</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>
|
|
341
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  }</div>
|
|
342
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  rawstr << <span class="stringliteral">" }\n"</span>;</div>
|
|
343
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
344
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> }</div>
|
|
338
345
|
</div><!-- fragment --></div><!-- contents -->
|
|
339
346
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a1f279344b4061838d7b3498631bc907c"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a1f279344b4061838d7b3498631bc907c">SVF::AccessPath::getStructFieldOffset</a></div><div class="ttdeci">u32_t getStructFieldOffset(const SVFVar *idxOperandVar, const SVFStructType *idxOperandType) const</div><div class="ttdoc">Return byte offset from the beginning of the structure to the field where it is located for struct ty...</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00162">AccessPath.cpp:162</a></div></div>
|
|
340
347
|
<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>
|
|
@@ -346,20 +353,20 @@ $(function() {
|
|
|
346
353
|
<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>
|
|
347
354
|
<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>
|
|
348
355
|
<div class="ttc" id="aAccessPath_8h_html"><div class="ttname"><a href="AccessPath_8h.html">AccessPath.h</a></div></div>
|
|
349
|
-
<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#
|
|
356
|
+
<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#l00275">AccessPath.cpp:275</a></div></div>
|
|
350
357
|
<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>
|
|
351
358
|
<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>
|
|
352
359
|
<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>
|
|
353
|
-
<div class="ttc" id="
|
|
354
|
-
<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#l00250">AccessPath.cpp:250</a></div></div>
|
|
360
|
+
<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#l00257">AccessPath.cpp:257</a></div></div>
|
|
355
361
|
<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>
|
|
356
362
|
<div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
|
|
357
363
|
<div class="ttc" id="aOptions_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
358
364
|
<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>
|
|
359
|
-
<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#
|
|
365
|
+
<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#l00299">AccessPath.cpp:299</a></div></div>
|
|
360
366
|
<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>
|
|
361
367
|
<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>
|
|
362
368
|
<div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00469">SVFType.h:469</a></div></div>
|
|
369
|
+
<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>
|
|
363
370
|
<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>
|
|
364
371
|
<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>
|
|
365
372
|
<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>
|
|
@@ -369,22 +376,25 @@ $(function() {
|
|
|
369
376
|
<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>
|
|
370
377
|
<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>
|
|
371
378
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a04ca154a70f40999a6a28c505bfd942d"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a04ca154a70f40999a6a28c505bfd942d">SVF::AccessPath::IdxOperandPairs</a></div><div class="ttdeci">std::vector< IdxOperandPair > IdxOperandPairs</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00065">AccessPath.h:65</a></div></div>
|
|
379
|
+
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a8e0c5f7549c3b6a7808caacd57bf2035"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a8e0c5f7549c3b6a7808caacd57bf2035">SVF::AccessPath::getGepPointeeType</a></div><div class="ttdeci">const SVFType * getGepPointeeType() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00112">AccessPath.h:112</a></div></div>
|
|
372
380
|
<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>
|
|
373
381
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a586c71842e3e4487921aa3384ce9d025"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a586c71842e3e4487921aa3384ce9d025">SVF::AccessPath::getIdxOperandPairVec</a></div><div class="ttdeci">const IdxOperandPairs & getIdxOperandPairVec() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8h_source.html#l00108">AccessPath.h:108</a></div></div>
|
|
374
382
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_aaf05447c20c9f90eea64ab6e88d6ab05"><div class="ttname"><a href="classSVF_1_1StInfo.html#aaf05447c20c9f90eea64ab6e88d6ab05">SVF::StInfo::getFlattenedFieldIdxVec</a></div><div class="ttdeci">std::vector< u32_t > & getFlattenedFieldIdxVec()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00180">SVFType.h:180</a></div></div>
|
|
375
383
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a05850c17c2dbe42e5602dc8c9a70f3bd"><div class="ttname"><a href="classSVF_1_1SVFType.html#a05850c17c2dbe42e5602dc8c9a70f3bd">SVF::SVFType::getTypeInfo</a></div><div class="ttdeci">StInfo * getTypeInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00309">SVFType.h:309</a></div></div>
|
|
376
|
-
<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#
|
|
384
|
+
<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#l00264">AccessPath.cpp:264</a></div></div>
|
|
377
385
|
<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>
|
|
378
386
|
<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>
|
|
379
387
|
<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>
|
|
380
388
|
<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#l00174">AccessPath.h:174</a></div></div>
|
|
381
|
-
<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#
|
|
389
|
+
<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#l00321">AccessPath.cpp:321</a></div></div>
|
|
382
390
|
<div class="ttc" id="aclassSVF_1_1Options_html_aaab923c093730b1670a54f09340b1bd5"><div class="ttname"><a href="classSVF_1_1Options.html#aaab923c093730b1670a54f09340b1bd5">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const Option< u32_t > MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object.</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00038">Options.h:38</a></div></div>
|
|
383
391
|
<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>
|
|
384
392
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a055697f565cb9d73b41110090fe50159"><div class="ttname"><a href="classSVF_1_1StInfo.html#a055697f565cb9d73b41110090fe50159">SVF::StInfo::getOriginalElemType</a></div><div class="ttdeci">const SVFType * getOriginalElemType(u32_t fldIdx) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00026">SVFValue.cpp:26</a></div></div>
|
|
385
393
|
<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#l00994">SVFValue.h:994</a></div></div>
|
|
386
394
|
<div class="ttc" id="aclassSVF_1_1AccessPath_html_a43dc770c4458c6ac58c591974b93fc57"><div class="ttname"><a href="classSVF_1_1AccessPath.html#a43dc770c4458c6ac58c591974b93fc57">SVF::AccessPath::computeConstantByteOffset</a></div><div class="ttdeci">APOffset computeConstantByteOffset() const</div><div class="ttdef"><b>Definition:</b> <a href="AccessPath_8cpp_source.html#l00097">AccessPath.cpp:97</a></div></div>
|
|
387
395
|
<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>
|
|
396
|
+
<div class="ttc" id="aclassSVF_1_1StInfo_html_a55e5fd85f232c1867c5c6a73646d53eb"><div class="ttname"><a href="classSVF_1_1StInfo.html#a55e5fd85f232c1867c5c6a73646d53eb">SVF::StInfo::getFlattenedElemIdxVec</a></div><div class="ttdeci">std::vector< u32_t > & getFlattenedElemIdxVec()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00184">SVFType.h:184</a></div></div>
|
|
397
|
+
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00056">SVFUtil.h:56</a></div></div>
|
|
388
398
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a811a3489df0f793c7a5482d31d470a4c"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a811a3489df0f793c7a5482d31d470a4c">SVF::SymbolTableInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements(const SVFType *T)</div><div class="ttdoc">Number of flattened elements of an array or struct.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00172">SymbolTableInfo.cpp:172</a></div></div>
|
|
389
399
|
<!-- start footer part -->
|
|
390
400
|
<hr class="footer"/><address class="footer"><small>
|