svf-lib 1.0.2622 → 1.0.2624

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.
Files changed (37) hide show
  1. package/SVF-linux-aarch64/bin/ae +0 -0
  2. package/SVF-linux-aarch64/bin/cfl +0 -0
  3. package/SVF-linux-aarch64/bin/dvf +0 -0
  4. package/SVF-linux-aarch64/bin/mta +0 -0
  5. package/SVF-linux-aarch64/bin/saber +0 -0
  6. package/SVF-linux-aarch64/bin/svf-ex +0 -0
  7. package/SVF-linux-aarch64/bin/wpa +0 -0
  8. package/SVF-linux-aarch64/include/CFL/CFLAlias.h +1 -1
  9. package/SVF-linux-aarch64/include/CFL/CFLBase.h +3 -1
  10. package/SVF-linux-aarch64/include/CFL/CFLVF.h +1 -1
  11. package/SVF-linux-aarch64/include/DDA/FlowDDA.h +1 -1
  12. package/SVF-linux-aarch64/include/Graphs/GraphWriter.h +1 -0
  13. package/SVF-linux-aarch64/include/Graphs/SCC.h +1 -0
  14. package/SVF-linux-aarch64/include/MTA/MTA.h +1 -0
  15. package/SVF-linux-aarch64/include/MTA/TCT.h +1 -0
  16. package/SVF-linux-aarch64/include/MemoryModel/PTATY.h +55 -0
  17. package/SVF-linux-aarch64/include/MemoryModel/PointerAnalysis.h +2 -40
  18. package/SVF-linux-aarch64/include/MemoryModel/PointerAnalysisImpl.h +8 -14
  19. package/SVF-linux-aarch64/include/SVF-LLVM/LLVMModule.h +2 -0
  20. package/SVF-linux-aarch64/include/Util/Options.h +9 -6
  21. package/SVF-linux-aarch64/include/Util/SVFStat.h +3 -1
  22. package/SVF-linux-aarch64/include/WPA/Andersen.h +16 -15
  23. package/SVF-linux-aarch64/include/WPA/AndersenPWC.h +3 -2
  24. package/SVF-linux-aarch64/include/WPA/FlowSensitive.h +2 -2
  25. package/SVF-linux-aarch64/include/WPA/VersionedFlowSensitive.h +3 -2
  26. package/SVF-linux-aarch64/lib/cmake/SVF/SVFTargets.cmake +1 -1
  27. package/SVF-linux-aarch64/lib/libSvfCore.so.3.4 +0 -0
  28. package/SVF-linux-aarch64/lib/libSvfLLVM.so.3.4 +0 -0
  29. package/SVF-linux-x86_64/bin/ae +0 -0
  30. package/SVF-linux-x86_64/bin/svf-ex +0 -0
  31. package/SVF-linux-x86_64/bin/wpa +0 -0
  32. package/SVF-linux-x86_64/include/SVFIR/SVFIR.h +0 -4
  33. package/SVF-linux-x86_64/include/SVFIR/SVFValue.h +2 -3
  34. package/SVF-linux-x86_64/include/SVFIR/SVFVariables.h +0 -40
  35. package/SVF-linux-x86_64/lib/libSvfCore.so.3.4 +0 -0
  36. package/SVF-linux-x86_64/lib/libSvfLLVM.so.3.4 +0 -0
  37. package/package.json +1 -1
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -44,7 +44,7 @@ class CFLAlias : public CFLBase
44
44
  public:
45
45
  typedef OrderedMap<const CallICFGNode*, NodeID> CallSite2DummyValPN;
46
46
 
47
- CFLAlias(SVFIR* ir) : CFLBase(ir, PointerAnalysis::CFLFICI_WPA)
47
+ CFLAlias(SVFIR* ir) : CFLBase(ir, PTATY::CFLFICI_WPA)
48
48
  {
49
49
  }
50
50
 
@@ -36,8 +36,10 @@
36
36
  #include "CFL/CFLGraphBuilder.h"
37
37
  #include "CFL/CFLGramGraphChecker.h"
38
38
  #include "MemoryModel/PointerAnalysis.h"
39
+ #include "MemoryModel/PointerAnalysisImpl.h"
39
40
  #include "Graphs/ConsG.h"
40
41
  #include "Util/Options.h"
42
+ #include "Util/PTAStat.h"
41
43
  #include "SVFIR/SVFType.h"
42
44
 
43
45
  namespace SVF
@@ -50,7 +52,7 @@ class CFLBase : public BVDataPTAImpl
50
52
  {
51
53
 
52
54
  public:
53
- CFLBase(SVFIR* ir, PointerAnalysis::PTATY pty) : BVDataPTAImpl(ir, pty), svfir(ir), graph(nullptr), grammar(nullptr), solver(nullptr)
55
+ CFLBase(SVFIR* ir, PTATY pty) : BVDataPTAImpl(ir, pty), svfir(ir), graph(nullptr), grammar(nullptr), solver(nullptr)
54
56
  {
55
57
  }
56
58
 
@@ -42,7 +42,7 @@ class CFLVF : public CFLBase
42
42
  {
43
43
 
44
44
  public:
45
- CFLVF(SVFIR* ir) : CFLBase(ir, PointerAnalysis::CFLFSCS_WPA)
45
+ CFLVF(SVFIR* ir) : CFLBase(ir, PTATY::CFLFSCS_WPA)
46
46
  {
47
47
  }
48
48
 
@@ -58,7 +58,7 @@ public:
58
58
  typedef BVDataPTAImpl::CallEdgeMap CallEdgeMap;
59
59
  typedef BVDataPTAImpl::FunctionSet FunctionSet;
60
60
  /// Constructor
61
- FlowDDA(SVFIR* _pag, DDAClient* client): BVDataPTAImpl(_pag, PointerAnalysis::FlowS_DDA),
61
+ FlowDDA(SVFIR* _pag, DDAClient* client): BVDataPTAImpl(_pag, PTATY::FlowS_DDA),
62
62
  DDAVFSolver<NodeID,PointsTo,LocDPItem>(),
63
63
  _client(client)
64
64
  {
@@ -24,6 +24,7 @@
24
24
 
25
25
  #include "Graphs/GraphTraits.h"
26
26
  #include "Graphs/DOTGraphTraits.h"
27
+ #include "Util/Options.h"
27
28
  #include <algorithm>
28
29
  #include <cstddef>
29
30
  #include <iterator>
@@ -41,6 +41,7 @@
41
41
  #define SCC_H_
42
42
 
43
43
  #include "SVFIR/SVFValue.h" // for NodeBS
44
+ #include "Util/WorkList.h" // for NodeBS
44
45
  #include <limits.h>
45
46
  #include <stack>
46
47
  #include <map>
@@ -36,6 +36,7 @@
36
36
 
37
37
  #include <set>
38
38
  #include <vector>
39
+ #include "SVFIR/SVFIR.h"
39
40
  #include "SVFIR/SVFValue.h"
40
41
 
41
42
  namespace SVF
@@ -30,6 +30,7 @@
30
30
  #ifndef TCTNodeDetector_H_
31
31
  #define TCTNodeDetector_H_
32
32
 
33
+ #include "MemoryModel/PointerAnalysis.h"
33
34
  #include "Graphs/SCC.h"
34
35
  #include "Graphs/ThreadCallGraph.h"
35
36
  #include "Util/CxtStmt.h"
@@ -0,0 +1,55 @@
1
+ #ifndef PTATY_H
2
+ #define PTATY_H
3
+
4
+ namespace SVF
5
+ {
6
+
7
+ /// Pointer analysis type list
8
+ enum PTATY
9
+ {
10
+ // Whole program analysis
11
+ Andersen_BASE, ///< Base Andersen PTA
12
+ Andersen_WPA, ///< Andersen PTA
13
+ AndersenSCD_WPA, ///< Selective cycle detection andersen-style WPA
14
+ AndersenSFR_WPA, ///< Stride-based field representation
15
+ AndersenWaveDiff_WPA, ///< Diff wave propagation andersen-style WPA
16
+ Steensgaard_WPA, ///< Steensgaard PTA
17
+ CSCallString_WPA, ///< Call string based context sensitive WPA
18
+ CSSummary_WPA, ///< Summary based context sensitive WPA
19
+ FSDATAFLOW_WPA, ///< Traditional Dataflow-based flow sensitive WPA
20
+ FSSPARSE_WPA, ///< Sparse flow sensitive WPA
21
+ VFS_WPA, ///< Versioned sparse flow-sensitive WPA
22
+ FSCS_WPA, ///< Flow-, context- sensitive WPA
23
+ CFLFICI_WPA, ///< Flow-, context-, insensitive CFL-reachability-based analysis
24
+ CFLFSCI_WPA, ///< Flow-insensitive, context-sensitive CFL-reachability-based analysis
25
+ CFLFSCS_WPA, ///< Flow-, context-, CFL-reachability-based analysis
26
+ TypeCPP_WPA, ///< Type-based analysis for C++
27
+
28
+ // Demand driven analysis
29
+ FieldS_DDA, ///< Field sensitive DDA
30
+ FlowS_DDA, ///< Flow sensitive DDA
31
+ PathS_DDA, ///< Guarded value-flow DDA
32
+ Cxt_DDA, ///< context sensitive DDA
33
+
34
+
35
+ Default_PTA ///< default pta without any analysis
36
+ };
37
+
38
+ /// Implementation type: BVDataPTAImpl or CondPTAImpl.
39
+ enum PTAImplTy
40
+ {
41
+ BaseImpl, ///< Represents PointerAnalaysis.
42
+ BVDataImpl, ///< Represents BVDataPTAImpl.
43
+ CondImpl, ///< Represents CondPTAImpl.
44
+ };
45
+
46
+ /// How the PTData used is implemented.
47
+ enum PTBackingType
48
+ {
49
+ Mutable,
50
+ Persistent,
51
+ };
52
+
53
+ } // namespace SVF
54
+
55
+ #endif // PTATY_H
@@ -41,6 +41,7 @@
41
41
  #include "MemoryModel/MutablePointsToDS.h"
42
42
  #include "MemoryModel/PersistentPointsToDS.h"
43
43
  #include "MemoryModel/PointsTo.h"
44
+ #include "MemoryModel/PTATY.h"
44
45
  #include "SVFIR/SVFIR.h"
45
46
 
46
47
  namespace SVF
@@ -57,45 +58,6 @@ class PointerAnalysis
57
58
  {
58
59
 
59
60
  public:
60
- /// Pointer analysis type list
61
- enum PTATY
62
- {
63
- // Whole program analysis
64
- Andersen_BASE, ///< Base Andersen PTA
65
- Andersen_WPA, ///< Andersen PTA
66
- AndersenSCD_WPA, ///< Selective cycle detection andersen-style WPA
67
- AndersenSFR_WPA, ///< Stride-based field representation
68
- AndersenWaveDiff_WPA, ///< Diff wave propagation andersen-style WPA
69
- Steensgaard_WPA, ///< Steensgaard PTA
70
- CSCallString_WPA, ///< Call string based context sensitive WPA
71
- CSSummary_WPA, ///< Summary based context sensitive WPA
72
- FSDATAFLOW_WPA, ///< Traditional Dataflow-based flow sensitive WPA
73
- FSSPARSE_WPA, ///< Sparse flow sensitive WPA
74
- VFS_WPA, ///< Versioned sparse flow-sensitive WPA
75
- FSCS_WPA, ///< Flow-, context- sensitive WPA
76
- CFLFICI_WPA, ///< Flow-, context-, insensitive CFL-reachability-based analysis
77
- CFLFSCI_WPA, ///< Flow-insensitive, context-sensitive CFL-reachability-based analysis
78
- CFLFSCS_WPA, ///< Flow-, context-, CFL-reachability-based analysis
79
- TypeCPP_WPA, ///< Type-based analysis for C++
80
-
81
- // Demand driven analysis
82
- FieldS_DDA, ///< Field sensitive DDA
83
- FlowS_DDA, ///< Flow sensitive DDA
84
- PathS_DDA, ///< Guarded value-flow DDA
85
- Cxt_DDA, ///< context sensitive DDA
86
-
87
-
88
- Default_PTA ///< default pta without any analysis
89
- };
90
-
91
- /// Implementation type: BVDataPTAImpl or CondPTAImpl.
92
- enum PTAImplTy
93
- {
94
- BaseImpl, ///< Represents PointerAnalaysis.
95
- BVDataImpl, ///< Represents BVDataPTAImpl.
96
- CondImpl, ///< Represents CondPTAImpl.
97
- };
98
-
99
61
  /// Indirect call edges type, map a callsite to a set of callees
100
62
  //@{
101
63
  typedef Set<const CallICFGNode*> CallSiteSet;
@@ -176,7 +138,7 @@ public:
176
138
  }
177
139
 
178
140
  /// Constructor
179
- PointerAnalysis(SVFIR* pag, PTATY ty = Default_PTA, bool alias_check = true);
141
+ PointerAnalysis(SVFIR* pag, PTATY ty = PTATY::Default_PTA, bool alias_check = true);
180
142
 
181
143
  /// Type of pointer analysis
182
144
  inline PTATY getAnalysisTy() const
@@ -31,6 +31,7 @@
31
31
  #define INCLUDE_MEMORYMODEL_POINTERANALYSISIMPL_H_
32
32
 
33
33
  #include <Graphs/ConsG.h>
34
+ #include "MemoryModel/PTATY.h"
34
35
  #include "MemoryModel/PointerAnalysis.h"
35
36
 
36
37
  namespace SVF
@@ -60,15 +61,8 @@ public:
60
61
  typedef PersistentIncDFPTData<NodeID, NodeSet, NodeID, PointsTo> PersIncDFPTDataTy;
61
62
  typedef PersistentVersionedPTData<NodeID, NodeSet, NodeID, PointsTo, VersionedVar, Set<VersionedVar>> PersVersionedPTDataTy;
62
63
 
63
- /// How the PTData used is implemented.
64
- enum PTBackingType
65
- {
66
- Mutable,
67
- Persistent,
68
- };
69
-
70
64
  /// Constructor
71
- BVDataPTAImpl(SVFIR* pag, PointerAnalysis::PTATY type, bool alias_check = true);
65
+ BVDataPTAImpl(SVFIR* pag, PTATY type, bool alias_check = true);
72
66
 
73
67
  /// Destructor
74
68
  ~BVDataPTAImpl() override = default;
@@ -80,7 +74,7 @@ public:
80
74
 
81
75
  static inline bool classof(const PointerAnalysis *pta)
82
76
  {
83
- return pta->getImplTy() == BVDataImpl;
77
+ return pta->getImplTy() == PTAImplTy::BVDataImpl;
84
78
  }
85
79
 
86
80
  /// Get points-to and reverse points-to
@@ -257,14 +251,14 @@ public:
257
251
  typedef Map<NodeID,CPtSet> PtrToCPtsMap; /// map a pointer to its conditional points-to set
258
252
 
259
253
  /// Constructor
260
- CondPTAImpl(SVFIR* pag, PointerAnalysis::PTATY type) : PointerAnalysis(pag, type), normalized(false)
254
+ CondPTAImpl(SVFIR* pag, PTATY type) : PointerAnalysis(pag, type), normalized(false)
261
255
  {
262
- if (type == PathS_DDA || type == Cxt_DDA)
256
+ if (type == PTATY::PathS_DDA || type == PTATY::Cxt_DDA)
263
257
  ptD = new MutPTDataTy();
264
258
  else
265
259
  assert(false && "no points-to data available");
266
260
 
267
- ptaImplTy = CondImpl;
261
+ ptaImplTy = PTAImplTy::CondImpl;
268
262
  }
269
263
 
270
264
  /// Destructor
@@ -275,7 +269,7 @@ public:
275
269
 
276
270
  static inline bool classof(const PointerAnalysis *pta)
277
271
  {
278
- return pta->getImplTy() == CondImpl;
272
+ return pta->getImplTy() == PTAImplTy::CondImpl;
279
273
  }
280
274
 
281
275
  /// Release memory
@@ -527,7 +521,7 @@ public:
527
521
  expandFIObjs(pts2,cpts2);
528
522
  if (containBlackHoleNode(cpts1) || containBlackHoleNode(cpts2))
529
523
  return AliasResult::MayAlias;
530
- else if(this->getAnalysisTy()==PathS_DDA && contains(cpts1,cpts2) && contains(cpts2,cpts1))
524
+ else if(this->getAnalysisTy() == PTATY::PathS_DDA && contains(cpts1,cpts2) && contains(cpts2,cpts1))
531
525
  {
532
526
  return AliasResult::MustAlias;
533
527
  }
@@ -35,6 +35,8 @@
35
35
  #include "SVF-LLVM/BasicTypes.h"
36
36
  #include "Util/Options.h"
37
37
  #include "Graphs/BasicBlockG.h"
38
+ #include "Graphs/ICFGNode.h"
39
+ #include "SVFIR/SVFIR.h"
38
40
 
39
41
  namespace SVF
40
42
  {
@@ -5,8 +5,8 @@
5
5
 
6
6
  #include <sstream>
7
7
  #include "Util/CommandLine.h"
8
- #include "Util/PTAStat.h"
9
- #include "MemoryModel/PointerAnalysisImpl.h"
8
+ #include "Util/SVFStat.h"
9
+ #include "MemoryModel/PTATY.h"
10
10
  #include "Util/NodeIDAllocator.h"
11
11
 
12
12
  namespace SVF
@@ -18,7 +18,7 @@ class Options
18
18
  public:
19
19
  Options(void) = delete;
20
20
 
21
- static const OptionMap<enum PTAStat::ClockType> ClockType;
21
+ static const OptionMap<SVFStat::ClockType> ClockType;
22
22
 
23
23
  /// If set, only return the clock when getClk is called as getClk(true).
24
24
  /// Retrieving the clock is slow but it should be fine for a few calls.
@@ -63,7 +63,7 @@ public:
63
63
  static const Option<bool> PredictPtOcc;
64
64
 
65
65
  /// PTData type.
66
- static const OptionMap<BVDataPTAImpl::PTBackingType> ptDataBacking;
66
+ static const OptionMap<PTBackingType> ptDataBacking;
67
67
 
68
68
  /// Time limit for the main phase (i.e., the actual solving) of FS analyses.
69
69
  static const Option<u32_t> FsTimeLimit;
@@ -87,7 +87,7 @@ public:
87
87
  static const Option<bool> PrintCPts;
88
88
  static const Option<bool> PrintQueryPts;
89
89
  static const Option<bool> WPANum;
90
- static OptionMultiple<PointerAnalysis::PTATY> DDASelected;
90
+ static OptionMultiple<PTATY> DDASelected;
91
91
 
92
92
  // FlowDDA.cpp
93
93
  static const Option<u32_t> FlowBudget;
@@ -215,7 +215,7 @@ public:
215
215
  static const Option<bool> AnderSVFG;
216
216
  static const Option<bool> SABERFULLSVFG;
217
217
  static const Option<bool> PrintAliases;
218
- static OptionMultiple<PointerAnalysis::PTATY> PASelected;
218
+ static OptionMultiple<PTATY> PASelected;
219
219
  static OptionMultiple<u32_t> AliasRule;
220
220
 
221
221
  // DOTGraphTraits
@@ -266,6 +266,9 @@ public:
266
266
 
267
267
  // float precision for symbolic abstraction
268
268
  static const Option<u32_t> AEPrecision;
269
+
270
+ // GraphWriter.h
271
+ static const Option<u32_t> MaxNodeLabelLength;
269
272
  };
270
273
  } // namespace SVF
271
274
 
@@ -30,6 +30,8 @@
30
30
  #ifndef SVF_SVFSTAT_H
31
31
  #define SVF_SVFSTAT_H
32
32
 
33
+ #include "MemoryModel/PointsTo.h"
34
+
33
35
  namespace SVF
34
36
  {
35
37
 
@@ -45,7 +47,7 @@ public:
45
47
 
46
48
  typedef OrderedMap<std::string, double> TIMEStatMap;
47
49
 
48
- enum ClockType
50
+ enum class ClockType
49
51
  {
50
52
  Wall,
51
53
  CPU,
@@ -35,6 +35,7 @@
35
35
  #ifndef INCLUDE_WPA_ANDERSEN_H_
36
36
  #define INCLUDE_WPA_ANDERSEN_H_
37
37
 
38
+ #include "MemoryModel/PTATY.h"
38
39
  #include "MemoryModel/PointerAnalysisImpl.h"
39
40
  #include "WPA/WPAStat.h"
40
41
  #include "WPA/WPASolver.h"
@@ -61,7 +62,7 @@ public:
61
62
  public:
62
63
 
63
64
  /// Constructor
64
- AndersenBase(SVFIR* _pag, PTATY type = Andersen_BASE, bool alias_check = true)
65
+ AndersenBase(SVFIR* _pag, PTATY type = PTATY::Andersen_BASE, bool alias_check = true)
65
66
  : BVDataPTAImpl(_pag, type, alias_check), consCG(nullptr)
66
67
  {
67
68
  iterationForPrintStat = OnTheFlyIterBudgetForStat;
@@ -107,13 +108,13 @@ public:
107
108
  }
108
109
  static inline bool classof(const PointerAnalysis *pta)
109
110
  {
110
- return ( pta->getAnalysisTy() == Andersen_BASE
111
- || pta->getAnalysisTy() == Andersen_WPA
112
- || pta->getAnalysisTy() == AndersenWaveDiff_WPA
113
- || pta->getAnalysisTy() == AndersenSCD_WPA
114
- || pta->getAnalysisTy() == AndersenSFR_WPA
115
- || pta->getAnalysisTy() == TypeCPP_WPA
116
- || pta->getAnalysisTy() == Steensgaard_WPA);
111
+ return ( pta->getAnalysisTy() == PTATY::Andersen_BASE
112
+ || pta->getAnalysisTy() == PTATY::Andersen_WPA
113
+ || pta->getAnalysisTy() == PTATY::AndersenWaveDiff_WPA
114
+ || pta->getAnalysisTy() == PTATY::AndersenSCD_WPA
115
+ || pta->getAnalysisTy() == PTATY::AndersenSFR_WPA
116
+ || pta->getAnalysisTy() == PTATY::TypeCPP_WPA
117
+ || pta->getAnalysisTy() == PTATY::Steensgaard_WPA);
117
118
  }
118
119
  //@}
119
120
 
@@ -193,7 +194,7 @@ public:
193
194
  typedef SCCDetection<ConstraintGraph*> CGSCC;
194
195
 
195
196
  /// Constructor
196
- Andersen(SVFIR* _pag, PTATY type = Andersen_WPA, bool alias_check = true)
197
+ Andersen(SVFIR* _pag, PTATY type = PTATY::Andersen_WPA, bool alias_check = true)
197
198
  : AndersenBase(_pag, type, alias_check)
198
199
  {
199
200
  }
@@ -227,10 +228,10 @@ public:
227
228
  }
228
229
  static inline bool classof(const PointerAnalysis *pta)
229
230
  {
230
- return (pta->getAnalysisTy() == Andersen_WPA
231
- || pta->getAnalysisTy() == AndersenWaveDiff_WPA
232
- || pta->getAnalysisTy() == AndersenSCD_WPA
233
- || pta->getAnalysisTy() == AndersenSFR_WPA);
231
+ return (pta->getAnalysisTy() == PTATY::Andersen_WPA
232
+ || pta->getAnalysisTy() == PTATY::AndersenWaveDiff_WPA
233
+ || pta->getAnalysisTy() == PTATY::AndersenSCD_WPA
234
+ || pta->getAnalysisTy() == PTATY::AndersenSFR_WPA);
234
235
  }
235
236
  //@}
236
237
 
@@ -401,14 +402,14 @@ private:
401
402
  static AndersenWaveDiff* diffWave; // static instance
402
403
 
403
404
  public:
404
- AndersenWaveDiff(SVFIR* _pag, PTATY type = AndersenWaveDiff_WPA, bool alias_check = true): Andersen(_pag, type, alias_check) {}
405
+ AndersenWaveDiff(SVFIR* _pag, PTATY type = PTATY::AndersenWaveDiff_WPA, bool alias_check = true): Andersen(_pag, type, alias_check) {}
405
406
 
406
407
  /// Create an singleton instance directly instead of invoking llvm pass manager
407
408
  static AndersenWaveDiff* createAndersenWaveDiff(SVFIR* _pag)
408
409
  {
409
410
  if(diffWave==nullptr)
410
411
  {
411
- diffWave = new AndersenWaveDiff(_pag, AndersenWaveDiff_WPA, false);
412
+ diffWave = new AndersenWaveDiff(_pag, PTATY::AndersenWaveDiff_WPA, false);
412
413
  diffWave->analyze();
413
414
  return diffWave;
414
415
  }
@@ -33,6 +33,7 @@
33
33
 
34
34
  #include "WPA/Andersen.h"
35
35
  #include "WPA/CSC.h"
36
+ #include "MemoryModel/PTATY.h"
36
37
  #include "MemoryModel/PointsTo.h"
37
38
 
38
39
  namespace SVF
@@ -52,7 +53,7 @@ protected:
52
53
  NodeToNodeMap pwcReps;
53
54
 
54
55
  public:
55
- AndersenSCD(SVFIR* _pag, PTATY type = AndersenSCD_WPA) :
56
+ AndersenSCD(SVFIR* _pag, PTATY type = PTATY::AndersenSCD_WPA) :
56
57
  Andersen(_pag,type)
57
58
  {
58
59
  }
@@ -114,7 +115,7 @@ private:
114
115
  FieldReps fieldReps;
115
116
 
116
117
  public:
117
- AndersenSFR(SVFIR* _pag, PTATY type = AndersenSFR_WPA) :
118
+ AndersenSFR(SVFIR* _pag, PTATY type = PTATY::AndersenSFR_WPA) :
118
119
  AndersenSCD(_pag, type), csc(nullptr)
119
120
  {
120
121
  }
@@ -57,7 +57,7 @@ public:
57
57
  typedef BVDataPTAImpl::MutDFPTDataTy::PtsMap PtsMap;
58
58
 
59
59
  /// Constructor
60
- explicit FlowSensitive(SVFIR* _pag, PTATY type = FSSPARSE_WPA) : WPASVFGFSSolver(), BVDataPTAImpl(_pag, type)
60
+ explicit FlowSensitive(SVFIR* _pag, PTATY type = PTATY::FSSPARSE_WPA) : WPASVFGFSSolver(), BVDataPTAImpl(_pag, type)
61
61
  {
62
62
  svfg = nullptr;
63
63
  solveTime = sccTime = processTime = propagationTime = updateTime = 0;
@@ -126,7 +126,7 @@ public:
126
126
  }
127
127
  static inline bool classof(const PointerAnalysis *pta)
128
128
  {
129
- return pta->getAnalysisTy() == FSSPARSE_WPA;
129
+ return pta->getAnalysisTy() == PTATY::FSSPARSE_WPA;
130
130
  }
131
131
  //@}
132
132
 
@@ -18,6 +18,7 @@
18
18
  #include "MSSA/SVFGBuilder.h"
19
19
  #include "WPA/FlowSensitive.h"
20
20
  #include "WPA/WPAFSSolver.h"
21
+ #include "MemoryModel/PTATY.h"
21
22
  #include "MemoryModel/PointsTo.h"
22
23
 
23
24
  namespace SVF
@@ -50,7 +51,7 @@ public:
50
51
  static VersionedVar atKey(NodeID, Version);
51
52
 
52
53
  /// Constructor
53
- VersionedFlowSensitive(SVFIR *_pag, PTATY type = VFS_WPA);
54
+ VersionedFlowSensitive(SVFIR *_pag, PTATY type = PTATY::VFS_WPA);
54
55
 
55
56
  /// Initialize analysis
56
57
  virtual void initialize() override;
@@ -72,7 +73,7 @@ public:
72
73
  }
73
74
  static inline bool classof(const PointerAnalysis *pta)
74
75
  {
75
- return pta->getAnalysisTy() == VFS_WPA;
76
+ return pta->getAnalysisTy() == PTATY::VFS_WPA;
76
77
  }
77
78
  //@}
78
79
 
@@ -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/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/Annotator.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/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"
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/Annotator.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/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
Binary file
Binary file
Binary file
@@ -849,10 +849,6 @@ private:
849
849
  {
850
850
  return addValNode(new IntrinsicValVar(i, type));
851
851
  }
852
- inline NodeID addBasicBlockValNode(NodeID i, const SVFType* type)
853
- {
854
- return addValNode(new BasicBlockValVar(i, type));
855
- }
856
852
  inline NodeID addAsmPCValNode(NodeID i, const SVFType* type)
857
853
  {
858
854
  return addValNode(new AsmPCValVar(i, type));
@@ -81,7 +81,6 @@ public:
81
81
  // │ └─ Subclass: DummyValVar
82
82
  DummyValNode, // │ └── Dummy node for uninitialized values
83
83
  IntrinsicValNode, // │ └── LLVM intrinsic call instruction (e.g. llvm.dbg.declare)
84
- BasicBlockValNode, // │ └── LLVM BasicBlock (label operand of br/switch)
85
84
  AsmPCValNode, // │ └── InlineAsm, DSOLocalEquivalent, NoCFIValue
86
85
 
87
86
  // └─ Subclass: ObjVar (Object variable nodes)
@@ -232,7 +231,7 @@ protected:
232
231
 
233
232
  static inline bool isSVFVarKind(GNodeK n)
234
233
  {
235
- static_assert(DummyObjNode - ValNode == 29,
234
+ static_assert(DummyObjNode - ValNode == 28,
236
235
  "The number of SVFVarKinds has changed, make sure the "
237
236
  "range is correct");
238
237
 
@@ -241,7 +240,7 @@ protected:
241
240
 
242
241
  static inline bool isValVarKinds(GNodeK n)
243
242
  {
244
- static_assert(AsmPCValNode - ValNode == 16,
243
+ static_assert(AsmPCValNode - ValNode == 15,
245
244
  "The number of ValVarKinds has changed, make sure the "
246
245
  "range is correct");
247
246
  return n <= AsmPCValNode && n >= ValNode;
@@ -2220,46 +2220,6 @@ public:
2220
2220
  virtual const std::string toString() const;
2221
2221
  };
2222
2222
 
2223
- /*
2224
- * Represents an LLVM BasicBlock (label operand of br/switch).
2225
- * Collected into valSyms as a branch operand but has no ICFGNode.
2226
- */
2227
- class BasicBlockValVar: public ValVar
2228
- {
2229
- friend class GraphDBClient;
2230
-
2231
- public:
2232
- static inline bool classof(const BasicBlockValVar*)
2233
- {
2234
- return true;
2235
- }
2236
- static inline bool classof(const SVFVar* node)
2237
- {
2238
- return node->getNodeKind() == SVFVar::BasicBlockValNode;
2239
- }
2240
- static inline bool classof(const ValVar* node)
2241
- {
2242
- return node->getNodeKind() == SVFVar::BasicBlockValNode;
2243
- }
2244
- static inline bool classof(const GenericPAGNodeTy* node)
2245
- {
2246
- return node->getNodeKind() == SVFVar::BasicBlockValNode;
2247
- }
2248
- static inline bool classof(const SVFValue* node)
2249
- {
2250
- return node->getNodeKind() == SVFVar::BasicBlockValNode;
2251
- }
2252
-
2253
- BasicBlockValVar(NodeID i, const SVFType* svfType)
2254
- : ValVar(i, svfType, nullptr, BasicBlockValNode) {}
2255
-
2256
- inline const std::string getValueName() const
2257
- {
2258
- return "basicBlockVal";
2259
- }
2260
- virtual const std::string toString() const;
2261
- };
2262
-
2263
2223
  /*
2264
2224
  * Represents InlineAsm, DSOLocalEquivalent, and NoCFIValue.
2265
2225
  * These are non-instruction values related to inline assembly,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.2622",
3
+ "version": "1.0.2624",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {