svf-tools 1.0.771 → 1.0.772

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.
@@ -368,7 +368,7 @@ $(function() {
368
368
  : <a class="el" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">SVF::CondPTAImpl&lt; Cond &gt;</a>
369
369
  </li>
370
370
  <li>getBytefromGepTypePair()
371
- : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a26a8068c25c7bea40b311f120d917cbb">SVF::SVFIR2ItvExeState</a>
371
+ : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">SVF::SVFIR2ItvExeState</a>
372
372
  </li>
373
373
  <li>getCachedADPointsTo()
374
374
  : <a class="el" href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">SVF::DDAVFSolver&lt; CVar, CPtSet, DPIm &gt;</a>
@@ -1249,14 +1249,14 @@ $(function() {
1249
1249
  : <a class="el" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">SVF::MemSSA</a>
1250
1250
  </li>
1251
1251
  <li>getGepByteOffset()
1252
- : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a33785e2f4181fe48a4092100386440e7">SVF::SVFIR2ItvExeState</a>
1252
+ : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b">SVF::SVFIR2ItvExeState</a>
1253
1253
  </li>
1254
1254
  <li>getGepInEdges()
1255
1255
  : <a class="el" href="classSVF_1_1ConstraintNode.html#ac645cf2114161981cd4465c83cbc31f5">SVF::ConstraintNode</a>
1256
1256
  </li>
1257
1257
  <li>getGepObjAddress()
1258
1258
  : <a class="el" href="classSVF_1_1SVFIR2ConsExeState.html#afc9c3372eb142afdb3eb8956adf53c33">SVF::SVFIR2ConsExeState</a>
1259
- , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a3d135e0c48ec2bbe2fef524405fcb8b0">SVF::SVFIR2ItvExeState</a>
1259
+ , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVF::SVFIR2ItvExeState</a>
1260
1260
  </li>
1261
1261
  <li>getGepObjNodeMap()
1262
1262
  : <a class="el" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">SVF::SVFIR</a>
@@ -1268,7 +1268,7 @@ $(function() {
1268
1268
  </li>
1269
1269
  <li>getGepOffset()
1270
1270
  : <a class="el" href="classSVF_1_1SVFIR2ConsExeState.html#ae7720cdcb509ecfccbda141986643684">SVF::SVFIR2ConsExeState</a>
1271
- , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a6c4dfdb5a6cee8ea3479606b917ef9e9">SVF::SVFIR2ItvExeState</a>
1271
+ , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVF::SVFIR2ItvExeState</a>
1272
1272
  </li>
1273
1273
  <li>getGepOutEdges()
1274
1274
  : <a class="el" href="classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8">SVF::ConstraintNode</a>
@@ -1379,7 +1379,7 @@ $(function() {
1379
1379
  : <a class="el" href="classllvm_1_1generic__bridge__gep__type__iterator.html#acc10ad7ecc64270225cb5e8f52689673">llvm::generic_bridge_gep_type_iterator&lt; ItTy &gt;</a>
1380
1380
  </li>
1381
1381
  <li>getIndexfromGepTypePair()
1382
- : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a841ace0635d388bc1f4d59d6761e4439">SVF::SVFIR2ItvExeState</a>
1382
+ : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVF::SVFIR2ItvExeState</a>
1383
1383
  </li>
1384
1384
  <li>getIndirectCalls()
1385
1385
  : <a class="el" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">SVF::PTACallGraphEdge</a>
@@ -433,7 +433,7 @@ $(function() {
433
433
  : <a class="el" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">SVF::CondPTAImpl&lt; Cond &gt;</a>
434
434
  </li>
435
435
  <li>getBytefromGepTypePair()
436
- : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a26a8068c25c7bea40b311f120d917cbb">SVF::SVFIR2ItvExeState</a>
436
+ : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b">SVF::SVFIR2ItvExeState</a>
437
437
  </li>
438
438
  <li>getCachedADPointsTo()
439
439
  : <a class="el" href="classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704">SVF::DDAVFSolver&lt; CVar, CPtSet, DPIm &gt;</a>
@@ -1314,14 +1314,14 @@ $(function() {
1314
1314
  : <a class="el" href="classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a">SVF::MemSSA</a>
1315
1315
  </li>
1316
1316
  <li>getGepByteOffset()
1317
- : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a33785e2f4181fe48a4092100386440e7">SVF::SVFIR2ItvExeState</a>
1317
+ : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b">SVF::SVFIR2ItvExeState</a>
1318
1318
  </li>
1319
1319
  <li>getGepInEdges()
1320
1320
  : <a class="el" href="classSVF_1_1ConstraintNode.html#ac645cf2114161981cd4465c83cbc31f5">SVF::ConstraintNode</a>
1321
1321
  </li>
1322
1322
  <li>getGepObjAddress()
1323
1323
  : <a class="el" href="classSVF_1_1SVFIR2ConsExeState.html#afc9c3372eb142afdb3eb8956adf53c33">SVF::SVFIR2ConsExeState</a>
1324
- , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a3d135e0c48ec2bbe2fef524405fcb8b0">SVF::SVFIR2ItvExeState</a>
1324
+ , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a">SVF::SVFIR2ItvExeState</a>
1325
1325
  </li>
1326
1326
  <li>getGepObjNodeMap()
1327
1327
  : <a class="el" href="classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e">SVF::SVFIR</a>
@@ -1333,7 +1333,7 @@ $(function() {
1333
1333
  </li>
1334
1334
  <li>getGepOffset()
1335
1335
  : <a class="el" href="classSVF_1_1SVFIR2ConsExeState.html#ae7720cdcb509ecfccbda141986643684">SVF::SVFIR2ConsExeState</a>
1336
- , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a6c4dfdb5a6cee8ea3479606b917ef9e9">SVF::SVFIR2ItvExeState</a>
1336
+ , <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b">SVF::SVFIR2ItvExeState</a>
1337
1337
  </li>
1338
1338
  <li>getGepOutEdges()
1339
1339
  : <a class="el" href="classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8">SVF::ConstraintNode</a>
@@ -1444,7 +1444,7 @@ $(function() {
1444
1444
  : <a class="el" href="classllvm_1_1generic__bridge__gep__type__iterator.html#acc10ad7ecc64270225cb5e8f52689673">llvm::generic_bridge_gep_type_iterator&lt; ItTy &gt;</a>
1445
1445
  </li>
1446
1446
  <li>getIndexfromGepTypePair()
1447
- : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#a841ace0635d388bc1f4d59d6761e4439">SVF::SVFIR2ItvExeState</a>
1447
+ : <a class="el" href="classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb">SVF::SVFIR2ItvExeState</a>
1448
1448
  </li>
1449
1449
  <li>getIndirectCalls()
1450
1450
  : <a class="el" href="classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07">SVF::PTACallGraphEdge</a>
@@ -232,7 +232,7 @@ var searchData=
232
232
  ['getbugset_2225',['getBugSet',['../classSVF_1_1SVFBugReport.html#a7dbf4adc013615567b33b6e293b61c8e',1,'SVF::SVFBugReport']]],
233
233
  ['getbugtype_2226',['getBugType',['../classSVF_1_1GenericBug.html#a693839b33e167cd0688be2e1738198f2',1,'SVF::GenericBug']]],
234
234
  ['getbvpointsto_2227',['getBVPointsTo',['../classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43',1,'SVF::CondPTAImpl']]],
235
- ['getbytefromgeptypepair_2228',['getBytefromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#a26a8068c25c7bea40b311f120d917cbb',1,'SVF::SVFIR2ItvExeState']]],
235
+ ['getbytefromgeptypepair_2228',['getBytefromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b',1,'SVF::SVFIR2ItvExeState']]],
236
236
  ['getcachedadpointsto_2229',['getCachedADPointsTo',['../classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704',1,'SVF::DDAVFSolver']]],
237
237
  ['getcachedpointsto_2230',['getCachedPointsTo',['../classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf',1,'SVF::DDAVFSolver']]],
238
238
  ['getcachedtlpointsto_2231',['getCachedTLPointsTo',['../classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f',1,'SVF::DDAVFSolver::getCachedTLPointsTo()'],['../classSVF_1_1FlowDDA.html#a950d653b249cfc2d20932adb3498b99b',1,'SVF::FlowDDA::getCachedTLPointsTo()']]],
@@ -481,12 +481,12 @@ var searchData=
481
481
  ['getfuntoentrychisetmap_2474',['getFunToEntryChiSetMap',['../classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198',1,'SVF::MemSSA']]],
482
482
  ['getfuntopointstolist_2475',['getFunToPointsToList',['../classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303',1,'SVF::MRGenerator']]],
483
483
  ['getfuntoretmusetmap_2476',['getFunToRetMuSetMap',['../classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a',1,'SVF::MemSSA']]],
484
- ['getgepbyteoffset_2477',['getGepByteOffset',['../classSVF_1_1SVFIR2ItvExeState.html#a33785e2f4181fe48a4092100386440e7',1,'SVF::SVFIR2ItvExeState']]],
484
+ ['getgepbyteoffset_2477',['getGepByteOffset',['../classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b',1,'SVF::SVFIR2ItvExeState']]],
485
485
  ['getgepinedges_2478',['getGepInEdges',['../classSVF_1_1ConstraintNode.html#ac645cf2114161981cd4465c83cbc31f5',1,'SVF::ConstraintNode']]],
486
- ['getgepobjaddress_2479',['getGepObjAddress',['../classSVF_1_1SVFIR2ConsExeState.html#afc9c3372eb142afdb3eb8956adf53c33',1,'SVF::SVFIR2ConsExeState::getGepObjAddress()'],['../classSVF_1_1SVFIR2ItvExeState.html#a3d135e0c48ec2bbe2fef524405fcb8b0',1,'SVF::SVFIR2ItvExeState::getGepObjAddress()']]],
486
+ ['getgepobjaddress_2479',['getGepObjAddress',['../classSVF_1_1SVFIR2ConsExeState.html#afc9c3372eb142afdb3eb8956adf53c33',1,'SVF::SVFIR2ConsExeState::getGepObjAddress()'],['../classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a',1,'SVF::SVFIR2ItvExeState::getGepObjAddress()']]],
487
487
  ['getgepobjnodemap_2480',['getGepObjNodeMap',['../classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e',1,'SVF::SVFIR']]],
488
488
  ['getgepobjvar_2481',['getGepObjVar',['../classSVF_1_1ConstraintGraph.html#a64c3531053c084bf7195c0900d8902c9',1,'SVF::ConstraintGraph::getGepObjVar()'],['../classSVF_1_1PointerAnalysis.html#aac6ccf3dc313e3c6761bb57316829da8',1,'SVF::PointerAnalysis::getGepObjVar()'],['../classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a',1,'SVF::SVFIR::getGepObjVar(const MemObj *obj, const APOffset &amp;ap)'],['../classSVF_1_1SVFIR.html#a7abc062d05db516ece2805949aa45c46',1,'SVF::SVFIR::getGepObjVar(NodeID id, const APOffset &amp;ap)']]],
489
- ['getgepoffset_2482',['getGepOffset',['../classSVF_1_1SVFIR2ConsExeState.html#ae7720cdcb509ecfccbda141986643684',1,'SVF::SVFIR2ConsExeState::getGepOffset()'],['../classSVF_1_1SVFIR2ItvExeState.html#a6c4dfdb5a6cee8ea3479606b917ef9e9',1,'SVF::SVFIR2ItvExeState::getGepOffset()']]],
489
+ ['getgepoffset_2482',['getGepOffset',['../classSVF_1_1SVFIR2ConsExeState.html#ae7720cdcb509ecfccbda141986643684',1,'SVF::SVFIR2ConsExeState::getGepOffset()'],['../classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b',1,'SVF::SVFIR2ItvExeState::getGepOffset()']]],
490
490
  ['getgepoutedges_2483',['getGepOutEdges',['../classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8',1,'SVF::ConstraintNode']]],
491
491
  ['getgepvalvar_2484',['getGepValVar',['../classSVF_1_1SVFIRBuilder.html#ae4516ec05eabece1bc8e0cad1ec8cf1c',1,'SVF::SVFIRBuilder::getGepValVar()'],['../classSVF_1_1SVFIR.html#ad0977d55d947bdccd98d61c66d3f0cc7',1,'SVF::SVFIR::getGepValVar()']]],
492
492
  ['getglobalicfgnode_2485',['getGlobalICFGNode',['../classSVF_1_1ICFG.html#ae0b05ce161d62362642803158228e5d0',1,'SVF::ICFG']]],
@@ -521,7 +521,7 @@ var searchData=
521
521
  ['getindcallsitesinvokingcallee_2514',['getIndCallSitesInvokingCallee',['../classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d',1,'SVF::PTACallGraph']]],
522
522
  ['getindcscallees_2515',['getIndCSCallees',['../classSVF_1_1PTACallGraph.html#ac106536778c829d6925d6ed2149aeb44',1,'SVF::PTACallGraph::getIndCSCallees()'],['../classSVF_1_1PointerAnalysis.html#ae0efd57376195eacded85d58abee5b46',1,'SVF::PointerAnalysis::getIndCSCallees()']]],
523
523
  ['getindexedtype_2516',['getIndexedType',['../classllvm_1_1generic__bridge__gep__type__iterator.html#acc10ad7ecc64270225cb5e8f52689673',1,'llvm::generic_bridge_gep_type_iterator']]],
524
- ['getindexfromgeptypepair_2517',['getIndexfromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#a841ace0635d388bc1f4d59d6761e4439',1,'SVF::SVFIR2ItvExeState']]],
524
+ ['getindexfromgeptypepair_2517',['getIndexfromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb',1,'SVF::SVFIR2ItvExeState']]],
525
525
  ['getindirectcalls_2518',['getIndirectCalls',['../classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07',1,'SVF::PTACallGraphEdge::getIndirectCalls()'],['../classSVF_1_1PTACallGraphEdge.html#a51dbd8a7b9d0a4602215f71e3fdfee5f',1,'SVF::PTACallGraphEdge::getIndirectCalls() const']]],
526
526
  ['getindirectcallsites_2519',['getIndirectCallsites',['../classSVF_1_1ConstraintGraph.html#a48a71f212e368769218a6f332822c976',1,'SVF::ConstraintGraph::getIndirectCallsites()'],['../classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a',1,'SVF::PointerAnalysis::getIndirectCallsites()'],['../classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0',1,'SVF::SVFIR::getIndirectCallsites()']]],
527
527
  ['getinedges_2520',['getInEdges',['../classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b',1,'SVF::GenericNode']]],
@@ -96,7 +96,7 @@ var searchData=
96
96
  ['getbugset_8129',['getBugSet',['../classSVF_1_1SVFBugReport.html#a7dbf4adc013615567b33b6e293b61c8e',1,'SVF::SVFBugReport']]],
97
97
  ['getbugtype_8130',['getBugType',['../classSVF_1_1GenericBug.html#a693839b33e167cd0688be2e1738198f2',1,'SVF::GenericBug']]],
98
98
  ['getbvpointsto_8131',['getBVPointsTo',['../classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43',1,'SVF::CondPTAImpl']]],
99
- ['getbytefromgeptypepair_8132',['getBytefromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#a26a8068c25c7bea40b311f120d917cbb',1,'SVF::SVFIR2ItvExeState']]],
99
+ ['getbytefromgeptypepair_8132',['getBytefromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#a2f0fe665f2153115be84a143633b6b3b',1,'SVF::SVFIR2ItvExeState']]],
100
100
  ['getcachedadpointsto_8133',['getCachedADPointsTo',['../classSVF_1_1DDAVFSolver.html#a2a2b3783074c9f509fc265b97b979704',1,'SVF::DDAVFSolver']]],
101
101
  ['getcachedpointsto_8134',['getCachedPointsTo',['../classSVF_1_1DDAVFSolver.html#ae31e9281e4f1e0585fdf328b7339e1bf',1,'SVF::DDAVFSolver']]],
102
102
  ['getcachedtlpointsto_8135',['getCachedTLPointsTo',['../classSVF_1_1DDAVFSolver.html#aac432dfa7ccfc3434d9e0e2eb65afe7f',1,'SVF::DDAVFSolver::getCachedTLPointsTo()'],['../classSVF_1_1FlowDDA.html#a950d653b249cfc2d20932adb3498b99b',1,'SVF::FlowDDA::getCachedTLPointsTo()']]],
@@ -344,12 +344,12 @@ var searchData=
344
344
  ['getfuntoentrychisetmap_8377',['getFunToEntryChiSetMap',['../classSVF_1_1MemSSA.html#afd4787df4466c24948d8384e3a756198',1,'SVF::MemSSA']]],
345
345
  ['getfuntopointstolist_8378',['getFunToPointsToList',['../classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303',1,'SVF::MRGenerator']]],
346
346
  ['getfuntoretmusetmap_8379',['getFunToRetMuSetMap',['../classSVF_1_1MemSSA.html#a44cbdb1231c2709c24d19ad2bae2475a',1,'SVF::MemSSA']]],
347
- ['getgepbyteoffset_8380',['getGepByteOffset',['../classSVF_1_1SVFIR2ItvExeState.html#a33785e2f4181fe48a4092100386440e7',1,'SVF::SVFIR2ItvExeState']]],
347
+ ['getgepbyteoffset_8380',['getGepByteOffset',['../classSVF_1_1SVFIR2ItvExeState.html#a24f009ea362c4acf1cfa44d4dd80ef8b',1,'SVF::SVFIR2ItvExeState']]],
348
348
  ['getgepinedges_8381',['getGepInEdges',['../classSVF_1_1ConstraintNode.html#ac645cf2114161981cd4465c83cbc31f5',1,'SVF::ConstraintNode']]],
349
- ['getgepobjaddress_8382',['getGepObjAddress',['../classSVF_1_1SVFIR2ConsExeState.html#afc9c3372eb142afdb3eb8956adf53c33',1,'SVF::SVFIR2ConsExeState::getGepObjAddress()'],['../classSVF_1_1SVFIR2ItvExeState.html#a3d135e0c48ec2bbe2fef524405fcb8b0',1,'SVF::SVFIR2ItvExeState::getGepObjAddress()']]],
349
+ ['getgepobjaddress_8382',['getGepObjAddress',['../classSVF_1_1SVFIR2ConsExeState.html#afc9c3372eb142afdb3eb8956adf53c33',1,'SVF::SVFIR2ConsExeState::getGepObjAddress()'],['../classSVF_1_1SVFIR2ItvExeState.html#a67532bdc1e4a49cf4d9da4b99b38e69a',1,'SVF::SVFIR2ItvExeState::getGepObjAddress()']]],
350
350
  ['getgepobjnodemap_8383',['getGepObjNodeMap',['../classSVF_1_1SVFIR.html#ac1674bd25a17cae24141e6bff24a411e',1,'SVF::SVFIR']]],
351
351
  ['getgepobjvar_8384',['getGepObjVar',['../classSVF_1_1ConstraintGraph.html#a64c3531053c084bf7195c0900d8902c9',1,'SVF::ConstraintGraph::getGepObjVar()'],['../classSVF_1_1PointerAnalysis.html#aac6ccf3dc313e3c6761bb57316829da8',1,'SVF::PointerAnalysis::getGepObjVar()'],['../classSVF_1_1SVFIR.html#ae18425df0631aefca7dd4b799f6f524a',1,'SVF::SVFIR::getGepObjVar(const MemObj *obj, const APOffset &amp;ap)'],['../classSVF_1_1SVFIR.html#a7abc062d05db516ece2805949aa45c46',1,'SVF::SVFIR::getGepObjVar(NodeID id, const APOffset &amp;ap)']]],
352
- ['getgepoffset_8385',['getGepOffset',['../classSVF_1_1SVFIR2ConsExeState.html#ae7720cdcb509ecfccbda141986643684',1,'SVF::SVFIR2ConsExeState::getGepOffset()'],['../classSVF_1_1SVFIR2ItvExeState.html#a6c4dfdb5a6cee8ea3479606b917ef9e9',1,'SVF::SVFIR2ItvExeState::getGepOffset()']]],
352
+ ['getgepoffset_8385',['getGepOffset',['../classSVF_1_1SVFIR2ConsExeState.html#ae7720cdcb509ecfccbda141986643684',1,'SVF::SVFIR2ConsExeState::getGepOffset()'],['../classSVF_1_1SVFIR2ItvExeState.html#afed2852aec6793e1943f97ed39dd8d2b',1,'SVF::SVFIR2ItvExeState::getGepOffset()']]],
353
353
  ['getgepoutedges_8386',['getGepOutEdges',['../classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8',1,'SVF::ConstraintNode']]],
354
354
  ['getgepvalvar_8387',['getGepValVar',['../classSVF_1_1SVFIRBuilder.html#ae4516ec05eabece1bc8e0cad1ec8cf1c',1,'SVF::SVFIRBuilder::getGepValVar()'],['../classSVF_1_1SVFIR.html#ad0977d55d947bdccd98d61c66d3f0cc7',1,'SVF::SVFIR::getGepValVar()']]],
355
355
  ['getglobalicfgnode_8388',['getGlobalICFGNode',['../classSVF_1_1ICFG.html#ae0b05ce161d62362642803158228e5d0',1,'SVF::ICFG']]],
@@ -384,7 +384,7 @@ var searchData=
384
384
  ['getindcallsitesinvokingcallee_8417',['getIndCallSitesInvokingCallee',['../classSVF_1_1PTACallGraph.html#a9a4b0c6672288b9201ab254b4c49548d',1,'SVF::PTACallGraph']]],
385
385
  ['getindcscallees_8418',['getIndCSCallees',['../classSVF_1_1PTACallGraph.html#ac106536778c829d6925d6ed2149aeb44',1,'SVF::PTACallGraph::getIndCSCallees()'],['../classSVF_1_1PointerAnalysis.html#ae0efd57376195eacded85d58abee5b46',1,'SVF::PointerAnalysis::getIndCSCallees()']]],
386
386
  ['getindexedtype_8419',['getIndexedType',['../classllvm_1_1generic__bridge__gep__type__iterator.html#acc10ad7ecc64270225cb5e8f52689673',1,'llvm::generic_bridge_gep_type_iterator']]],
387
- ['getindexfromgeptypepair_8420',['getIndexfromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#a841ace0635d388bc1f4d59d6761e4439',1,'SVF::SVFIR2ItvExeState']]],
387
+ ['getindexfromgeptypepair_8420',['getIndexfromGepTypePair',['../classSVF_1_1SVFIR2ItvExeState.html#aed7fc3951608972b6f8fdce14b4a0cbb',1,'SVF::SVFIR2ItvExeState']]],
388
388
  ['getindirectcalls_8421',['getIndirectCalls',['../classSVF_1_1PTACallGraphEdge.html#a76aa19edf03a4cacfa3e27a21abfcd07',1,'SVF::PTACallGraphEdge::getIndirectCalls()'],['../classSVF_1_1PTACallGraphEdge.html#a51dbd8a7b9d0a4602215f71e3fdfee5f',1,'SVF::PTACallGraphEdge::getIndirectCalls() const']]],
389
389
  ['getindirectcallsites_8422',['getIndirectCallsites',['../classSVF_1_1ConstraintGraph.html#a48a71f212e368769218a6f332822c976',1,'SVF::ConstraintGraph::getIndirectCallsites()'],['../classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a',1,'SVF::PointerAnalysis::getIndirectCallsites()'],['../classSVF_1_1SVFIR.html#a2d2131128ceb3362b5dc89317cfd88a0',1,'SVF::SVFIR::getIndirectCallsites()']]],
390
390
  ['getinedges_8423',['getInEdges',['../classSVF_1_1GenericNode.html#afc8b5f86d7795b6a0dfc0687d942d79b',1,'SVF::GenericNode']]],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.771",
3
+ "version": "1.0.772",
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": {
@@ -71,23 +71,23 @@ public:
71
71
  void narrowVAddrs(IntervalExeState &lhs, const IntervalExeState &rhs);
72
72
 
73
73
  /// Return the field address given a pointer points to a struct object and an offset
74
- VAddrs getGepObjAddress(u32_t pointer, s32_t offset);
74
+ VAddrs getGepObjAddress(u32_t pointer, APOffset offset);
75
75
 
76
76
  /// Return the byte offset from one gep param offset
77
- std::pair<s32_t, s32_t> getBytefromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep, s32_t elem_bytesize);
77
+ std::pair<APOffset, APOffset> getBytefromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep, APOffset elem_bytesize);
78
78
 
79
79
  /// Return the Index offset from one gep param offset
80
- std::pair<s32_t, s32_t> getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep);
80
+ std::pair<APOffset, APOffset> getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep);
81
81
 
82
82
  /// Return the byte offset expression of a GepStmt
83
83
  /// elemBytesize is the element byte size of an static alloc or heap alloc array
84
84
  /// e.g. GepStmt* gep = **,
85
85
  /// s32_t elemBytesize = LLVMUtil::SVFType2ByteSize(gep->getRHSVar()->getValue()->getType());
86
86
  /// std::pair<s32_t, s32_t> byteOffset = getGepByteOffset(gep, elemBytesize);
87
- std::pair<s32_t, s32_t> getGepByteOffset(const GepStmt *gep, s32_t elemBytesize);
87
+ std::pair<APOffset, APOffset> getGepByteOffset(const GepStmt *gep, APOffset elemBytesize);
88
88
 
89
89
  /// Return the offset expression of a GepStmt
90
- std::pair<s32_t, s32_t> getGepOffset(const GepStmt *gep);
90
+ std::pair<APOffset, APOffset> getGepOffset(const GepStmt *gep);
91
91
 
92
92
 
93
93
  static z3::context &getContext()
@@ -152,7 +152,7 @@ void SVFIR2ItvExeState::narrowVAddrs(IntervalExeState &lhs, const IntervalExeSta
152
152
  }
153
153
  }
154
154
 
155
- SVFIR2ItvExeState::VAddrs SVFIR2ItvExeState::getGepObjAddress(u32_t pointer, s32_t offset)
155
+ SVFIR2ItvExeState::VAddrs SVFIR2ItvExeState::getGepObjAddress(u32_t pointer, APOffset offset)
156
156
  {
157
157
  assert(!getVAddrs(pointer).empty());
158
158
  VAddrs &addrs = getVAddrs(pointer);
@@ -173,37 +173,53 @@ SVFIR2ItvExeState::VAddrs SVFIR2ItvExeState::getGepObjAddress(u32_t pointer, s32
173
173
  return ret;
174
174
  }
175
175
 
176
- std::pair<s32_t, s32_t> SVFIR2ItvExeState::getBytefromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep, s32_t elemBytesize)
176
+ std::pair<APOffset, APOffset> SVFIR2ItvExeState::getBytefromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep, APOffset elemBytesize)
177
177
  {
178
178
  const SVFValue *value = gep_pair.first->getValue();
179
179
  const SVFType *type = gep_pair.second;
180
180
  const SVFConstantInt *op = SVFUtil::dyn_cast<SVFConstantInt>(value);
181
- s32_t offsetLb = 0;
182
- s32_t offsetUb = 0;
181
+ APOffset offsetLb = 0;
182
+ APOffset offsetUb = 0;
183
183
  /// set largest byte offset is 0xFFFFFF in case of int32 overflow
184
- s32_t maxFieldLimit = 0xFFFFFF;
184
+ APOffset maxByteLimit = 99999;
185
+ APOffset minByteLimit = -99999;
186
+ auto valueReshape = [&](s64_t offset)
187
+ {
188
+ if (offset < (s64_t)minByteLimit)
189
+ {
190
+ return minByteLimit;
191
+ }
192
+ else if (offset > (s64_t)maxByteLimit)
193
+ {
194
+ return maxByteLimit;
195
+ }
196
+ else
197
+ {
198
+ return offset;
199
+ }
200
+ };
185
201
  /// offset is constant but stored in variable
186
202
  if (op)
187
203
  {
188
- offsetLb = offsetUb = op->getSExtValue() >
189
- maxFieldLimit? maxFieldLimit: op->getSExtValue();
204
+ offsetLb = offsetUb = op->getSExtValue() > maxByteLimit
205
+ ? maxByteLimit
206
+ : op->getSExtValue();
190
207
  }
191
208
  else
192
209
  {
193
210
  u32_t idx = _svfir->getValueNode(value);
194
211
  IntervalValue &idxVal = _es[idx];
195
212
  if (idxVal.isBottom() || idxVal.isTop())
196
- return std::make_pair(0, maxFieldLimit);
213
+ return std::make_pair(0, maxByteLimit);
197
214
  // if idxVal is a concrete value
198
215
  if (idxVal.is_numeral())
199
216
  {
200
- offsetLb = offsetUb = idxVal.lb().getNumeral()>
201
- maxFieldLimit? maxFieldLimit: idxVal.lb().getNumeral();
217
+ offsetLb = offsetUb = valueReshape(idxVal.lb().getNumeral());
202
218
  }
203
219
  else
204
220
  {
205
- offsetLb = idxVal.lb().getNumeral()> maxFieldLimit? maxFieldLimit:idxVal.lb().getNumeral() * elemBytesize ;
206
- offsetUb = idxVal.ub().getNumeral() > maxFieldLimit? maxFieldLimit:idxVal.ub().getNumeral() * elemBytesize;
221
+ offsetLb = valueReshape(idxVal.lb().getNumeral());
222
+ offsetUb = valueReshape(idxVal.ub().getNumeral());
207
223
  }
208
224
  }
209
225
 
@@ -224,19 +240,34 @@ std::pair<s32_t, s32_t> SVFIR2ItvExeState::getBytefromGepTypePair(const AccessPa
224
240
  }
225
241
 
226
242
 
227
- std::pair<s32_t, s32_t> SVFIR2ItvExeState::getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep)
243
+ std::pair<APOffset, APOffset> SVFIR2ItvExeState::getIndexfromGepTypePair(const AccessPath::VarAndGepTypePair& gep_pair, const GepStmt *gep)
228
244
  {
229
245
  const SVFValue *value = gep_pair.first->getValue();
230
246
  const SVFType *type = gep_pair.second;
231
247
  const SVFConstantInt *op = SVFUtil::dyn_cast<SVFConstantInt>(value);
232
- s32_t offsetLb = 0;
233
- s32_t offsetUb = 0;
234
- s32_t maxFieldLimit = (s32_t)Options::MaxFieldLimit();
248
+ APOffset offsetLb = 0;
249
+ APOffset offsetUb = 0;
250
+ APOffset maxFieldLimit = (APOffset)Options::MaxFieldLimit();
251
+ APOffset minFieldLimit = 0;
252
+ auto valueReshape = [&](s64_t offset)
253
+ {
254
+ if (offset < minFieldLimit)
255
+ {
256
+ return minFieldLimit;
257
+ }
258
+ else if (offset > maxFieldLimit)
259
+ {
260
+ return maxFieldLimit;
261
+ }
262
+ else
263
+ {
264
+ return offset;
265
+ }
266
+ };
235
267
  /// offset is constant but stored in variable
236
268
  if (op)
237
269
  {
238
- offsetLb = offsetUb = op->getSExtValue() >
239
- maxFieldLimit? maxFieldLimit: op->getSExtValue();
270
+ offsetLb = offsetUb = valueReshape(op->getSExtValue());
240
271
  }
241
272
  else
242
273
  {
@@ -244,27 +275,16 @@ std::pair<s32_t, s32_t> SVFIR2ItvExeState::getIndexfromGepTypePair(const AccessP
244
275
  //if (!inVarToIValTable(idx)) return std::make_pair(-1, -1);
245
276
  IntervalValue &idxVal = _es[idx];
246
277
  if (idxVal.isBottom() || idxVal.isTop())
247
- return std::make_pair(0, (s32_t)Options::MaxFieldLimit());
278
+ return std::make_pair(0, Options::MaxFieldLimit());
248
279
  // if idxVal is a concrete value
249
280
  if (idxVal.is_numeral())
250
281
  {
251
- offsetLb = offsetUb = idxVal.lb().getNumeral()>
252
- maxFieldLimit? maxFieldLimit: idxVal.lb().getNumeral();
282
+ offsetLb = offsetUb = valueReshape(idxVal.lb().getNumeral());
253
283
  }
254
284
  else
255
285
  {
256
- offsetLb = idxVal.lb().getNumeral() < 0
257
- ? 0
258
- : idxVal.lb().getNumeral();
259
- offsetLb = idxVal.lb().getNumeral() > maxFieldLimit
260
- ? maxFieldLimit
261
- : offsetLb;
262
- offsetUb = idxVal.ub().getNumeral() < 0
263
- ? 0
264
- : idxVal.ub().getNumeral();
265
- offsetUb = idxVal.ub().getNumeral() > maxFieldLimit
266
- ? maxFieldLimit
267
- : offsetUb;
286
+ offsetLb = valueReshape(idxVal.lb().getNumeral());
287
+ offsetUb = valueReshape(idxVal.ub().getNumeral());
268
288
  }
269
289
  }
270
290
 
@@ -280,8 +300,8 @@ std::pair<s32_t, s32_t> SVFIR2ItvExeState::getIndexfromGepTypePair(const AccessP
280
300
  const std::vector<u32_t>& so = SymbolTableInfo::SymbolInfo()
281
301
  ->getTypeInfo(type)
282
302
  ->getFlattenedElemIdxVec();
283
- if (so.empty() || (u32_t)offsetUb >= so.size() ||
284
- (u32_t)offsetLb >= so.size())
303
+ if (so.empty() || offsetUb >= (APOffset)so.size() ||
304
+ offsetLb >= (APOffset)so.size())
285
305
  {
286
306
  offsetLb = 0;
287
307
  offsetUb = maxFieldLimit;
@@ -301,26 +321,26 @@ std::pair<s32_t, s32_t> SVFIR2ItvExeState::getIndexfromGepTypePair(const AccessP
301
321
  }
302
322
 
303
323
 
304
- std::pair<s32_t, s32_t> SVFIR2ItvExeState::getGepByteOffset(const GepStmt *gep, s32_t elemBytesize)
324
+ std::pair<APOffset, APOffset> SVFIR2ItvExeState::getGepByteOffset(const GepStmt *gep, APOffset elemBytesize)
305
325
  {
306
326
  /// for instant constant index, e.g. gep arr, 1
307
327
  if (gep->getOffsetVarAndGepTypePairVec().empty())
308
328
  return std::make_pair(gep->getConstantFieldIdx(), gep->getConstantFieldIdx());
309
- s32_t totalOffsetLb = 0;
310
- s32_t totalOffsetUb = 0;
329
+ APOffset totalOffsetLb = 0;
330
+ APOffset totalOffsetUb = 0;
311
331
  /// default value of MaxFieldLimit is 512
312
- u32_t maxFieldLimit = 0xFFFFFF;
332
+ APOffset maxFieldLimit = 0xFFFFFF;
313
333
  for (int i = gep->getOffsetVarAndGepTypePairVec().size() - 1; i >= 0; i--)
314
334
  {
315
- std::pair<s32_t, s32_t> offsetIdx = getBytefromGepTypePair(
316
- gep->getOffsetVarAndGepTypePairVec()[i], gep, elemBytesize);
317
- s32_t offsetLb = offsetIdx.first;
318
- s32_t offsetUb = offsetIdx.second;
319
- if ((long long) (totalOffsetLb + offsetLb) > maxFieldLimit)
335
+ std::pair<APOffset, APOffset> offsetIdx = getBytefromGepTypePair(
336
+ gep->getOffsetVarAndGepTypePairVec()[i], gep, elemBytesize);
337
+ APOffset offsetLb = offsetIdx.first;
338
+ APOffset offsetUb = offsetIdx.second;
339
+ if (totalOffsetLb + offsetLb > maxFieldLimit)
320
340
  totalOffsetLb = maxFieldLimit;
321
341
  else
322
342
  totalOffsetLb += offsetLb;
323
- if ((long long) (totalOffsetUb + offsetUb) > maxFieldLimit)
343
+ if (totalOffsetUb + offsetUb > maxFieldLimit)
324
344
  totalOffsetUb = maxFieldLimit;
325
345
  else
326
346
  totalOffsetUb += offsetUb ;
@@ -329,21 +349,21 @@ std::pair<s32_t, s32_t> SVFIR2ItvExeState::getGepByteOffset(const GepStmt *gep,
329
349
  }
330
350
 
331
351
 
332
- std::pair<s32_t, s32_t> SVFIR2ItvExeState::getGepOffset(const GepStmt *gep)
352
+ std::pair<APOffset, APOffset> SVFIR2ItvExeState::getGepOffset(const GepStmt *gep)
333
353
  {
334
354
  /// for instant constant index, e.g. gep arr, 1
335
355
  if (gep->getOffsetVarAndGepTypePairVec().empty())
336
356
  return std::make_pair(gep->getConstantFieldIdx(), gep->getConstantFieldIdx());
337
- s32_t totalOffsetLb = 0;
338
- s32_t totalOffsetUb = 0;
357
+ APOffset totalOffsetLb = 0;
358
+ APOffset totalOffsetUb = 0;
339
359
  /// default value of MaxFieldLimit is 512
340
- u32_t maxFieldLimit = Options::MaxFieldLimit() - 1;
360
+ APOffset maxFieldLimit = Options::MaxFieldLimit() - 1;
341
361
  for (int i = gep->getOffsetVarAndGepTypePairVec().size() - 1; i >= 0; i--)
342
362
  {
343
- std::pair<s32_t, s32_t> offsetIdx = getIndexfromGepTypePair(
344
- gep->getOffsetVarAndGepTypePairVec()[i], gep);
345
- s32_t offsetLb = offsetIdx.first;
346
- s32_t offsetUb = offsetIdx.second;
363
+ std::pair<APOffset, APOffset> offsetIdx = getIndexfromGepTypePair(
364
+ gep->getOffsetVarAndGepTypePairVec()[i], gep);
365
+ APOffset offsetLb = offsetIdx.first;
366
+ APOffset offsetUb = offsetIdx.second;
347
367
  if ((long long) (totalOffsetLb + offsetLb) > maxFieldLimit)
348
368
  totalOffsetLb = maxFieldLimit;
349
369
  else
@@ -842,7 +862,7 @@ void SVFIR2ItvExeState::translateGep(const GepStmt *gep)
842
862
  assert(!getVAddrs(rhs).empty());
843
863
  VAddrs &rhsVal = getVAddrs(rhs);
844
864
  if (rhsVal.empty()) return;
845
- std::pair<s32_t, s32_t> offsetPair = getGepOffset(gep);
865
+ std::pair<APOffset, APOffset> offsetPair = getGepOffset(gep);
846
866
  if (offsetPair.first == -1 && offsetPair.second == -1) return;
847
867
  if (!isVirtualMemAddress(*rhsVal.begin()))
848
868
  {
@@ -851,12 +871,12 @@ void SVFIR2ItvExeState::translateGep(const GepStmt *gep)
851
871
  else
852
872
  {
853
873
  VAddrs gepAddrs;
854
- s32_t ub = offsetPair.second;
855
- if (offsetPair.second > (s32_t) Options::MaxFieldLimit() - 1)
874
+ APOffset ub = offsetPair.second;
875
+ if (offsetPair.second > Options::MaxFieldLimit() - 1)
856
876
  {
857
877
  ub = Options::MaxFieldLimit() - 1;
858
878
  }
859
- for (s32_t i = offsetPair.first; i <= ub; i++)
879
+ for (APOffset i = offsetPair.first; i <= ub; i++)
860
880
  {
861
881
  gepAddrs.join_with(getGepObjAddress(rhs, i));
862
882
  }