svf-lib 1.0.2675 → 1.0.2677
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-linux-aarch64/bin/mta +0 -0
- package/SVF-linux-aarch64/bin/svf-ex +0 -0
- package/SVF-linux-aarch64/include/Graphs/CallGraph.h +18 -0
- package/SVF-linux-aarch64/include/Graphs/DOTGraphTraits.h +33 -20
- package/SVF-linux-aarch64/include/Graphs/GraphPrinter.h +1 -1
- package/SVF-linux-aarch64/include/Graphs/GraphWriter.h +6 -7
- package/SVF-linux-aarch64/include/Graphs/ICFG.h +40 -0
- package/SVF-linux-aarch64/include/Graphs/SVFG.h +8 -0
- package/SVF-linux-aarch64/include/Graphs/SlicedGraphs.h +1801 -0
- package/SVF-linux-aarch64/include/Graphs/ThreadCallGraph.h +13 -4
- package/SVF-linux-aarch64/include/MSSA/MemRegion.h +17 -0
- package/SVF-linux-aarch64/include/MSSA/MemSSA.h +7 -5
- package/SVF-linux-aarch64/include/MSSA/SVFGBuilder.h +6 -0
- package/SVF-linux-aarch64/include/MTA/FSMPTA.h +91 -0
- package/SVF-linux-aarch64/include/MTA/LockAnalysis.h +40 -25
- package/SVF-linux-aarch64/include/MTA/MHP.h +54 -21
- package/SVF-linux-aarch64/include/MTA/MTA.h +186 -3
- package/SVF-linux-aarch64/include/MTA/MTASVFGBuilder.h +176 -0
- package/SVF-linux-aarch64/include/MTA/MTASlicer.h +275 -0
- package/SVF-linux-aarch64/include/MTA/MTAStat.h +0 -2
- package/SVF-linux-aarch64/include/MTA/TCT.h +70 -29
- package/SVF-linux-aarch64/include/Util/CommandLine.h +5 -0
- package/SVF-linux-aarch64/include/Util/CxtStmt.h +29 -19
- package/SVF-linux-aarch64/include/Util/Options.h +12 -6
- package/SVF-linux-aarch64/include/Util/ThreadAPI.h +12 -0
- package/SVF-linux-aarch64/lib/cmake/SVF/SVFTargets.cmake +1 -1
- package/SVF-linux-aarch64/lib/libSvfCore.so.3.4 +0 -0
- package/SVF-osx/bin/mta +0 -0
- package/SVF-osx/include/Graphs/CallGraph.h +18 -0
- package/SVF-osx/include/Graphs/DOTGraphTraits.h +33 -20
- package/SVF-osx/include/Graphs/GraphPrinter.h +1 -1
- package/SVF-osx/include/Graphs/GraphWriter.h +6 -7
- package/SVF-osx/include/Graphs/ICFG.h +40 -0
- package/SVF-osx/include/Graphs/SVFG.h +8 -0
- package/SVF-osx/include/Graphs/SlicedGraphs.h +1801 -0
- package/SVF-osx/include/Graphs/ThreadCallGraph.h +13 -4
- package/SVF-osx/include/MSSA/MemRegion.h +17 -0
- package/SVF-osx/include/MSSA/MemSSA.h +7 -5
- package/SVF-osx/include/MSSA/SVFGBuilder.h +6 -0
- package/SVF-osx/include/MTA/FSMPTA.h +91 -0
- package/SVF-osx/include/MTA/LockAnalysis.h +40 -25
- package/SVF-osx/include/MTA/MHP.h +54 -21
- package/SVF-osx/include/MTA/MTA.h +186 -3
- package/SVF-osx/include/MTA/MTASVFGBuilder.h +176 -0
- package/SVF-osx/include/MTA/MTASlicer.h +275 -0
- package/SVF-osx/include/MTA/MTAStat.h +0 -2
- package/SVF-osx/include/MTA/TCT.h +70 -29
- package/SVF-osx/include/Util/CommandLine.h +5 -0
- package/SVF-osx/include/Util/CxtStmt.h +29 -19
- package/SVF-osx/include/Util/Options.h +12 -6
- package/SVF-osx/include/Util/ThreadAPI.h +12 -0
- package/SVF-osx/lib/cmake/SVF/SVFTargets.cmake +1 -1
- package/SVF-osx/lib/libSvfCore.3.4.dylib +0 -0
- package/package.json +1 -1
|
@@ -299,6 +299,46 @@ struct GenericGraphTraits<Inverse<SVF::ICFGNode *> > : public GenericGraphTraits
|
|
|
299
299
|
template<> struct GenericGraphTraits<SVF::ICFG*> : public GenericGraphTraits<SVF::GenericGraph<SVF::ICFGNode,SVF::ICFGEdge>* >
|
|
300
300
|
{
|
|
301
301
|
typedef SVF::ICFGNode *NodeRef;
|
|
302
|
+
|
|
303
|
+
// Graph-intrinsic queries shared with the sliced-view specialisation
|
|
304
|
+
// (GenericGraphTraits<const SlicedICFGView*>), so a graph-parameterised
|
|
305
|
+
// analysis resolves the right behaviour from the graph type alone.
|
|
306
|
+
//@{
|
|
307
|
+
/// Entry node of fun under this graph (whole ICFG: the entry block's front).
|
|
308
|
+
static const SVF::ICFGNode* getFunEntry(SVF::ICFG*, const SVF::FunObjVar* fun)
|
|
309
|
+
{
|
|
310
|
+
return fun->getEntryBlock()->front();
|
|
311
|
+
}
|
|
312
|
+
/// Nodes of fun contained in this graph (whole ICFG: all of them).
|
|
313
|
+
static void getFunICFGNodes(SVF::ICFG*, const SVF::FunObjVar* fun,
|
|
314
|
+
std::vector<const SVF::ICFGNode*>& out)
|
|
315
|
+
{
|
|
316
|
+
out.clear();
|
|
317
|
+
for (auto it : *fun)
|
|
318
|
+
for (const SVF::ICFGNode* n : it.second->getICFGNodeList())
|
|
319
|
+
out.push_back(n);
|
|
320
|
+
}
|
|
321
|
+
/// Successors / predecessors of n under this graph.
|
|
322
|
+
static void getSuccNodes(SVF::ICFG*, const SVF::ICFGNode* n,
|
|
323
|
+
std::vector<const SVF::ICFGNode*>& out)
|
|
324
|
+
{
|
|
325
|
+
out.clear();
|
|
326
|
+
for (const SVF::ICFGEdge* e : n->getOutEdges())
|
|
327
|
+
out.push_back(e->getDstNode());
|
|
328
|
+
}
|
|
329
|
+
static void getPredNodes(SVF::ICFG*, const SVF::ICFGNode* n,
|
|
330
|
+
std::vector<const SVF::ICFGNode*>& out)
|
|
331
|
+
{
|
|
332
|
+
out.clear();
|
|
333
|
+
for (const SVF::ICFGEdge* e : n->getInEdges())
|
|
334
|
+
out.push_back(e->getSrcNode());
|
|
335
|
+
}
|
|
336
|
+
/// Whether n belongs to this graph (whole ICFG contains every node).
|
|
337
|
+
static bool containsNode(SVF::ICFG*, const SVF::ICFGNode*)
|
|
338
|
+
{
|
|
339
|
+
return true;
|
|
340
|
+
}
|
|
341
|
+
//@}
|
|
302
342
|
};
|
|
303
343
|
|
|
304
344
|
} // End namespace llvm
|
|
@@ -500,6 +500,14 @@ namespace SVF
|
|
|
500
500
|
template<> struct GenericGraphTraits<SVF::SVFG*> : public GenericGraphTraits<SVF::GenericGraph<SVF::SVFGNode,SVF::SVFGEdge>* >
|
|
501
501
|
{
|
|
502
502
|
typedef SVF::SVFGNode *NodeRef;
|
|
503
|
+
|
|
504
|
+
/// Whether n belongs to this graph (the whole SVFG contains every node).
|
|
505
|
+
/// Mirrored by GenericGraphTraits<const SlicedSVFGView*>, so a solver
|
|
506
|
+
/// templated on the graph type restricts itself to the graph's nodes.
|
|
507
|
+
static bool containsNode(SVF::SVFG*, const SVF::SVFGNode*)
|
|
508
|
+
{
|
|
509
|
+
return true;
|
|
510
|
+
}
|
|
503
511
|
};
|
|
504
512
|
|
|
505
513
|
} // End namespace llvm
|