svf-tools 1.0.598 → 1.0.600
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/README.md +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +7 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +31 -29
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +37 -36
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +186 -144
- package/SVF-doxygen/html/html/functions_func_u.html +1 -0
- package/SVF-doxygen/html/html/functions_u.html +1 -0
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/include/SVF-LLVM/SVFIRBuilder.h +3 -0
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +32 -0
- package/package.json +1 -1
|
@@ -154,6 +154,7 @@ $(function() {
|
|
|
154
154
|
, <a class="el" href="classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa">SVF::CFLAlias</a>
|
|
155
155
|
, <a class="el" href="classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf">SVF::FlowSensitive</a>
|
|
156
156
|
, <a class="el" href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">SVF::ICFG</a>
|
|
157
|
+
, <a class="el" href="classSVF_1_1SVFIRBuilder.html#a22bd51c6fe770d179867342164ec2767">SVF::SVFIRBuilder</a>
|
|
157
158
|
, <a class="el" href="classSVF_1_1ThreadCallGraph.html#ae25bca6e64ceedc56f1e2f1ae30f89eb">SVF::ThreadCallGraph</a>
|
|
158
159
|
, <a class="el" href="classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b">SVF::VFG</a>
|
|
159
160
|
</li>
|
|
@@ -176,6 +176,7 @@ $(function() {
|
|
|
176
176
|
, <a class="el" href="classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa">SVF::CFLAlias</a>
|
|
177
177
|
, <a class="el" href="classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf">SVF::FlowSensitive</a>
|
|
178
178
|
, <a class="el" href="classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824">SVF::ICFG</a>
|
|
179
|
+
, <a class="el" href="classSVF_1_1SVFIRBuilder.html#a22bd51c6fe770d179867342164ec2767">SVF::SVFIRBuilder</a>
|
|
179
180
|
, <a class="el" href="classSVF_1_1ThreadCallGraph.html#ae25bca6e64ceedc56f1e2f1ae30f89eb">SVF::ThreadCallGraph</a>
|
|
180
181
|
, <a class="el" href="classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b">SVF::VFG</a>
|
|
181
182
|
</li>
|
|
@@ -32,7 +32,7 @@ var searchData=
|
|
|
32
32
|
['updateancestorthreads',['updateAncestorThreads',['../classSVF_1_1MHP.html#ae9423c868ba4d26337428b96db9fc77b',1,'SVF::MHP']]],
|
|
33
33
|
['updateatvpts',['updateATVPts',['../classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52',1,'SVF::DFPTData::updateATVPts()'],['../classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914',1,'SVF::MutableDFPTData::updateATVPts()'],['../classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9',1,'SVF::MutableIncDFPTData::updateATVPts()'],['../classSVF_1_1PersistentDFPTData.html#a6761733754abf061e92125988a684fa3',1,'SVF::PersistentDFPTData::updateATVPts()'],['../classSVF_1_1PersistentIncDFPTData.html#a002e6d234d0ad0c74a0976046e440f71',1,'SVF::PersistentIncDFPTData::updateATVPts()']]],
|
|
34
34
|
['updatecachedpointsto',['updateCachedPointsTo',['../classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56',1,'SVF::DDAVFSolver']]],
|
|
35
|
-
['updatecallgraph',['updateCallGraph',['../classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa',1,'SVF::CFLAlias::updateCallGraph()'],['../classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824',1,'SVF::ICFG::updateCallGraph()'],['../classSVF_1_1ThreadCallGraph.html#ae25bca6e64ceedc56f1e2f1ae30f89eb',1,'SVF::ThreadCallGraph::updateCallGraph()'],['../classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b',1,'SVF::VFG::updateCallGraph()'],['../classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70',1,'SVF::BVDataPTAImpl::updateCallGraph()'],['../classSVF_1_1AndersenBase.html#ac05796a5672ddb5bd0e08924d79da065',1,'SVF::AndersenBase::updateCallGraph()'],['../classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b',1,'SVF::Andersen::updateCallGraph()'],['../classSVF_1_1AndersenSCD.html#a512c636bdaafe6a3ac8f0cc29392c573',1,'SVF::AndersenSCD::updateCallGraph()'],['../classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf',1,'SVF::FlowSensitive::updateCallGraph()']]],
|
|
35
|
+
['updatecallgraph',['updateCallGraph',['../classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa',1,'SVF::CFLAlias::updateCallGraph()'],['../classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824',1,'SVF::ICFG::updateCallGraph()'],['../classSVF_1_1ThreadCallGraph.html#ae25bca6e64ceedc56f1e2f1ae30f89eb',1,'SVF::ThreadCallGraph::updateCallGraph()'],['../classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b',1,'SVF::VFG::updateCallGraph()'],['../classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70',1,'SVF::BVDataPTAImpl::updateCallGraph()'],['../classSVF_1_1SVFIRBuilder.html#a22bd51c6fe770d179867342164ec2767',1,'SVF::SVFIRBuilder::updateCallGraph()'],['../classSVF_1_1AndersenBase.html#ac05796a5672ddb5bd0e08924d79da065',1,'SVF::AndersenBase::updateCallGraph()'],['../classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b',1,'SVF::Andersen::updateCallGraph()'],['../classSVF_1_1AndersenSCD.html#a512c636bdaafe6a3ac8f0cc29392c573',1,'SVF::AndersenSCD::updateCallGraph()'],['../classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf',1,'SVF::FlowSensitive::updateCallGraph()']]],
|
|
36
36
|
['updatecallgraphandsvfg',['updateCallGraphAndSVFG',['../classSVF_1_1ContextDDA.html#a6fb1be7eef65008c7fbab6bdfe186061',1,'SVF::ContextDDA::updateCallGraphAndSVFG()'],['../classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169',1,'SVF::DDAVFSolver::updateCallGraphAndSVFG()'],['../classSVF_1_1FlowDDA.html#ae6257ef91e9d1c5aa95fdf5333c528b0',1,'SVF::FlowDDA::updateCallGraphAndSVFG()']]],
|
|
37
37
|
['updatecallgraphtime',['updateCallGraphTime',['../classSVF_1_1FlowSensitive.html#afc140b6c8e78dc2d962f64fdf53b1e07',1,'SVF::FlowSensitive']]],
|
|
38
38
|
['updateconnectednodes',['updateConnectedNodes',['../classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8',1,'SVF::FlowSensitive::updateConnectedNodes()'],['../classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c',1,'SVF::VersionedFlowSensitive::updateConnectedNodes()']]],
|
|
@@ -19,7 +19,7 @@ var searchData=
|
|
|
19
19
|
['updateancestorthreads',['updateAncestorThreads',['../classSVF_1_1MHP.html#ae9423c868ba4d26337428b96db9fc77b',1,'SVF::MHP']]],
|
|
20
20
|
['updateatvpts',['updateATVPts',['../classSVF_1_1DFPTData.html#a09bc4b7eef592af2c2c84b60029b5b52',1,'SVF::DFPTData::updateATVPts()'],['../classSVF_1_1MutableDFPTData.html#a0ce585790bba942291bb7c7ffcaa3914',1,'SVF::MutableDFPTData::updateATVPts()'],['../classSVF_1_1MutableIncDFPTData.html#aa8fdf0f82d3d94af34d5bc1386ed21f9',1,'SVF::MutableIncDFPTData::updateATVPts()'],['../classSVF_1_1PersistentDFPTData.html#a6761733754abf061e92125988a684fa3',1,'SVF::PersistentDFPTData::updateATVPts()'],['../classSVF_1_1PersistentIncDFPTData.html#a002e6d234d0ad0c74a0976046e440f71',1,'SVF::PersistentIncDFPTData::updateATVPts()']]],
|
|
21
21
|
['updatecachedpointsto',['updateCachedPointsTo',['../classSVF_1_1DDAVFSolver.html#a239a55960dfbbe73df63063070a18b56',1,'SVF::DDAVFSolver']]],
|
|
22
|
-
['updatecallgraph',['updateCallGraph',['../classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa',1,'SVF::CFLAlias::updateCallGraph()'],['../classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824',1,'SVF::ICFG::updateCallGraph()'],['../classSVF_1_1ThreadCallGraph.html#ae25bca6e64ceedc56f1e2f1ae30f89eb',1,'SVF::ThreadCallGraph::updateCallGraph()'],['../classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b',1,'SVF::VFG::updateCallGraph()'],['../classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70',1,'SVF::BVDataPTAImpl::updateCallGraph()'],['../classSVF_1_1AndersenBase.html#ac05796a5672ddb5bd0e08924d79da065',1,'SVF::AndersenBase::updateCallGraph()'],['../classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b',1,'SVF::Andersen::updateCallGraph()'],['../classSVF_1_1AndersenSCD.html#a512c636bdaafe6a3ac8f0cc29392c573',1,'SVF::AndersenSCD::updateCallGraph()'],['../classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf',1,'SVF::FlowSensitive::updateCallGraph()']]],
|
|
22
|
+
['updatecallgraph',['updateCallGraph',['../classSVF_1_1CFLAlias.html#a9637bcb592d250b5556b242d2ffc88fa',1,'SVF::CFLAlias::updateCallGraph()'],['../classSVF_1_1ICFG.html#a5a00682b75726cacc1b4d88bbf40c824',1,'SVF::ICFG::updateCallGraph()'],['../classSVF_1_1ThreadCallGraph.html#ae25bca6e64ceedc56f1e2f1ae30f89eb',1,'SVF::ThreadCallGraph::updateCallGraph()'],['../classSVF_1_1VFG.html#a0c0a7c8f0bd27bc9e88ce54c0809b11b',1,'SVF::VFG::updateCallGraph()'],['../classSVF_1_1BVDataPTAImpl.html#aa534e475fa34fa322c567bc376a3da70',1,'SVF::BVDataPTAImpl::updateCallGraph()'],['../classSVF_1_1SVFIRBuilder.html#a22bd51c6fe770d179867342164ec2767',1,'SVF::SVFIRBuilder::updateCallGraph()'],['../classSVF_1_1AndersenBase.html#ac05796a5672ddb5bd0e08924d79da065',1,'SVF::AndersenBase::updateCallGraph()'],['../classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b',1,'SVF::Andersen::updateCallGraph()'],['../classSVF_1_1AndersenSCD.html#a512c636bdaafe6a3ac8f0cc29392c573',1,'SVF::AndersenSCD::updateCallGraph()'],['../classSVF_1_1FlowSensitive.html#a9d81537ec20196315a9a2541477ec5bf',1,'SVF::FlowSensitive::updateCallGraph()']]],
|
|
23
23
|
['updatecallgraphandsvfg',['updateCallGraphAndSVFG',['../classSVF_1_1ContextDDA.html#a6fb1be7eef65008c7fbab6bdfe186061',1,'SVF::ContextDDA::updateCallGraphAndSVFG()'],['../classSVF_1_1DDAVFSolver.html#a637dddedd96942d56de6fd6d10c09169',1,'SVF::DDAVFSolver::updateCallGraphAndSVFG()'],['../classSVF_1_1FlowDDA.html#ae6257ef91e9d1c5aa95fdf5333c528b0',1,'SVF::FlowDDA::updateCallGraphAndSVFG()']]],
|
|
24
24
|
['updateconnectednodes',['updateConnectedNodes',['../classSVF_1_1FlowSensitive.html#a1886b4964efa92cfff761493d12768b8',1,'SVF::FlowSensitive::updateConnectedNodes()'],['../classSVF_1_1VersionedFlowSensitive.html#a18f24fe34af677e2a8c78ee89b89be1c',1,'SVF::VersionedFlowSensitive::updateConnectedNodes()']]],
|
|
25
25
|
['updatedfinfromin',['updateDFInFromIn',['../classSVF_1_1DFPTData.html#a88cf9cd48ee5c1b8b3c71b379f23ab6b',1,'SVF::DFPTData::updateDFInFromIn()'],['../classSVF_1_1MutableDFPTData.html#ac3ebc5afa531118b2b4446d23e3b8c7a',1,'SVF::MutableDFPTData::updateDFInFromIn()'],['../classSVF_1_1MutableIncDFPTData.html#a775ef6458314a1febef3f7372f6a2bbc',1,'SVF::MutableIncDFPTData::updateDFInFromIn()'],['../classSVF_1_1PersistentDFPTData.html#a9b61c0557c6b1460af2328709011b32e',1,'SVF::PersistentDFPTData::updateDFInFromIn()'],['../classSVF_1_1PersistentIncDFPTData.html#a5b015e6801e4320e45e7942f9db82a42',1,'SVF::PersistentIncDFPTData::updateDFInFromIn()']]],
|
|
@@ -1512,6 +1512,38 @@ void SVFIRBuilder::handleIndCall(CallBase* cs)
|
|
|
1512
1512
|
pag->addIndirectCallsites(cbn,pag->getValueNode(svfcalledval));
|
|
1513
1513
|
}
|
|
1514
1514
|
|
|
1515
|
+
void SVFIRBuilder::updateCallGraph(PTACallGraph* callgraph)
|
|
1516
|
+
{
|
|
1517
|
+
PTACallGraph::CallEdgeMap::const_iterator iter = callgraph->getIndCallMap().begin();
|
|
1518
|
+
PTACallGraph::CallEdgeMap::const_iterator eiter = callgraph->getIndCallMap().end();
|
|
1519
|
+
for (; iter != eiter; iter++)
|
|
1520
|
+
{
|
|
1521
|
+
const CallICFGNode* callBlock = iter->first;
|
|
1522
|
+
const CallBase* callbase = SVFUtil::cast<CallBase>(LLVMModuleSet::getLLVMModuleSet()->getLLVMValue(callBlock->getCallSite()));
|
|
1523
|
+
assert(callBlock->isIndirectCall() && "this is not an indirect call?");
|
|
1524
|
+
const PTACallGraph::FunctionSet& functions = iter->second;
|
|
1525
|
+
for (PTACallGraph::FunctionSet::const_iterator func_iter = functions.begin(); func_iter != functions.end(); func_iter++)
|
|
1526
|
+
{
|
|
1527
|
+
const Function* callee = SVFUtil::cast<Function>(LLVMModuleSet::getLLVMModuleSet()->getLLVMValue(*func_iter));
|
|
1528
|
+
|
|
1529
|
+
if (isExtCall(*func_iter))
|
|
1530
|
+
{
|
|
1531
|
+
setCurrentLocation(callee, &callee->getEntryBlock());
|
|
1532
|
+
handleExtCall(const_cast<CallBase*>(callbase), callee);
|
|
1533
|
+
}
|
|
1534
|
+
else
|
|
1535
|
+
{
|
|
1536
|
+
setCurrentLocation(callBlock->getCallSite(), callBlock->getCallSite()->getParent());
|
|
1537
|
+
handleDirectCall(const_cast<CallBase*>(callbase), callee);
|
|
1538
|
+
}
|
|
1539
|
+
}
|
|
1540
|
+
}
|
|
1541
|
+
|
|
1542
|
+
// dump SVFIR
|
|
1543
|
+
if (Options::PAGDotGraph)
|
|
1544
|
+
pag->dump("svfir_final");
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1515
1547
|
/*
|
|
1516
1548
|
* TODO: more sanity checks might be needed here
|
|
1517
1549
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.600",
|
|
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": {
|