svf-lib 1.0.732 → 1.0.736

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 (94) hide show
  1. package/SVF-linux/Release-build/lib/libSvf.a +0 -0
  2. package/SVF-linux/include/DDA/ContextDDA.h +1 -1
  3. package/SVF-linux/include/DDA/DDAClient.h +8 -8
  4. package/SVF-linux/include/DDA/DDAVFSolver.h +5 -5
  5. package/SVF-linux/include/DDA/FlowDDA.h +1 -1
  6. package/SVF-linux/include/Graphs/ConsG.h +6 -6
  7. package/SVF-linux/include/Graphs/ConsGEdge.h +2 -2
  8. package/SVF-linux/include/Graphs/ConsGNode.h +1 -1
  9. package/SVF-linux/include/Graphs/ExternalPAG.h +14 -14
  10. package/SVF-linux/include/Graphs/GenericGraph.h +1 -1
  11. package/SVF-linux/include/Graphs/ICFGNode.h +14 -14
  12. package/SVF-linux/include/Graphs/IRGraph.h +236 -0
  13. package/SVF-linux/include/Graphs/OfflineConsG.h +1 -1
  14. package/SVF-linux/include/Graphs/SVFG.h +1 -1
  15. package/SVF-linux/include/Graphs/SVFGOPT.h +3 -3
  16. package/SVF-linux/include/Graphs/VFG.h +37 -52
  17. package/SVF-linux/include/Graphs/VFGNode.h +2 -3
  18. package/SVF-linux/include/MSSA/MemRegion.h +11 -11
  19. package/SVF-linux/include/MSSA/MemSSA.h +4 -4
  20. package/SVF-linux/include/MTA/FSMPTA.h +1 -1
  21. package/SVF-linux/include/MemoryModel/PAGBuilderFromFile.h +8 -8
  22. package/SVF-linux/include/MemoryModel/PTAStat.h +31 -31
  23. package/SVF-linux/include/MemoryModel/PointerAnalysis.h +9 -9
  24. package/SVF-linux/include/MemoryModel/PointerAnalysisImpl.h +3 -3
  25. package/SVF-linux/include/MemoryModel/SVFIR.h +526 -235
  26. package/SVF-linux/include/MemoryModel/SVFStatements.h +872 -0
  27. package/SVF-linux/include/MemoryModel/SVFVariables.h +842 -0
  28. package/SVF-linux/include/MemoryModel/SymbolTableInfo.h +346 -55
  29. package/SVF-linux/include/SABER/SaberSVFGBuilder.h +0 -2
  30. package/SVF-linux/include/SABER/SrcSnkDDA.h +3 -3
  31. package/SVF-linux/include/SVF-FE/Graph2Json.h +1 -3
  32. package/SVF-linux/include/SVF-FE/SVFIRBuilder.h +398 -0
  33. package/SVF-linux/include/SVF-FE/SymbolTableBuilder.h +0 -1
  34. package/SVF-linux/include/Util/CFLSolver.h +1 -1
  35. package/SVF-linux/include/Util/ExtAPI.h +1 -1
  36. package/SVF-linux/include/Util/IRAnnotator.h +6 -6
  37. package/SVF-linux/include/Util/Options.h +1 -1
  38. package/SVF-linux/include/Util/TypeBasedHeapCloning.h +11 -11
  39. package/SVF-linux/include/WPA/Andersen.h +11 -11
  40. package/SVF-linux/include/WPA/AndersenSFR.h +4 -4
  41. package/SVF-linux/include/WPA/FlowSensitive.h +2 -2
  42. package/SVF-linux/include/WPA/FlowSensitiveTBHC.h +1 -1
  43. package/SVF-linux/include/WPA/Steensgaard.h +2 -2
  44. package/SVF-linux/include/WPA/TypeAnalysis.h +1 -1
  45. package/SVF-linux/include/WPA/VersionedFlowSensitive.h +2 -2
  46. package/SVF-linux/include/WPA/WPAStat.h +1 -2
  47. package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
  48. package/SVF-osx/Release-build/lib/libSvf.a +0 -0
  49. package/SVF-osx/include/DDA/ContextDDA.h +1 -1
  50. package/SVF-osx/include/DDA/DDAClient.h +8 -8
  51. package/SVF-osx/include/DDA/DDAVFSolver.h +5 -5
  52. package/SVF-osx/include/DDA/FlowDDA.h +1 -1
  53. package/SVF-osx/include/Graphs/ConsG.h +6 -6
  54. package/SVF-osx/include/Graphs/ConsGEdge.h +2 -2
  55. package/SVF-osx/include/Graphs/ConsGNode.h +1 -1
  56. package/SVF-osx/include/Graphs/ExternalPAG.h +14 -14
  57. package/SVF-osx/include/Graphs/GenericGraph.h +1 -1
  58. package/SVF-osx/include/Graphs/ICFGNode.h +14 -14
  59. package/SVF-osx/include/Graphs/IRGraph.h +236 -0
  60. package/SVF-osx/include/Graphs/OfflineConsG.h +1 -1
  61. package/SVF-osx/include/Graphs/SVFG.h +1 -1
  62. package/SVF-osx/include/Graphs/SVFGOPT.h +3 -3
  63. package/SVF-osx/include/Graphs/VFG.h +37 -52
  64. package/SVF-osx/include/Graphs/VFGNode.h +2 -3
  65. package/SVF-osx/include/MSSA/MemRegion.h +11 -11
  66. package/SVF-osx/include/MSSA/MemSSA.h +4 -4
  67. package/SVF-osx/include/MTA/FSMPTA.h +1 -1
  68. package/SVF-osx/include/MemoryModel/PAGBuilderFromFile.h +8 -8
  69. package/SVF-osx/include/MemoryModel/PTAStat.h +31 -31
  70. package/SVF-osx/include/MemoryModel/PointerAnalysis.h +9 -9
  71. package/SVF-osx/include/MemoryModel/PointerAnalysisImpl.h +3 -3
  72. package/SVF-osx/include/MemoryModel/SVFIR.h +526 -235
  73. package/SVF-osx/include/MemoryModel/SVFStatements.h +872 -0
  74. package/SVF-osx/include/MemoryModel/SVFVariables.h +842 -0
  75. package/SVF-osx/include/MemoryModel/SymbolTableInfo.h +346 -55
  76. package/SVF-osx/include/SABER/SaberSVFGBuilder.h +0 -2
  77. package/SVF-osx/include/SABER/SrcSnkDDA.h +3 -3
  78. package/SVF-osx/include/SVF-FE/Graph2Json.h +1 -3
  79. package/SVF-osx/include/SVF-FE/SVFIRBuilder.h +398 -0
  80. package/SVF-osx/include/SVF-FE/SymbolTableBuilder.h +0 -1
  81. package/SVF-osx/include/Util/CFLSolver.h +1 -1
  82. package/SVF-osx/include/Util/ExtAPI.h +1 -1
  83. package/SVF-osx/include/Util/IRAnnotator.h +6 -6
  84. package/SVF-osx/include/Util/Options.h +1 -1
  85. package/SVF-osx/include/Util/TypeBasedHeapCloning.h +11 -11
  86. package/SVF-osx/include/WPA/Andersen.h +11 -11
  87. package/SVF-osx/include/WPA/AndersenSFR.h +4 -4
  88. package/SVF-osx/include/WPA/FlowSensitive.h +2 -2
  89. package/SVF-osx/include/WPA/FlowSensitiveTBHC.h +1 -1
  90. package/SVF-osx/include/WPA/Steensgaard.h +2 -2
  91. package/SVF-osx/include/WPA/TypeAnalysis.h +1 -1
  92. package/SVF-osx/include/WPA/VersionedFlowSensitive.h +2 -2
  93. package/SVF-osx/include/WPA/WPAStat.h +1 -2
  94. package/package.json +1 -1
@@ -33,7 +33,7 @@ public:
33
33
  static const MDNode *getRawCTirMetadata(const SVFGNode *);
34
34
 
35
35
  /// Constructor
36
- FlowSensitiveTBHC(PAG* _pag, PTATY type = FSTBHC_WPA);
36
+ FlowSensitiveTBHC(SVFIR* _pag, PTATY type = FSTBHC_WPA);
37
37
 
38
38
  /// Destructor
39
39
  virtual ~FlowSensitiveTBHC() { };
@@ -26,13 +26,13 @@ public:
26
26
  typedef Map<NodeID, Set<NodeID>> NodeToSubsMap;
27
27
 
28
28
  /// Constructor
29
- Steensgaard(PAG* _pag)
29
+ Steensgaard(SVFIR* _pag)
30
30
  : AndersenBase(_pag, Steensgaard_WPA, true)
31
31
  {
32
32
  }
33
33
 
34
34
  /// Create an singleton instance
35
- static Steensgaard* createSteensgaard(PAG* _pag)
35
+ static Steensgaard* createSteensgaard(SVFIR* _pag)
36
36
  {
37
37
  if(steens==nullptr)
38
38
  {
@@ -40,7 +40,7 @@ class TypeAnalysis: public AndersenBase
40
40
 
41
41
  public:
42
42
  /// Constructor
43
- TypeAnalysis(PAG* pag)
43
+ TypeAnalysis(SVFIR* pag)
44
44
  : AndersenBase(pag, TypeCPP_WPA)
45
45
  {
46
46
  }
@@ -47,7 +47,7 @@ public:
47
47
  static VersionedVar atKey(NodeID, Version);
48
48
 
49
49
  /// Constructor
50
- VersionedFlowSensitive(PAG *_pag, PTATY type = VFS_WPA);
50
+ VersionedFlowSensitive(SVFIR *_pag, PTATY type = VFS_WPA);
51
51
 
52
52
  /// Initialize analysis
53
53
  virtual void initialize() override;
@@ -74,7 +74,7 @@ public:
74
74
  //@}
75
75
 
76
76
  /// Create single instance of versioned flow-sensitive points-to analysis.
77
- static VersionedFlowSensitive *createVFSWPA(PAG *_pag)
77
+ static VersionedFlowSensitive *createVFSWPA(SVFIR *_pag)
78
78
  {
79
79
  if (vfspta == nullptr)
80
80
  {
@@ -39,9 +39,8 @@ namespace SVF
39
39
  {
40
40
 
41
41
  class AndersenBase;
42
- class PAG;
42
+ class SVFIR;
43
43
  class ConstraintGraph;
44
- class PAGNode;
45
44
 
46
45
  /*!
47
46
  * Statistics of Andersen's analysis
Binary file
@@ -28,7 +28,7 @@ class ContextDDA : public CondPTAImpl<ContextCond>, public DDAVFSolver<CxtVar,Cx
28
28
 
29
29
  public:
30
30
  /// Constructor
31
- ContextDDA(PAG* _pag, DDAClient* client);
31
+ ContextDDA(SVFIR* _pag, DDAClient* client);
32
32
 
33
33
  /// Destructor
34
34
  virtual ~ContextDDA();
@@ -11,7 +11,7 @@
11
11
  #ifndef DDACLIENT_H_
12
12
  #define DDACLIENT_H_
13
13
 
14
- #include "Graphs/PAG.h"
14
+ #include "MemoryModel/SVFIR.h"
15
15
  #include "MemoryModel/PointerAnalysisImpl.h"
16
16
  #include "Graphs/SVFG.h"
17
17
  #include "Util/BasicTypes.h"
@@ -32,7 +32,7 @@ public:
32
32
  virtual inline void initialise(SVFModule*) {}
33
33
 
34
34
  /// Collect candidate pointers for query.
35
- virtual inline OrderedNodeSet& collectCandidateQueries(PAG* p)
35
+ virtual inline OrderedNodeSet& collectCandidateQueries(SVFIR* p)
36
36
  {
37
37
  setPAG(p);
38
38
  if (solveAll)
@@ -52,8 +52,8 @@ public:
52
52
 
53
53
  /// Call back used by DDAVFSolver.
54
54
  virtual inline void handleStatement(const SVFGNode*, NodeID) {}
55
- /// Set PAG graph.
56
- inline void setPAG(PAG* g)
55
+ /// Set SVFIR graph.
56
+ inline void setPAG(SVFIR* g)
57
57
  {
58
58
  pag = g;
59
59
  }
@@ -81,11 +81,11 @@ public:
81
81
  protected:
82
82
  void addCandidate(NodeID id)
83
83
  {
84
- if (pag->isValidTopLevelPtr(pag->getPAGNode(id)))
84
+ if (pag->isValidTopLevelPtr(pag->getGNode(id)))
85
85
  candidateQueries.insert(id);
86
86
  }
87
87
 
88
- PAG* pag; ///< PAG graph used by current DDA analysis
88
+ SVFIR* pag; ///< SVFIR graph used by current DDA analysis
89
89
  SVFModule* module; ///< LLVM module
90
90
  NodeID curPtr; ///< current pointer being queried
91
91
  OrderedNodeSet candidateQueries; ///< store all candidate pointers to be queried
@@ -109,7 +109,7 @@ public:
109
109
  ~FunptrDDAClient() {}
110
110
 
111
111
  /// Only collect function pointers as query candidates.
112
- virtual OrderedNodeSet& collectCandidateQueries(PAG* p);
112
+ virtual OrderedNodeSet& collectCandidateQueries(SVFIR* p);
113
113
  virtual void performStat(PointerAnalysis* pta);
114
114
  };
115
115
 
@@ -128,7 +128,7 @@ public:
128
128
  ~AliasDDAClient() {}
129
129
 
130
130
  /// Only collect function pointers as query candidates.
131
- virtual OrderedNodeSet& collectCandidateQueries(PAG* pag);
131
+ virtual OrderedNodeSet& collectCandidateQueries(SVFIR* pag);
132
132
 
133
133
  virtual void performStat(PointerAnalysis* pta);
134
134
 
@@ -29,7 +29,7 @@ public:
29
29
  typedef SCCDetection<SVFG*> SVFGSCC;
30
30
  typedef SCCDetection<PTACallGraph*> CallGraphSCC;
31
31
  typedef PTACallGraphEdge::CallInstSet CallInstSet;
32
- typedef PAG::CallSiteSet CallSiteSet;
32
+ typedef SVFIR::CallSiteSet CallSiteSet;
33
33
  typedef OrderedSet<DPIm> DPTItemSet;
34
34
  typedef OrderedMap<DPIm, CPtSet> DPImToCPtSetMap;
35
35
  typedef OrderedMap<DPIm,CVar> DPMToCVarMap;
@@ -287,7 +287,7 @@ protected:
287
287
  }
288
288
 
289
289
  /// Build SVFG
290
- virtual inline void buildSVFG(PAG* pag)
290
+ virtual inline void buildSVFG(SVFIR* pag)
291
291
  {
292
292
  _ander = AndersenWaveDiff::createAndersenWaveDiff(pag);
293
293
  _svfg = svfgBuilder.buildPTROnlySVFGWithoutOPT(_ander);
@@ -473,7 +473,7 @@ protected:
473
473
  {
474
474
  NodeID funPtr = _pag->getFunPtr(cbn);
475
475
  DPIm funPtrDpm(dpm);
476
- funPtrDpm.setLocVar(getSVFG()->getDefSVFGNode(_pag->getPAGNode(funPtr)),funPtr);
476
+ funPtrDpm.setLocVar(getSVFG()->getDefSVFGNode(_pag->getGNode(funPtr)),funPtr);
477
477
  findPT(funPtrDpm);
478
478
  }
479
479
  }
@@ -486,7 +486,7 @@ protected:
486
486
  {
487
487
  NodeID funPtr = _pag->getFunPtr(*it);
488
488
  DPIm funPtrDpm(dpm);
489
- funPtrDpm.setLocVar(getSVFG()->getDefSVFGNode(_pag->getPAGNode(funPtr)),funPtr);
489
+ funPtrDpm.setLocVar(getSVFG()->getDefSVFGNode(_pag->getGNode(funPtr)),funPtr);
490
490
  findPT(funPtrDpm);
491
491
  }
492
492
  }
@@ -750,7 +750,7 @@ protected:
750
750
  }
751
751
 
752
752
  bool outOfBudgetQuery; ///< Whether the current query is out of step limits
753
- PAG* _pag; ///< PAG
753
+ SVFIR* _pag; ///< SVFIR
754
754
  SVFG* _svfg; ///< SVFG
755
755
  AndersenWaveDiff* _ander; ///< Andersen's analysis
756
756
  NodeBS candidateQueries; ///< candidate pointers;
@@ -30,7 +30,7 @@ public:
30
30
  typedef BVDataPTAImpl::CallEdgeMap CallEdgeMap;
31
31
  typedef BVDataPTAImpl::FunctionSet FunctionSet;
32
32
  /// Constructor
33
- FlowDDA(PAG* _pag, DDAClient* client): BVDataPTAImpl(_pag, PointerAnalysis::FlowS_DDA),
33
+ FlowDDA(SVFIR* _pag, DDAClient* client): BVDataPTAImpl(_pag, PointerAnalysis::FlowS_DDA),
34
34
  DDAVFSolver<NodeID,PointsTo,LocDPItem>(),
35
35
  _client(client)
36
36
  {
@@ -52,7 +52,7 @@ public:
52
52
  typedef FIFOWorkList<NodeID> WorkList;
53
53
 
54
54
  protected:
55
- PAG*pag;
55
+ SVFIR*pag;
56
56
  NodeToRepMap nodeToRepMap;
57
57
  NodeToSubsMap nodeToSubsMap;
58
58
  WorkList nodesToBeCollapsed;
@@ -92,7 +92,7 @@ protected:
92
92
 
93
93
  public:
94
94
  /// Constructor
95
- ConstraintGraph(PAG* p): pag(p), edgeIndex(0)
95
+ ConstraintGraph(SVFIR* p): pag(p), edgeIndex(0)
96
96
  {
97
97
  buildCG();
98
98
  }
@@ -172,7 +172,7 @@ public:
172
172
  }
173
173
  }
174
174
 
175
- ///Add a PAG edge into Edge map
175
+ ///Add a SVFIR edge into Edge map
176
176
  //@{
177
177
  /// Add Address edge
178
178
  AddrCGEdge* addAddrCGEdge(NodeID src, NodeID dst);
@@ -187,7 +187,7 @@ public:
187
187
  StoreCGEdge* addStoreCGEdge(NodeID src, NodeID dst);
188
188
  //@}
189
189
 
190
- ///Get PAG edge
190
+ ///Get SVFIR edge
191
191
  //@{
192
192
  /// Get Address edges
193
193
  inline ConstraintEdge::ConstraintEdgeSetTy& getAddrCGEdges()
@@ -296,9 +296,9 @@ public:
296
296
  return false;
297
297
  }
298
298
 
299
- /// Wrappers for invoking PAG methods
299
+ /// Wrappers for invoking SVFIR methods
300
300
  //@{
301
- inline const PAG::CallSiteToFunPtrMap& getIndirectCallsites() const
301
+ inline const SVFIR::CallSiteToFunPtrMap& getIndirectCallsites() const
302
302
  {
303
303
  return pag->getIndirectCallsites();
304
304
  }
@@ -30,7 +30,7 @@
30
30
  #ifndef CONSGEDGE_H_
31
31
  #define CONSGEDGE_H_
32
32
 
33
- #include "Graphs/PAG.h"
33
+ #include "MemoryModel/SVFIR.h"
34
34
  #include "Util/WorkList.h"
35
35
 
36
36
  #include <map>
@@ -42,7 +42,7 @@ namespace SVF
42
42
  class ConstraintNode;
43
43
  /*!
44
44
  * Self-defined edge for constraint resolution
45
- * including add/remove/re-target, but all the operations do not affect original PAG Edges
45
+ * including add/remove/re-target, but all the operations do not affect original SVFIR Edges
46
46
  */
47
47
  typedef GenericEdge<ConstraintNode> GenericConsEdgeTy;
48
48
  class ConstraintEdge : public GenericConsEdgeTy
@@ -101,7 +101,7 @@ public:
101
101
  }
102
102
  //@}
103
103
 
104
- /// Direct and Indirect PAG edges
104
+ /// Direct and Indirect SVFIR edges
105
105
  inline bool isdirectEdge(ConstraintEdge::ConstraintEdgeK kind)
106
106
  {
107
107
  return (kind == ConstraintEdge::Copy || kind == ConstraintEdge::NormalGep || kind == ConstraintEdge::VariantGep );
@@ -10,15 +10,15 @@
10
10
  #ifndef EXTERNALPAG_H_
11
11
  #define EXTERNALPAG_H_
12
12
 
13
- #include "Graphs/PAGNode.h"
13
+ #include "MemoryModel/SVFVariables.h"
14
14
 
15
15
  extern llvm::cl::list<std::string> DumpPAGFunctions;
16
16
 
17
17
  namespace SVF
18
18
  {
19
19
 
20
- /// Represents the PAG of a function loaded externally (i.e. from file).
21
- /// It's purpose is to be attached to the main PAG (almost) seamlessly.
20
+ /// Represents the SVFIR of a function loaded externally (i.e. from file).
21
+ /// It's purpose is to be attached to the main SVFIR (almost) seamlessly.
22
22
  class ExternalPAG
23
23
  {
24
24
  private:
@@ -28,17 +28,17 @@ private:
28
28
  functionToExternalPAGEntries;
29
29
  static Map<const SVFFunction*, PAGNode *> functionToExternalPAGReturns;
30
30
 
31
- /// Name of the function this external PAG represents.
31
+ /// Name of the function this external SVFIR represents.
32
32
  std::string functionName;
33
33
 
34
- /// Value nodes in this external PAG, represented by NodeIDs
35
- /// because we will rebuild these nodes in the main PAG.
34
+ /// Value nodes in this external SVFIR, represented by NodeIDs
35
+ /// because we will rebuild these nodes in the main SVFIR.
36
36
  NodeSet valueNodes;
37
- /// Object nodes in this external PAG, represented by NodeIDs
38
- /// because we will rebuild these nodes in the main PAG.
37
+ /// Object nodes in this external SVFIR, represented by NodeIDs
38
+ /// because we will rebuild these nodes in the main SVFIR.
39
39
  NodeSet objectNodes;
40
- /// Edges in this external PAG, represented by the parts of an Edge because
41
- /// we will rebuild these edges in the main PAG.
40
+ /// Edges in this external SVFIR, represented by the parts of an Edge because
41
+ /// we will rebuild these edges in the main SVFIR.
42
42
  OrderedSet<std::tuple<NodeID, NodeID, std::string, int>> edges;
43
43
 
44
44
  // Special nodes.
@@ -82,15 +82,15 @@ public:
82
82
  ~ExternalPAG() {}
83
83
 
84
84
  /// Parses command line arguments and attaches external PAGs to main
85
- /// PAG.
85
+ /// SVFIR.
86
86
  static void initialise(SVFModule* svfModule);
87
87
 
88
- /// Connects callsite if a external PAG implementing the relevant function
88
+ /// Connects callsite if a external SVFIR implementing the relevant function
89
89
  /// has been added.
90
90
  /// Returns true on success, false otherwise.
91
91
  static bool connectCallsiteToExternalPAG(CallSite *cs);
92
92
 
93
- /// Whether an external PAG implementing function exists.
93
+ /// Whether an external SVFIR implementing function exists.
94
94
  static bool hasExternalPAG(const SVFFunction* function);
95
95
 
96
96
  /// Dump individual PAGs of specified functions. Currently to outs().
@@ -136,7 +136,7 @@ public:
136
136
  }
137
137
 
138
138
  /// Adds (creates new equivalents) all the nodes and edges of this extpag to
139
- /// the main PAG. function is used as a key for future lookups.
139
+ /// the main SVFIR. function is used as a key for future lookups.
140
140
  /// Returns true on success, false otherwise (incl. if it already exists).
141
141
  bool addExternalPAG(const SVFFunction* function);
142
142
 
@@ -108,7 +108,7 @@ public:
108
108
  }
109
109
  } equalGEdge;
110
110
 
111
- inline bool operator==(const GenericEdge<NodeType>* rhs) const
111
+ virtual inline bool operator==(const GenericEdge<NodeType>* rhs) const
112
112
  {
113
113
  return (rhs->edgeFlag == this->edgeFlag && rhs->getSrcID() == this->getSrcID()
114
114
  && rhs->getDstID() == this->getDstID());
@@ -41,8 +41,8 @@ class ICFGNode;
41
41
  class RetBlockNode;
42
42
  class CallPE;
43
43
  class RetPE;
44
- class PAGEdge;
45
- class PAGNode;
44
+ class SVFStmt;
45
+ class SVFVar;
46
46
  class VFGNode;
47
47
 
48
48
  /*!
@@ -67,7 +67,7 @@ public:
67
67
  typedef Set<const CallPE *> CallPESet;
68
68
  typedef Set<const RetPE *> RetPESet;
69
69
  typedef std::list<const VFGNode*> VFGNodeList;
70
- typedef std::list<const PAGEdge*> PAGEdgeList;
70
+ typedef std::list<const SVFStmt*> PAGEdgeList;
71
71
 
72
72
  public:
73
73
  /// Constructor
@@ -113,7 +113,7 @@ public:
113
113
 
114
114
  /// Set/Get methods of VFGNodes
115
115
  ///@{
116
- inline void addPAGEdge(const PAGEdge *edge)
116
+ inline void addPAGEdge(const SVFStmt *edge)
117
117
  {
118
118
  pagEdges.push_back(edge);
119
119
  }
@@ -252,7 +252,7 @@ class FunEntryBlockNode : public InterBlockNode
252
252
  {
253
253
 
254
254
  public:
255
- typedef std::vector<const PAGNode *> FormalParmNodeVec;
255
+ typedef std::vector<const SVFVar *> FormalParmNodeVec;
256
256
  private:
257
257
  FormalParmNodeVec FPNodes;
258
258
  public:
@@ -271,7 +271,7 @@ public:
271
271
  }
272
272
 
273
273
  /// Add formal parameters
274
- inline void addFormalParms(const PAGNode *fp)
274
+ inline void addFormalParms(const SVFVar *fp)
275
275
  {
276
276
  FPNodes.push_back(fp);
277
277
  }
@@ -310,7 +310,7 @@ class FunExitBlockNode : public InterBlockNode
310
310
 
311
311
  private:
312
312
  const SVFFunction* fun;
313
- const PAGNode *formalRet;
313
+ const SVFVar *formalRet;
314
314
  public:
315
315
  FunExitBlockNode(NodeID id, const SVFFunction* f);
316
316
 
@@ -321,13 +321,13 @@ public:
321
321
  }
322
322
 
323
323
  /// Return actual return parameter
324
- inline const PAGNode *getFormalRet() const
324
+ inline const SVFVar *getFormalRet() const
325
325
  {
326
326
  return formalRet;
327
327
  }
328
328
 
329
329
  /// Add actual return parameter
330
- inline void addFormalRet(const PAGNode *fr)
330
+ inline void addFormalRet(const SVFVar *fr)
331
331
  {
332
332
  formalRet = fr;
333
333
  }
@@ -365,7 +365,7 @@ class CallBlockNode : public InterBlockNode
365
365
  {
366
366
 
367
367
  public:
368
- typedef std::vector<const PAGNode *> ActualParmVFGNodeVec;
368
+ typedef std::vector<const SVFVar *> ActualParmVFGNodeVec;
369
369
  private:
370
370
  const Instruction* cs;
371
371
  const RetBlockNode* ret;
@@ -421,7 +421,7 @@ public:
421
421
  }
422
422
 
423
423
  /// Add actual parameters
424
- inline void addActualParms(const PAGNode *ap)
424
+ inline void addActualParms(const SVFVar *ap)
425
425
  {
426
426
  APNodes.push_back(ap);
427
427
  }
@@ -461,7 +461,7 @@ class RetBlockNode : public InterBlockNode
461
461
 
462
462
  private:
463
463
  const Instruction* cs;
464
- const PAGNode *actualRet;
464
+ const SVFVar *actualRet;
465
465
  const CallBlockNode* callBlockNode;
466
466
  public:
467
467
  RetBlockNode(NodeID id, const Instruction* c, CallBlockNode* cb) :
@@ -482,13 +482,13 @@ public:
482
482
  return callBlockNode;
483
483
  }
484
484
  /// Return actual return parameter
485
- inline const PAGNode *getActualRet() const
485
+ inline const SVFVar *getActualRet() const
486
486
  {
487
487
  return actualRet;
488
488
  }
489
489
 
490
490
  /// Add actual return parameter
491
- inline void addActualRet(const PAGNode *ar)
491
+ inline void addActualRet(const SVFVar *ar)
492
492
  {
493
493
  actualRet = ar;
494
494
  }