svf-lib 1.0.2662 → 1.0.2664
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/svf-ex +0 -0
- package/SVF-linux-aarch64/include/SVFIR/SVFIR.h +0 -11
- package/SVF-linux-aarch64/include/SVFIR/SVFValue.h +4 -6
- package/SVF-linux-aarch64/include/SVFIR/SVFVariables.h +0 -107
- package/SVF-linux-aarch64/lib/libSvfCore.so.3.4 +0 -0
- package/SVF-linux-aarch64/lib/libSvfLLVM.so.3.4 +0 -0
- package/SVF-linux-x86_64/lib/cmake/SVF/SVFTargets.cmake +1 -1
- package/package.json +1 -1
- package/SVF-linux-x86_64/include/Util/Annotator.h +0 -180
|
Binary file
|
|
@@ -707,12 +707,6 @@ private:
|
|
|
707
707
|
return addNode(node);
|
|
708
708
|
}
|
|
709
709
|
|
|
710
|
-
inline NodeID addConstantAggValNode(const NodeID i, const ICFGNode* icfgNode, const SVFType* svfType)
|
|
711
|
-
{
|
|
712
|
-
SVFVar* node = new ConstAggValVar(i, icfgNode, svfType);
|
|
713
|
-
return addNode(node);
|
|
714
|
-
}
|
|
715
|
-
|
|
716
710
|
inline NodeID addConstantDataValNode(const NodeID i, const ICFGNode* icfgNode, const SVFType* type)
|
|
717
711
|
{
|
|
718
712
|
SVFVar* node = new ConstDataValVar(i, icfgNode, type);
|
|
@@ -777,11 +771,6 @@ private:
|
|
|
777
771
|
GlobalObjVar* gObj = new GlobalObjVar(i, ti, node);
|
|
778
772
|
return addBaseObjNode(gObj);
|
|
779
773
|
}
|
|
780
|
-
inline NodeID addConstantAggObjNode(const NodeID i, ObjTypeInfo* ti, const ICFGNode* node)
|
|
781
|
-
{
|
|
782
|
-
ConstAggObjVar* conObj = new ConstAggObjVar(i, ti, node);
|
|
783
|
-
return addBaseObjNode(conObj);
|
|
784
|
-
}
|
|
785
774
|
inline NodeID addConstantDataObjNode(const NodeID i, ObjTypeInfo* ti, const ICFGNode* node)
|
|
786
775
|
{
|
|
787
776
|
ConstDataObjVar* conObj = new ConstDataObjVar(i, ti, node);
|
|
@@ -70,7 +70,6 @@ public:
|
|
|
70
70
|
RetValNode, // ├── Represents a return value node
|
|
71
71
|
VarargValNode, // ├── Represents a variadic argument node
|
|
72
72
|
GlobalValNode, // ├── Represents a global variable node
|
|
73
|
-
ConstAggValNode, // ├── Represents a constant aggregate value node
|
|
74
73
|
// │ └─ Subclass: ConstDataValVar
|
|
75
74
|
ConstDataValNode, // │ ├── Represents a constant data variable
|
|
76
75
|
BlackHoleValNode, // │ ├── Represents a black hole node
|
|
@@ -92,7 +91,6 @@ public:
|
|
|
92
91
|
HeapObjNode, // │ ├── Represents a heap object
|
|
93
92
|
StackObjNode, // │ ├── Represents a stack object
|
|
94
93
|
GlobalObjNode, // │ ├── Represents a global object
|
|
95
|
-
ConstAggObjNode, // │ ├── Represents a constant aggregate object
|
|
96
94
|
// │ └─ Subclass: ConstDataObjVar
|
|
97
95
|
ConstDataObjNode, // │ ├── Represents a constant data object
|
|
98
96
|
ConstFPObjNode, // │ ├── Represents a constant floating-point object
|
|
@@ -230,7 +228,7 @@ protected:
|
|
|
230
228
|
|
|
231
229
|
static inline bool isSVFVarKind(GNodeK n)
|
|
232
230
|
{
|
|
233
|
-
static_assert(DummyObjNode - ValNode ==
|
|
231
|
+
static_assert(DummyObjNode - ValNode == 26,
|
|
234
232
|
"The number of SVFVarKinds has changed, make sure the "
|
|
235
233
|
"range is correct");
|
|
236
234
|
|
|
@@ -239,7 +237,7 @@ protected:
|
|
|
239
237
|
|
|
240
238
|
static inline bool isValVarKinds(GNodeK n)
|
|
241
239
|
{
|
|
242
|
-
static_assert(AsmPCValNode - ValNode ==
|
|
240
|
+
static_assert(AsmPCValNode - ValNode == 14,
|
|
243
241
|
"The number of ValVarKinds has changed, make sure the "
|
|
244
242
|
"range is correct");
|
|
245
243
|
return n <= AsmPCValNode && n >= ValNode;
|
|
@@ -256,7 +254,7 @@ protected:
|
|
|
256
254
|
|
|
257
255
|
static inline bool isObjVarKinds(GNodeK n)
|
|
258
256
|
{
|
|
259
|
-
static_assert(DummyObjNode - ObjNode ==
|
|
257
|
+
static_assert(DummyObjNode - ObjNode == 11,
|
|
260
258
|
"The number of ObjVarKinds has changed, make sure the "
|
|
261
259
|
"range is correct");
|
|
262
260
|
return n <= DummyObjNode && n >= ObjNode;
|
|
@@ -264,7 +262,7 @@ protected:
|
|
|
264
262
|
|
|
265
263
|
static inline bool isBaseObjVarKinds(GNodeK n)
|
|
266
264
|
{
|
|
267
|
-
static_assert(DummyObjNode - BaseObjNode ==
|
|
265
|
+
static_assert(DummyObjNode - BaseObjNode == 9,
|
|
268
266
|
"The number of BaseObjVarKinds has changed, make sure the "
|
|
269
267
|
"range is correct");
|
|
270
268
|
return n <= DummyObjNode && n >= BaseObjNode;
|
|
@@ -1367,58 +1367,6 @@ public:
|
|
|
1367
1367
|
virtual const std::string toString() const;
|
|
1368
1368
|
};
|
|
1369
1369
|
|
|
1370
|
-
class ConstAggValVar: public ValVar
|
|
1371
|
-
{
|
|
1372
|
-
friend class GraphDBClient;
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
public:
|
|
1376
|
-
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
1377
|
-
//@{
|
|
1378
|
-
static inline bool classof(const ConstAggValVar*)
|
|
1379
|
-
{
|
|
1380
|
-
return true;
|
|
1381
|
-
}
|
|
1382
|
-
static inline bool classof(const ValVar* node)
|
|
1383
|
-
{
|
|
1384
|
-
return node->getNodeKind() == ConstAggValNode;
|
|
1385
|
-
}
|
|
1386
|
-
static inline bool classof(const SVFVar* node)
|
|
1387
|
-
{
|
|
1388
|
-
return node->getNodeKind() == ConstAggValNode;
|
|
1389
|
-
}
|
|
1390
|
-
static inline bool classof(const GenericPAGNodeTy* node)
|
|
1391
|
-
{
|
|
1392
|
-
return node->getNodeKind() == ConstAggValNode;
|
|
1393
|
-
}
|
|
1394
|
-
static inline bool classof(const SVFValue* node)
|
|
1395
|
-
{
|
|
1396
|
-
return node->getNodeKind() == ConstAggValNode;
|
|
1397
|
-
}
|
|
1398
|
-
//@}
|
|
1399
|
-
|
|
1400
|
-
/// Constructor
|
|
1401
|
-
ConstAggValVar(NodeID i, const ICFGNode* icn, const SVFType* svfTy)
|
|
1402
|
-
: ValVar(i, svfTy, icn, ConstAggValNode)
|
|
1403
|
-
{
|
|
1404
|
-
type = svfTy;
|
|
1405
|
-
}
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
virtual bool isConstDataOrAggData() const
|
|
1409
|
-
{
|
|
1410
|
-
return true;
|
|
1411
|
-
}
|
|
1412
|
-
|
|
1413
|
-
virtual bool isConstDataOrAggDataButNotNullPtr() const
|
|
1414
|
-
{
|
|
1415
|
-
return true;
|
|
1416
|
-
}
|
|
1417
|
-
|
|
1418
|
-
virtual const std::string toString() const;
|
|
1419
|
-
};
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
1370
|
class ConstDataValVar : public ValVar
|
|
1423
1371
|
{
|
|
1424
1372
|
friend class GraphDBClient;
|
|
@@ -1725,61 +1673,6 @@ public:
|
|
|
1725
1673
|
virtual const std::string toString() const;
|
|
1726
1674
|
};
|
|
1727
1675
|
|
|
1728
|
-
class ConstAggObjVar : public BaseObjVar
|
|
1729
|
-
{
|
|
1730
|
-
friend class GraphDBClient;
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
public:
|
|
1734
|
-
/// Methods for support type inquiry through isa, cast, and dyn_cast:
|
|
1735
|
-
//@{
|
|
1736
|
-
static inline bool classof(const ConstAggObjVar*)
|
|
1737
|
-
{
|
|
1738
|
-
return true;
|
|
1739
|
-
}
|
|
1740
|
-
static inline bool classof(const BaseObjVar* node)
|
|
1741
|
-
{
|
|
1742
|
-
return node->getNodeKind() == ConstAggObjNode;
|
|
1743
|
-
}
|
|
1744
|
-
|
|
1745
|
-
static inline bool classof(const ObjVar* node)
|
|
1746
|
-
{
|
|
1747
|
-
return node->getNodeKind() == ConstAggObjNode;
|
|
1748
|
-
}
|
|
1749
|
-
static inline bool classof(const SVFVar* node)
|
|
1750
|
-
{
|
|
1751
|
-
return node->getNodeKind() == ConstAggObjNode;
|
|
1752
|
-
}
|
|
1753
|
-
static inline bool classof(const GenericPAGNodeTy* node)
|
|
1754
|
-
{
|
|
1755
|
-
return node->getNodeKind() == ConstAggObjNode;
|
|
1756
|
-
}
|
|
1757
|
-
static inline bool classof(const SVFValue* node)
|
|
1758
|
-
{
|
|
1759
|
-
return node->getNodeKind() == ConstAggObjNode;
|
|
1760
|
-
}
|
|
1761
|
-
//@}
|
|
1762
|
-
|
|
1763
|
-
/// Constructor
|
|
1764
|
-
ConstAggObjVar(NodeID i, ObjTypeInfo* ti, const ICFGNode* node)
|
|
1765
|
-
: BaseObjVar(i, ti, node, ConstAggObjNode)
|
|
1766
|
-
{
|
|
1767
|
-
|
|
1768
|
-
}
|
|
1769
|
-
|
|
1770
|
-
virtual bool isConstDataOrAggData() const
|
|
1771
|
-
{
|
|
1772
|
-
return true;
|
|
1773
|
-
}
|
|
1774
|
-
|
|
1775
|
-
virtual bool isConstDataOrAggDataButNotNullPtr() const
|
|
1776
|
-
{
|
|
1777
|
-
return true;
|
|
1778
|
-
}
|
|
1779
|
-
|
|
1780
|
-
virtual const std::string toString() const;
|
|
1781
|
-
};
|
|
1782
|
-
|
|
1783
1676
|
class ConstDataObjVar : public BaseObjVar
|
|
1784
1677
|
{
|
|
1785
1678
|
friend class GraphDBClient;
|
|
Binary file
|
|
Binary file
|
|
@@ -81,7 +81,7 @@ if(NOT CMAKE_VERSION VERSION_LESS "3.23.0")
|
|
|
81
81
|
FILE_SET "HEADERS"
|
|
82
82
|
TYPE "HEADERS"
|
|
83
83
|
BASE_DIRS "${_IMPORT_PREFIX}/include"
|
|
84
|
-
FILES "${_IMPORT_PREFIX}/include/AE/Core/AbstractState.h" "${_IMPORT_PREFIX}/include/AE/Core/AbstractValue.h" "${_IMPORT_PREFIX}/include/AE/Core/AddressValue.h" "${_IMPORT_PREFIX}/include/AE/Core/ICFGWTO.h" "${_IMPORT_PREFIX}/include/AE/Core/IntervalValue.h" "${_IMPORT_PREFIX}/include/AE/Core/NumericValue.h" "${_IMPORT_PREFIX}/include/AE/Core/RelExeState.h" "${_IMPORT_PREFIX}/include/AE/Core/RelationSolver.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AEDetector.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AEStat.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AEWTO.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AbsExtAPI.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AbstractInterpretation.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/SparseAbstractInterpretation.h" "${_IMPORT_PREFIX}/include/CFL/CFGNormalizer.h" "${_IMPORT_PREFIX}/include/CFL/CFGrammar.h" "${_IMPORT_PREFIX}/include/CFL/CFLAlias.h" "${_IMPORT_PREFIX}/include/CFL/CFLBase.h" "${_IMPORT_PREFIX}/include/CFL/CFLGramGraphChecker.h" "${_IMPORT_PREFIX}/include/CFL/CFLGraphBuilder.h" "${_IMPORT_PREFIX}/include/CFL/CFLSVFGBuilder.h" "${_IMPORT_PREFIX}/include/CFL/CFLSolver.h" "${_IMPORT_PREFIX}/include/CFL/CFLStat.h" "${_IMPORT_PREFIX}/include/CFL/CFLVF.h" "${_IMPORT_PREFIX}/include/CFL/GrammarBuilder.h" "${_IMPORT_PREFIX}/include/DDA/ContextDDA.h" "${_IMPORT_PREFIX}/include/DDA/DDAClient.h" "${_IMPORT_PREFIX}/include/DDA/DDAPass.h" "${_IMPORT_PREFIX}/include/DDA/DDAStat.h" "${_IMPORT_PREFIX}/include/DDA/DDAVFSolver.h" "${_IMPORT_PREFIX}/include/DDA/FlowDDA.h" "${_IMPORT_PREFIX}/include/FastCluster/fastcluster.h" "${_IMPORT_PREFIX}/include/Graphs/BasicBlockG.h" "${_IMPORT_PREFIX}/include/Graphs/CDG.h" "${_IMPORT_PREFIX}/include/Graphs/CFLGraph.h" "${_IMPORT_PREFIX}/include/Graphs/CHG.h" "${_IMPORT_PREFIX}/include/Graphs/CallGraph.h" "${_IMPORT_PREFIX}/include/Graphs/ConsG.h" "${_IMPORT_PREFIX}/include/Graphs/ConsGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/ConsGNode.h" "${_IMPORT_PREFIX}/include/Graphs/DOTGraphTraits.h" "${_IMPORT_PREFIX}/include/Graphs/GenericGraph.h" "${_IMPORT_PREFIX}/include/Graphs/GraphPrinter.h" "${_IMPORT_PREFIX}/include/Graphs/GraphTraits.h" "${_IMPORT_PREFIX}/include/Graphs/GraphWriter.h" "${_IMPORT_PREFIX}/include/Graphs/ICFG.h" "${_IMPORT_PREFIX}/include/Graphs/ICFGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/ICFGNode.h" "${_IMPORT_PREFIX}/include/Graphs/ICFGStat.h" "${_IMPORT_PREFIX}/include/Graphs/IRGraph.h" "${_IMPORT_PREFIX}/include/Graphs/SCC.h" "${_IMPORT_PREFIX}/include/Graphs/SVFG.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGNode.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGOPT.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGStat.h" "${_IMPORT_PREFIX}/include/Graphs/ThreadCallGraph.h" "${_IMPORT_PREFIX}/include/Graphs/VFG.h" "${_IMPORT_PREFIX}/include/Graphs/VFGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/VFGNode.h" "${_IMPORT_PREFIX}/include/Graphs/WTO.h" "${_IMPORT_PREFIX}/include/MSSA/MSSAMuChi.h" "${_IMPORT_PREFIX}/include/MSSA/MemPartition.h" "${_IMPORT_PREFIX}/include/MSSA/MemRegion.h" "${_IMPORT_PREFIX}/include/MSSA/MemSSA.h" "${_IMPORT_PREFIX}/include/MSSA/SVFGBuilder.h" "${_IMPORT_PREFIX}/include/MTA/LockAnalysis.h" "${_IMPORT_PREFIX}/include/MTA/MHP.h" "${_IMPORT_PREFIX}/include/MTA/MTA.h" "${_IMPORT_PREFIX}/include/MTA/MTAStat.h" "${_IMPORT_PREFIX}/include/MTA/TCT.h" "${_IMPORT_PREFIX}/include/MemoryModel/AbstractPointsToDS.h" "${_IMPORT_PREFIX}/include/MemoryModel/AccessPath.h" "${_IMPORT_PREFIX}/include/MemoryModel/ConditionalPT.h" "${_IMPORT_PREFIX}/include/MemoryModel/MutablePointsToDS.h" "${_IMPORT_PREFIX}/include/MemoryModel/PTATY.h" "${_IMPORT_PREFIX}/include/MemoryModel/PersistentPointsToCache.h" "${_IMPORT_PREFIX}/include/MemoryModel/PersistentPointsToDS.h" "${_IMPORT_PREFIX}/include/MemoryModel/PointerAnalysis.h" "${_IMPORT_PREFIX}/include/MemoryModel/PointerAnalysisImpl.h" "${_IMPORT_PREFIX}/include/MemoryModel/PointsTo.h" "${_IMPORT_PREFIX}/include/MemoryModel/SVFLoop.h" "${_IMPORT_PREFIX}/include/SABER/DoubleFreeChecker.h" "${_IMPORT_PREFIX}/include/SABER/FileChecker.h" "${_IMPORT_PREFIX}/include/SABER/LeakChecker.h" "${_IMPORT_PREFIX}/include/SABER/ProgSlice.h" "${_IMPORT_PREFIX}/include/SABER/SaberCheckerAPI.h" "${_IMPORT_PREFIX}/include/SABER/SaberCondAllocator.h" "${_IMPORT_PREFIX}/include/SABER/SaberSVFGBuilder.h" "${_IMPORT_PREFIX}/include/SABER/SrcSnkDDA.h" "${_IMPORT_PREFIX}/include/SABER/SrcSnkSolver.h" "${_IMPORT_PREFIX}/include/SVFIR/ObjTypeInfo.h" "${_IMPORT_PREFIX}/include/SVFIR/PAGBuilderFromFile.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFIR.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFStatements.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFType.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFValue.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFVariables.h" "${_IMPORT_PREFIX}/include/Util/
|
|
84
|
+
FILES "${_IMPORT_PREFIX}/include/AE/Core/AbstractState.h" "${_IMPORT_PREFIX}/include/AE/Core/AbstractValue.h" "${_IMPORT_PREFIX}/include/AE/Core/AddressValue.h" "${_IMPORT_PREFIX}/include/AE/Core/ICFGWTO.h" "${_IMPORT_PREFIX}/include/AE/Core/IntervalValue.h" "${_IMPORT_PREFIX}/include/AE/Core/NumericValue.h" "${_IMPORT_PREFIX}/include/AE/Core/RelExeState.h" "${_IMPORT_PREFIX}/include/AE/Core/RelationSolver.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AEDetector.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AEStat.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AEWTO.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AbsExtAPI.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/AbstractInterpretation.h" "${_IMPORT_PREFIX}/include/AE/Svfexe/SparseAbstractInterpretation.h" "${_IMPORT_PREFIX}/include/CFL/CFGNormalizer.h" "${_IMPORT_PREFIX}/include/CFL/CFGrammar.h" "${_IMPORT_PREFIX}/include/CFL/CFLAlias.h" "${_IMPORT_PREFIX}/include/CFL/CFLBase.h" "${_IMPORT_PREFIX}/include/CFL/CFLGramGraphChecker.h" "${_IMPORT_PREFIX}/include/CFL/CFLGraphBuilder.h" "${_IMPORT_PREFIX}/include/CFL/CFLSVFGBuilder.h" "${_IMPORT_PREFIX}/include/CFL/CFLSolver.h" "${_IMPORT_PREFIX}/include/CFL/CFLStat.h" "${_IMPORT_PREFIX}/include/CFL/CFLVF.h" "${_IMPORT_PREFIX}/include/CFL/GrammarBuilder.h" "${_IMPORT_PREFIX}/include/DDA/ContextDDA.h" "${_IMPORT_PREFIX}/include/DDA/DDAClient.h" "${_IMPORT_PREFIX}/include/DDA/DDAPass.h" "${_IMPORT_PREFIX}/include/DDA/DDAStat.h" "${_IMPORT_PREFIX}/include/DDA/DDAVFSolver.h" "${_IMPORT_PREFIX}/include/DDA/FlowDDA.h" "${_IMPORT_PREFIX}/include/FastCluster/fastcluster.h" "${_IMPORT_PREFIX}/include/Graphs/BasicBlockG.h" "${_IMPORT_PREFIX}/include/Graphs/CDG.h" "${_IMPORT_PREFIX}/include/Graphs/CFLGraph.h" "${_IMPORT_PREFIX}/include/Graphs/CHG.h" "${_IMPORT_PREFIX}/include/Graphs/CallGraph.h" "${_IMPORT_PREFIX}/include/Graphs/ConsG.h" "${_IMPORT_PREFIX}/include/Graphs/ConsGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/ConsGNode.h" "${_IMPORT_PREFIX}/include/Graphs/DOTGraphTraits.h" "${_IMPORT_PREFIX}/include/Graphs/GenericGraph.h" "${_IMPORT_PREFIX}/include/Graphs/GraphPrinter.h" "${_IMPORT_PREFIX}/include/Graphs/GraphTraits.h" "${_IMPORT_PREFIX}/include/Graphs/GraphWriter.h" "${_IMPORT_PREFIX}/include/Graphs/ICFG.h" "${_IMPORT_PREFIX}/include/Graphs/ICFGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/ICFGNode.h" "${_IMPORT_PREFIX}/include/Graphs/ICFGStat.h" "${_IMPORT_PREFIX}/include/Graphs/IRGraph.h" "${_IMPORT_PREFIX}/include/Graphs/SCC.h" "${_IMPORT_PREFIX}/include/Graphs/SVFG.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGNode.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGOPT.h" "${_IMPORT_PREFIX}/include/Graphs/SVFGStat.h" "${_IMPORT_PREFIX}/include/Graphs/ThreadCallGraph.h" "${_IMPORT_PREFIX}/include/Graphs/VFG.h" "${_IMPORT_PREFIX}/include/Graphs/VFGEdge.h" "${_IMPORT_PREFIX}/include/Graphs/VFGNode.h" "${_IMPORT_PREFIX}/include/Graphs/WTO.h" "${_IMPORT_PREFIX}/include/MSSA/MSSAMuChi.h" "${_IMPORT_PREFIX}/include/MSSA/MemPartition.h" "${_IMPORT_PREFIX}/include/MSSA/MemRegion.h" "${_IMPORT_PREFIX}/include/MSSA/MemSSA.h" "${_IMPORT_PREFIX}/include/MSSA/SVFGBuilder.h" "${_IMPORT_PREFIX}/include/MTA/LockAnalysis.h" "${_IMPORT_PREFIX}/include/MTA/MHP.h" "${_IMPORT_PREFIX}/include/MTA/MTA.h" "${_IMPORT_PREFIX}/include/MTA/MTAStat.h" "${_IMPORT_PREFIX}/include/MTA/TCT.h" "${_IMPORT_PREFIX}/include/MemoryModel/AbstractPointsToDS.h" "${_IMPORT_PREFIX}/include/MemoryModel/AccessPath.h" "${_IMPORT_PREFIX}/include/MemoryModel/ConditionalPT.h" "${_IMPORT_PREFIX}/include/MemoryModel/MutablePointsToDS.h" "${_IMPORT_PREFIX}/include/MemoryModel/PTATY.h" "${_IMPORT_PREFIX}/include/MemoryModel/PersistentPointsToCache.h" "${_IMPORT_PREFIX}/include/MemoryModel/PersistentPointsToDS.h" "${_IMPORT_PREFIX}/include/MemoryModel/PointerAnalysis.h" "${_IMPORT_PREFIX}/include/MemoryModel/PointerAnalysisImpl.h" "${_IMPORT_PREFIX}/include/MemoryModel/PointsTo.h" "${_IMPORT_PREFIX}/include/MemoryModel/SVFLoop.h" "${_IMPORT_PREFIX}/include/SABER/DoubleFreeChecker.h" "${_IMPORT_PREFIX}/include/SABER/FileChecker.h" "${_IMPORT_PREFIX}/include/SABER/LeakChecker.h" "${_IMPORT_PREFIX}/include/SABER/ProgSlice.h" "${_IMPORT_PREFIX}/include/SABER/SaberCheckerAPI.h" "${_IMPORT_PREFIX}/include/SABER/SaberCondAllocator.h" "${_IMPORT_PREFIX}/include/SABER/SaberSVFGBuilder.h" "${_IMPORT_PREFIX}/include/SABER/SrcSnkDDA.h" "${_IMPORT_PREFIX}/include/SABER/SrcSnkSolver.h" "${_IMPORT_PREFIX}/include/SVFIR/ObjTypeInfo.h" "${_IMPORT_PREFIX}/include/SVFIR/PAGBuilderFromFile.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFIR.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFStatements.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFType.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFValue.h" "${_IMPORT_PREFIX}/include/SVFIR/SVFVariables.h" "${_IMPORT_PREFIX}/include/Util/BitVector.h" "${_IMPORT_PREFIX}/include/Util/CDGBuilder.h" "${_IMPORT_PREFIX}/include/Util/CallGraphBuilder.h" "${_IMPORT_PREFIX}/include/Util/Casting.h" "${_IMPORT_PREFIX}/include/Util/CommandLine.h" "${_IMPORT_PREFIX}/include/Util/CoreBitVector.h" "${_IMPORT_PREFIX}/include/Util/CxtStmt.h" "${_IMPORT_PREFIX}/include/Util/DPItem.h" "${_IMPORT_PREFIX}/include/Util/ExtAPI.h" "${_IMPORT_PREFIX}/include/Util/GeneralType.h" "${_IMPORT_PREFIX}/include/Util/GraphReachSolver.h" "${_IMPORT_PREFIX}/include/Util/Hash.h" "${_IMPORT_PREFIX}/include/Util/NodeIDAllocator.h" "${_IMPORT_PREFIX}/include/Util/Options.h" "${_IMPORT_PREFIX}/include/Util/PTAStat.h" "${_IMPORT_PREFIX}/include/Util/SVFBugReport.h" "${_IMPORT_PREFIX}/include/Util/SVFLoopAndDomInfo.h" "${_IMPORT_PREFIX}/include/Util/SVFStat.h" "${_IMPORT_PREFIX}/include/Util/SVFUtil.h" "${_IMPORT_PREFIX}/include/Util/SparseBitVector.h" "${_IMPORT_PREFIX}/include/Util/ThreadAPI.h" "${_IMPORT_PREFIX}/include/Util/WorkList.h" "${_IMPORT_PREFIX}/include/Util/Z3Expr.h" "${_IMPORT_PREFIX}/include/Util/cJSON.h" "${_IMPORT_PREFIX}/include/Util/iterator.h" "${_IMPORT_PREFIX}/include/Util/iterator_range.h" "${_IMPORT_PREFIX}/include/WPA/Andersen.h" "${_IMPORT_PREFIX}/include/WPA/AndersenPWC.h" "${_IMPORT_PREFIX}/include/WPA/CSC.h" "${_IMPORT_PREFIX}/include/WPA/FlowSensitive.h" "${_IMPORT_PREFIX}/include/WPA/Steensgaard.h" "${_IMPORT_PREFIX}/include/WPA/TypeAnalysis.h" "${_IMPORT_PREFIX}/include/WPA/VersionedFlowSensitive.h" "${_IMPORT_PREFIX}/include/WPA/WPAFSSolver.h" "${_IMPORT_PREFIX}/include/WPA/WPAPass.h" "${_IMPORT_PREFIX}/include/WPA/WPASolver.h" "${_IMPORT_PREFIX}/include/WPA/WPAStat.h"
|
|
85
85
|
)
|
|
86
86
|
else()
|
|
87
87
|
set_property(TARGET SVF::SvfCore
|
package/package.json
CHANGED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Annotator.h
|
|
3
|
-
*
|
|
4
|
-
* Created on: May 4, 2014
|
|
5
|
-
* Author: Yulei Sui
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
#ifndef ANNOTATOR_H_
|
|
9
|
-
#define ANNOTATOR_H_
|
|
10
|
-
|
|
11
|
-
#include <SVF-LLVM/BasicTypes.h> // TODO: Remove LLVM Header
|
|
12
|
-
#include "SVFIR/SVFValue.h"
|
|
13
|
-
#include <vector>
|
|
14
|
-
|
|
15
|
-
namespace SVF
|
|
16
|
-
{
|
|
17
|
-
|
|
18
|
-
/*!
|
|
19
|
-
* Program annotator to write meta data information on LLVM IR
|
|
20
|
-
*/
|
|
21
|
-
class Annotator
|
|
22
|
-
{
|
|
23
|
-
|
|
24
|
-
public:
|
|
25
|
-
/// Constructor
|
|
26
|
-
Annotator()
|
|
27
|
-
{
|
|
28
|
-
SB_SLICESOURCE = "SOURCE_";
|
|
29
|
-
SB_SLICESINK = "SINK_";
|
|
30
|
-
SB_FESIBLE = "FESIBLE_";
|
|
31
|
-
SB_INFESIBLE = "INFESIBLE_";
|
|
32
|
-
|
|
33
|
-
DR_NOT_CHECK = "DRNOTCHECK_";
|
|
34
|
-
DR_CHECK = "DRCHECK_";
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/// Destructor
|
|
38
|
-
virtual ~Annotator()
|
|
39
|
-
{
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/// SB Has flag methods
|
|
43
|
-
//@{
|
|
44
|
-
inline bool hasSBSourceFlag(Instruction* inst) const
|
|
45
|
-
{
|
|
46
|
-
std::vector<Value* > values;
|
|
47
|
-
return evalMDTag(inst, inst, SB_SLICESOURCE, values);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
inline bool hasSBSinkFlag(Instruction* inst) const
|
|
51
|
-
{
|
|
52
|
-
std::vector<Value* > values;
|
|
53
|
-
return evalMDTag(inst, inst, SB_SLICESINK, values);
|
|
54
|
-
}
|
|
55
|
-
//@}
|
|
56
|
-
|
|
57
|
-
/// Race Detection Has flag methods
|
|
58
|
-
//@{
|
|
59
|
-
inline bool hasDRNotCheckFlag(Instruction* inst) const
|
|
60
|
-
{
|
|
61
|
-
//std::vector<Value* > values;
|
|
62
|
-
//return evalMDTag(inst, inst, DR_NOT_CHECK, values);
|
|
63
|
-
return inst->getMetadata(DR_NOT_CHECK);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
inline bool hasDRNotCheckFlag(const Instruction* inst) const
|
|
67
|
-
{
|
|
68
|
-
//std::vector<Value* > values;
|
|
69
|
-
//return evalMDTag(inst, inst, DR_NOT_CHECK, values);
|
|
70
|
-
return inst->getMetadata(DR_NOT_CHECK);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
inline bool hasDRCheckFlag(Instruction* inst) const
|
|
74
|
-
{
|
|
75
|
-
//std::vector<Value* > values;
|
|
76
|
-
//return evalMDTag(inst, inst, DR_CHECK, values);
|
|
77
|
-
return inst->getMetadata(DR_CHECK);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
inline bool hasDRCheckFlag(const Instruction* inst) const
|
|
81
|
-
{
|
|
82
|
-
//std::vector<Value* > values;
|
|
83
|
-
//return evalMDTag(inst, inst, DR_CHECK, values);
|
|
84
|
-
return inst->getMetadata(DR_CHECK);
|
|
85
|
-
}
|
|
86
|
-
//@}
|
|
87
|
-
|
|
88
|
-
/// Simple add/remove meta data information
|
|
89
|
-
//@{
|
|
90
|
-
inline void addMDTag(Instruction* inst, std::string str)
|
|
91
|
-
{
|
|
92
|
-
addMDTag(inst, inst, str);
|
|
93
|
-
}
|
|
94
|
-
inline void removeMDTag(Instruction* inst, std::string str)
|
|
95
|
-
{
|
|
96
|
-
removeMDTag(inst, inst, str);
|
|
97
|
-
}
|
|
98
|
-
//@}
|
|
99
|
-
|
|
100
|
-
/// manipulate llvm meta data on instructions for a specific value
|
|
101
|
-
//@{
|
|
102
|
-
/// add flag to llvm metadata
|
|
103
|
-
inline void addMDTag(Instruction* inst, Value* val, std::string str)
|
|
104
|
-
{
|
|
105
|
-
assert(!val->getType()->isVoidTy() && "expecting non-void value for MD!");
|
|
106
|
-
std::vector<Value* > values;
|
|
107
|
-
//std::vector<llvm::Metadata *> metavalues;
|
|
108
|
-
// add the flag if we did not see it before
|
|
109
|
-
if (evalMDTag(inst, val, str, values) == false)
|
|
110
|
-
{
|
|
111
|
-
|
|
112
|
-
values.push_back(val);
|
|
113
|
-
//llvm::ArrayRef<llvm::Metadata*> ar(metavalues);
|
|
114
|
-
// FIXME: delete the old MDNode
|
|
115
|
-
inst->setMetadata(str, MDNode::get(inst->getContext(), nullptr));
|
|
116
|
-
//inst->setMetadata(str, llvm::MDNode::get(inst->getContext(), ar));
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/// remove flag from llvm metadata
|
|
121
|
-
inline void removeMDTag(Instruction* inst, Value* val, std::string str)
|
|
122
|
-
{
|
|
123
|
-
assert(!val->getType()->isVoidTy() && "expecting non-void value for MD!");
|
|
124
|
-
std::vector<Value* > values;
|
|
125
|
-
|
|
126
|
-
// remove the flag if it is there
|
|
127
|
-
if (evalMDTag(inst, val, str, values) == true)
|
|
128
|
-
{
|
|
129
|
-
llvm::ArrayRef<Value* > ar(values);
|
|
130
|
-
// FIXME: delete the old MDNode
|
|
131
|
-
//inst->setMetadata(str, llvm::MDNode::get(inst->getContext(), ar));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
//@}
|
|
135
|
-
|
|
136
|
-
private:
|
|
137
|
-
|
|
138
|
-
/// evaluate llvm metadata
|
|
139
|
-
inline bool evalMDTag(const Instruction* inst, const Value* val, std::string str,
|
|
140
|
-
std::vector<Value* >&) const
|
|
141
|
-
{
|
|
142
|
-
|
|
143
|
-
assert(val && "value should not be null");
|
|
144
|
-
|
|
145
|
-
bool hasFlag = false;
|
|
146
|
-
if (MDNode *mdNode = inst->getMetadata(str))
|
|
147
|
-
{
|
|
148
|
-
/// When mdNode has operands and value is not null
|
|
149
|
-
for (unsigned k = 0; k < mdNode->getNumOperands(); ++k)
|
|
150
|
-
{
|
|
151
|
-
//Value* v = mdNode->getOperand(k);
|
|
152
|
-
// if (v == val)
|
|
153
|
-
// hasFlag = true;
|
|
154
|
-
//else
|
|
155
|
-
// values.push_back(v);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return hasFlag;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
protected:
|
|
162
|
-
|
|
163
|
-
/// Saber annotations
|
|
164
|
-
//@{
|
|
165
|
-
const char* SB_SLICESOURCE;
|
|
166
|
-
const char* SB_SLICESINK;
|
|
167
|
-
const char* SB_FESIBLE;
|
|
168
|
-
const char* SB_INFESIBLE;
|
|
169
|
-
//@}
|
|
170
|
-
|
|
171
|
-
/// Race Detection annotations
|
|
172
|
-
//@{
|
|
173
|
-
const char* DR_NOT_CHECK;
|
|
174
|
-
const char* DR_CHECK;
|
|
175
|
-
//@}
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
} // End namespace SVF
|
|
179
|
-
|
|
180
|
-
#endif /* ANNOTATOR_H_ */
|