svf-lib 1.0.993 → 1.0.994

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 (71) hide show
  1. package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
  2. package/SVF-osx/Release-build/lib/libSvf.a +0 -0
  3. package/SVF-osx/include/CFL/CFGNormalizer.h +6 -3
  4. package/SVF-osx/include/CFL/CFLAlias.h +26 -15
  5. package/SVF-osx/include/CFL/CFLGrammar.h +30 -16
  6. package/SVF-osx/include/CFL/CFLSolver.h +9 -5
  7. package/SVF-osx/include/CFL/GrammarBuilder.h +10 -7
  8. package/SVF-osx/include/CUDD/cudd.h +20 -11
  9. package/SVF-osx/include/CUDD/cuddInt.h +48 -31
  10. package/SVF-osx/include/CUDD/epd.h +35 -29
  11. package/SVF-osx/include/CUDD/mtr.h +4 -3
  12. package/SVF-osx/include/CUDD/st.h +7 -4
  13. package/SVF-osx/include/CUDD/util.h +6 -6
  14. package/SVF-osx/include/FastCluster/fastcluster.h +13 -12
  15. package/SVF-osx/include/Graphs/CFLGraph.h +16 -10
  16. package/SVF-osx/include/Graphs/CHG.h +2 -2
  17. package/SVF-osx/include/Graphs/ConsG.h +2 -1
  18. package/SVF-osx/include/Graphs/GenericGraph.h +3 -3
  19. package/SVF-osx/include/Graphs/ICFG.h +2 -2
  20. package/SVF-osx/include/Graphs/ICFGEdge.h +16 -9
  21. package/SVF-osx/include/Graphs/ICFGNode.h +2 -2
  22. package/SVF-osx/include/Graphs/IRGraph.h +10 -6
  23. package/SVF-osx/include/Graphs/PTACallGraph.h +1 -1
  24. package/SVF-osx/include/Graphs/SVFG.h +4 -3
  25. package/SVF-osx/include/Graphs/SVFGNode.h +14 -8
  26. package/SVF-osx/include/Graphs/ThreadCallGraph.h +4 -2
  27. package/SVF-osx/include/Graphs/VFG.h +45 -39
  28. package/SVF-osx/include/Graphs/VFGNode.h +8 -4
  29. package/SVF-osx/include/MSSA/MemSSA.h +1 -1
  30. package/SVF-osx/include/MTA/FSMPTA.h +55 -44
  31. package/SVF-osx/include/MTA/LockAnalysis.h +11 -9
  32. package/SVF-osx/include/MTA/LockResultValidator.h +64 -54
  33. package/SVF-osx/include/MTA/MHP.h +17 -13
  34. package/SVF-osx/include/MTA/MTAResultValidator.h +24 -20
  35. package/SVF-osx/include/MTA/PCG.h +9 -7
  36. package/SVF-osx/include/MTA/TCT.h +27 -22
  37. package/SVF-osx/include/MemoryModel/LocationSet.h +5 -3
  38. package/SVF-osx/include/MemoryModel/PersistentPointsToCache.h +28 -13
  39. package/SVF-osx/include/MemoryModel/PersistentPointsToDS.h +2 -2
  40. package/SVF-osx/include/MemoryModel/PointerAnalysis.h +5 -4
  41. package/SVF-osx/include/MemoryModel/PointsTo.h +8 -2
  42. package/SVF-osx/include/MemoryModel/SVFIR.h +6 -5
  43. package/SVF-osx/include/MemoryModel/SVFStatements.h +65 -45
  44. package/SVF-osx/include/MemoryModel/SVFVariables.h +6 -5
  45. package/SVF-osx/include/MemoryModel/SymbolTableInfo.h +18 -15
  46. package/SVF-osx/include/SABER/PathCondAllocator.h +14 -7
  47. package/SVF-osx/include/SABER/ProgSlice.h +2 -1
  48. package/SVF-osx/include/SABER/SaberSVFGBuilder.h +1 -1
  49. package/SVF-osx/include/SABER/SrcSnkDDA.h +8 -4
  50. package/SVF-osx/include/SVF-FE/CHGBuilder.h +4 -2
  51. package/SVF-osx/include/SVF-FE/DataFlowUtil.h +10 -9
  52. package/SVF-osx/include/SVF-FE/IRAnnotator.h +8 -8
  53. package/SVF-osx/include/SVF-FE/LLVMModule.h +13 -12
  54. package/SVF-osx/include/SVF-FE/LLVMUtil.h +4 -4
  55. package/SVF-osx/include/SVF-FE/SVFIRBuilder.h +13 -9
  56. package/SVF-osx/include/SVF-FE/SymbolTableBuilder.h +3 -2
  57. package/SVF-osx/include/Util/BDDExpr.h +32 -16
  58. package/SVF-osx/include/Util/BasicTypes.h +77 -25
  59. package/SVF-osx/include/Util/CoreBitVector.h +2 -1
  60. package/SVF-osx/include/Util/CxtStmt.h +37 -27
  61. package/SVF-osx/include/Util/ExeState.h +42 -22
  62. package/SVF-osx/include/Util/ExtAPI.h +1 -1
  63. package/SVF-osx/include/Util/NodeIDAllocator.h +7 -4
  64. package/SVF-osx/include/Util/Options.h +3 -3
  65. package/SVF-osx/include/Util/SVFBasicTypes.h +49 -40
  66. package/SVF-osx/include/Util/SVFModule.h +5 -5
  67. package/SVF-osx/include/Util/SVFUtil.h +12 -9
  68. package/SVF-osx/include/Util/Z3Expr.h +191 -144
  69. package/SVF-osx/include/WPA/Andersen.h +11 -11
  70. package/SVF-osx/include/WPA/VersionedFlowSensitive.h +4 -1
  71. package/package.json +1 -1
@@ -77,18 +77,20 @@ extern "C" {
77
77
 
78
78
  ******************************************************************************/
79
79
  #ifdef EPD_BIG_ENDIAN
80
- struct IeeeDoubleStruct { /* BIG_ENDIAN */
81
- unsigned int sign: 1;
82
- unsigned int exponent: 11;
83
- unsigned int mantissa0: 20;
84
- unsigned int mantissa1: 32;
80
+ struct IeeeDoubleStruct /* BIG_ENDIAN */
81
+ {
82
+ unsigned int sign: 1;
83
+ unsigned int exponent: 11;
84
+ unsigned int mantissa0: 20;
85
+ unsigned int mantissa1: 32;
85
86
  };
86
87
  #else
87
- struct IeeeDoubleStruct { /* LITTLE_ENDIAN */
88
- unsigned int mantissa1: 32;
89
- unsigned int mantissa0: 20;
90
- unsigned int exponent: 11;
91
- unsigned int sign: 1;
88
+ struct IeeeDoubleStruct /* LITTLE_ENDIAN */
89
+ {
90
+ unsigned int mantissa1: 32;
91
+ unsigned int mantissa0: 20;
92
+ unsigned int exponent: 11;
93
+ unsigned int sign: 1;
92
94
  };
93
95
  #endif
94
96
 
@@ -102,20 +104,22 @@ struct IeeeDoubleStruct { /* LITTLE_ENDIAN */
102
104
 
103
105
  ******************************************************************************/
104
106
  #ifdef EPD_BIG_ENDIAN
105
- struct IeeeNanStruct { /* BIG_ENDIAN */
106
- unsigned int sign: 1;
107
- unsigned int exponent: 11;
108
- unsigned int quiet_bit: 1;
109
- unsigned int mantissa0: 19;
110
- unsigned int mantissa1: 32;
107
+ struct IeeeNanStruct /* BIG_ENDIAN */
108
+ {
109
+ unsigned int sign: 1;
110
+ unsigned int exponent: 11;
111
+ unsigned int quiet_bit: 1;
112
+ unsigned int mantissa0: 19;
113
+ unsigned int mantissa1: 32;
111
114
  };
112
115
  #else
113
- struct IeeeNanStruct { /* LITTLE_ENDIAN */
114
- unsigned int mantissa1: 32;
115
- unsigned int mantissa0: 19;
116
- unsigned int quiet_bit: 1;
117
- unsigned int exponent: 11;
118
- unsigned int sign: 1;
116
+ struct IeeeNanStruct /* LITTLE_ENDIAN */
117
+ {
118
+ unsigned int mantissa1: 32;
119
+ unsigned int mantissa0: 19;
120
+ unsigned int quiet_bit: 1;
121
+ unsigned int exponent: 11;
122
+ unsigned int sign: 1;
119
123
  };
120
124
  #endif
121
125
 
@@ -128,15 +132,17 @@ struct IeeeNanStruct { /* LITTLE_ENDIAN */
128
132
  SeeAlso []
129
133
 
130
134
  ******************************************************************************/
131
- union EpTypeUnion {
132
- double value;
133
- struct IeeeDoubleStruct bits;
134
- struct IeeeNanStruct nan;
135
+ union EpTypeUnion
136
+ {
137
+ double value;
138
+ struct IeeeDoubleStruct bits;
139
+ struct IeeeNanStruct nan;
135
140
  };
136
141
 
137
- struct EpDoubleStruct {
138
- union EpTypeUnion type;
139
- int exponent;
142
+ struct EpDoubleStruct
143
+ {
144
+ union EpTypeUnion type;
145
+ int exponent;
140
146
  };
141
147
 
142
148
  /*---------------------------------------------------------------------------*/
@@ -123,7 +123,8 @@ typedef unsigned int MtrHalfWord;
123
123
  typedef unsigned short MtrHalfWord;
124
124
  #endif
125
125
 
126
- typedef struct MtrNode {
126
+ typedef struct MtrNode
127
+ {
127
128
  MtrHalfWord flags;
128
129
  MtrHalfWord low;
129
130
  MtrHalfWord size;
@@ -166,9 +167,9 @@ extern MtrNode * Mtr_InitGroupTree (int lower, int size);
166
167
  extern MtrNode * Mtr_MakeGroup (MtrNode *root, unsigned int low, unsigned int high, unsigned int flags);
167
168
  extern MtrNode * Mtr_FindGroup (MtrNode *root, unsigned int low, unsigned int high);
168
169
  extern void Mtr_ReorderGroups(MtrNode *treenode, int *permutation);
169
-
170
+
170
171
  extern void Mtr_PrintGroups (MtrNode *root, int silent);
171
- extern int Mtr_PrintGroupedOrder(MtrNode * root, int *invperm, FILE *fp);
172
+ extern int Mtr_PrintGroupedOrder(MtrNode * root, int *invperm, FILE *fp);
172
173
 
173
174
  /**AutomaticEnd***************************************************************/
174
175
 
@@ -50,14 +50,16 @@ extern "C" {
50
50
  /*---------------------------------------------------------------------------*/
51
51
 
52
52
  typedef struct st_table_entry st_table_entry;
53
- struct st_table_entry {
53
+ struct st_table_entry
54
+ {
54
55
  char *key;
55
56
  char *record;
56
57
  st_table_entry *next;
57
58
  };
58
59
 
59
60
  typedef struct st_table st_table;
60
- struct st_table {
61
+ struct st_table
62
+ {
61
63
  int (*compare)(const char *, const char *);
62
64
  int (*hash)(char *, int);
63
65
  int num_bins;
@@ -69,7 +71,8 @@ struct st_table {
69
71
  };
70
72
 
71
73
  typedef struct st_generator st_generator;
72
- struct st_generator {
74
+ struct st_generator
75
+ {
73
76
  st_table *table;
74
77
  st_table_entry *entry;
75
78
  int index;
@@ -201,7 +204,7 @@ typedef int (*ST_PFICPI)(char *, int); /* type for hash function */
201
204
  /*---------------------------------------------------------------------------*/
202
205
 
203
206
  extern st_table *st_init_table_with_params (ST_PFICPCP, ST_PFICPI, int, int, double, int);
204
- extern st_table *st_init_table (ST_PFICPCP, ST_PFICPI);
207
+ extern st_table *st_init_table (ST_PFICPCP, ST_PFICPI);
205
208
  extern void st_free_table (st_table *);
206
209
  extern int st_lookup (st_table *, void *, void *);
207
210
  extern int st_lookup_int (st_table *, void *, int *);
@@ -109,15 +109,15 @@ extern int pclose();
109
109
  # include <stdlib.h>
110
110
  #else
111
111
  # ifndef _IBMR2
112
- extern VOID_OR_INT abort(), exit();
112
+ extern VOID_OR_INT abort(), exit();
113
113
  # endif
114
114
  # if !defined(MNEMOSYNE) && !defined(_IBMR2)
115
- extern VOID_OR_INT free (void *);
116
- extern VOID_OR_CHAR *malloc(), *realloc();
115
+ extern VOID_OR_INT free (void *);
116
+ extern VOID_OR_CHAR *malloc(), *realloc();
117
117
  # endif
118
- extern char *getenv();
119
- extern int system();
120
- extern double atof();
118
+ extern char *getenv();
119
+ extern int system();
120
+ extern double atof();
121
121
  #endif
122
122
 
123
123
 
@@ -62,18 +62,19 @@ void cutree_cdist(int n, const int* merge, double* height, double cdist, int* la
62
62
  // 1 = invalid method
63
63
  //
64
64
  int hclust_fast(int n, double* distmat, int method, int* merge, double* height);
65
- enum hclust_fast_methods {
66
- // single link with the minimum spanning tree algorithm (Rohlf, 1973)
67
- HCLUST_METHOD_SINGLE = 0,
68
- // complete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
69
- HCLUST_METHOD_COMPLETE = 1,
70
- // omplete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
71
- HCLUST_METHOD_AVERAGE = 2,
72
- // median link with the generic algorithm (Müllner, 2011)
73
- HCLUST_METHOD_MEDIAN = 3,
74
- // To indicate to try all methods and pick the best.
75
- HCLUST_METHOD_SVF_BEST = 4
65
+ enum hclust_fast_methods
66
+ {
67
+ // single link with the minimum spanning tree algorithm (Rohlf, 1973)
68
+ HCLUST_METHOD_SINGLE = 0,
69
+ // complete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
70
+ HCLUST_METHOD_COMPLETE = 1,
71
+ // omplete link with the nearest-neighbor-chain algorithm (Murtagh, 1984)
72
+ HCLUST_METHOD_AVERAGE = 2,
73
+ // median link with the generic algorithm (Müllner, 2011)
74
+ HCLUST_METHOD_MEDIAN = 3,
75
+ // To indicate to try all methods and pick the best.
76
+ HCLUST_METHOD_SVF_BEST = 4
76
77
  };
77
-
78
+
78
79
 
79
80
  #endif
@@ -81,13 +81,16 @@ public:
81
81
  ~CFLGraph() override = default;
82
82
 
83
83
  /// Build graph by copying nodes and edges from any graph inherited from GenericGraph
84
- template<class N, class E>
85
- void build(GenericGraph<N,E>* graph){
86
- for(auto it = graph->begin(); it!= graph->end(); it++){
84
+ template<class N, class E>
85
+ void build(GenericGraph<N,E>* graph)
86
+ {
87
+ for(auto it = graph->begin(); it!= graph->end(); it++)
88
+ {
87
89
  CFLNode* node = new CFLNode((*it).first);
88
90
  addCFLNode((*it).first, node);
89
91
  }
90
- for(auto it = graph->begin(); it!= graph->end(); it++){
92
+ for(auto it = graph->begin(); it!= graph->end(); it++)
93
+ {
91
94
  N* node = (*it).second;
92
95
  for(E* edge : node->getOutEdges())
93
96
  {
@@ -97,18 +100,21 @@ public:
97
100
  }
98
101
 
99
102
  /// Build Bidirectional graph by copying nodes and edges from any graph inherited from GenericGraph
100
- template<class N, class E>
101
- void buildBigraph(GenericGraph<N,E>* graph){
102
- for(auto it = graph->begin(); it!= graph->end(); it++){
103
+ template<class N, class E>
104
+ void buildBigraph(GenericGraph<N,E>* graph)
105
+ {
106
+ for(auto it = graph->begin(); it!= graph->end(); it++)
107
+ {
103
108
  CFLNode* node = new CFLNode((*it).first);
104
109
  addCFLNode((*it).first, node);
105
110
  }
106
- for(auto it = graph->begin(); it!= graph->end(); it++){
111
+ for(auto it = graph->begin(); it!= graph->end(); it++)
112
+ {
107
113
  N* node = (*it).second;
108
114
  for(E* edge : node->getOutEdges())
109
115
  {
110
116
  addCFLEdge(getGNode(edge->getSrcID()), getGNode(edge->getDstID()), edge->getEdgeKind());
111
- std::string key = "";
117
+ std::string key = "";
112
118
  for (auto &i : this->label2SymMap)
113
119
  {
114
120
  if (i.second == edge->getEdgeKind())
@@ -134,7 +140,7 @@ public:
134
140
 
135
141
  /// Build graph from file
136
142
  void build(std::string filename);
137
-
143
+
138
144
  /// Build graph from Dot
139
145
  void buildFromDot(std::string filename);
140
146
 
@@ -25,7 +25,7 @@
25
25
  *
26
26
  * Created on: Apr 13, 2016
27
27
  * Author: Xiaokang Fan
28
- *
28
+ *
29
29
  * Created on: Aug 24, 2019
30
30
  * Author: Mohamad Barbar
31
31
  */
@@ -207,7 +207,7 @@ private:
207
207
  typedef GenericGraph<CHNode,CHEdge> GenericCHGraphTy;
208
208
  class CHGraph: public CommonCHGraph, public GenericCHGraphTy
209
209
  {
210
- friend class CHGBuilder;
210
+ friend class CHGBuilder;
211
211
 
212
212
  public:
213
213
  typedef Set<const CHNode*> CHNodeSetTy;
@@ -166,7 +166,8 @@ public:
166
166
  auto eit = LoadCGEdgeSet.find(&edge);
167
167
  return *eit;
168
168
  }
169
- else{
169
+ else
170
+ {
170
171
  assert(false && "no other kind!");
171
172
  return nullptr;
172
173
  }
@@ -157,8 +157,8 @@ public:
157
157
  /// Destructor
158
158
  virtual ~GenericNode()
159
159
  {
160
- for (auto * edge : OutEdges)
161
- delete edge;
160
+ for (auto * edge : OutEdges)
161
+ delete edge;
162
162
  }
163
163
 
164
164
  /// Get ID
@@ -354,7 +354,7 @@ public:
354
354
  void destroy()
355
355
  {
356
356
  for (auto &entry : IDToNodeMap)
357
- delete entry.second;
357
+ delete entry.second;
358
358
  }
359
359
  /// Iterators
360
360
  //@{
@@ -46,7 +46,7 @@ typedef GenericGraph<ICFGNode,ICFGEdge> GenericICFGTy;
46
46
  class ICFG : public GenericICFGTy
47
47
  {
48
48
 
49
- friend class ICFGBuilder;
49
+ friend class ICFGBuilder;
50
50
 
51
51
  public:
52
52
 
@@ -182,7 +182,7 @@ public:
182
182
  //@}
183
183
 
184
184
  private:
185
-
185
+
186
186
  /// Get/Add IntraBlock ICFGNode
187
187
  inline IntraICFGNode* getIntraBlock(const Instruction* inst)
188
188
  {
@@ -134,16 +134,19 @@ public:
134
134
  }
135
135
  //@}
136
136
 
137
- const Value* getCondition() const{
137
+ const Value* getCondition() const
138
+ {
138
139
  return conditionVar;
139
140
  }
140
141
 
141
- s32_t getSuccessorCondValue() const{
142
+ s32_t getSuccessorCondValue() const
143
+ {
142
144
  assert(getCondition() && "this is not a conditional branch edge");
143
145
  return branchCondVal;
144
146
  }
145
147
 
146
- void setBranchCondition(const Value* c, s32_t bVal){
148
+ void setBranchCondition(const Value* c, s32_t bVal)
149
+ {
147
150
  conditionVar = c;
148
151
  branchCondVal = bVal;
149
152
  }
@@ -166,7 +169,7 @@ class CallCFGEdge : public ICFGEdge
166
169
  {
167
170
 
168
171
  private:
169
- const Instruction* cs;
172
+ const Instruction* cs;
170
173
  std::vector<const CallPE*> callPEs;
171
174
  public:
172
175
  /// Constructor
@@ -180,11 +183,13 @@ public:
180
183
  return cs;
181
184
  }
182
185
  /// Add call parameter edge to this CallCFGEdge
183
- inline void addCallPE(const CallPE* callPE){
186
+ inline void addCallPE(const CallPE* callPE)
187
+ {
184
188
  callPEs.push_back(callPE);
185
189
  }
186
190
  /// Add get parameter edge to this CallCFGEdge
187
- inline const std::vector<const CallPE*>& getCallPEs() const{
191
+ inline const std::vector<const CallPE*>& getCallPEs() const
192
+ {
188
193
  return callPEs;
189
194
  }
190
195
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -212,7 +217,7 @@ class RetCFGEdge : public ICFGEdge
212
217
  {
213
218
 
214
219
  private:
215
- const Instruction* cs;
220
+ const Instruction* cs;
216
221
  const RetPE* retPE;
217
222
  public:
218
223
  /// Constructor
@@ -226,12 +231,14 @@ public:
226
231
  return cs;
227
232
  }
228
233
  /// Add call parameter edge to this CallCFGEdge
229
- inline void addRetPE(const RetPE* ret){
234
+ inline void addRetPE(const RetPE* ret)
235
+ {
230
236
  assert(retPE==nullptr && "we can only have one retPE for each RetCFGEdge");
231
237
  retPE = ret;
232
238
  }
233
239
  /// Add get parameter edge to this CallCFGEdge
234
- inline const RetPE* getRetPE() const{
240
+ inline const RetPE* getRetPE() const
241
+ {
235
242
  return retPE;
236
243
  }
237
244
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -145,7 +145,7 @@ class GlobalICFGNode : public ICFGNode
145
145
  public:
146
146
  GlobalICFGNode(NodeID id) : ICFGNode(id, GlobalBlock)
147
147
  {
148
- bb = nullptr;
148
+ bb = nullptr;
149
149
  }
150
150
 
151
151
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
@@ -385,7 +385,7 @@ public:
385
385
  /// Return callsite
386
386
  inline const RetICFGNode* getRetICFGNode() const
387
387
  {
388
- assert(ret && "RetICFGNode not set?");
388
+ assert(ret && "RetICFGNode not set?");
389
389
  return ret;
390
390
  }
391
391
 
@@ -21,7 +21,7 @@
21
21
  //===----------------------------------------------------------------------===//
22
22
 
23
23
  /*
24
- * IRGraph.h
24
+ * IRGraph.h
25
25
  *
26
26
  * Created on: Nov 1, 2013
27
27
  * Author: Yulei Sui
@@ -81,17 +81,20 @@ protected:
81
81
  inline void mapValueToEdge(const Value *V, SVFStmt *edge)
82
82
  {
83
83
  auto inserted = valueToEdgeMap.emplace(V, SVFStmtSet{edge});
84
- if (!inserted.second) {
84
+ if (!inserted.second)
85
+ {
85
86
  inserted.first->second.emplace(edge);
86
87
  }
87
88
  }
88
89
  /// get MemObj according to LLVM value
89
- inline const MemObj* getMemObj(const Value* val) const{
90
+ inline const MemObj* getMemObj(const Value* val) const
91
+ {
90
92
  return symInfo->getObj(symInfo->getObjSym(val));
91
93
  }
92
-
94
+
93
95
  public:
94
- IRGraph(bool buildFromFile): fromFile(buildFromFile), nodeNumAfterPAGBuild(0), totalPTAPAGEdge(0){
96
+ IRGraph(bool buildFromFile): fromFile(buildFromFile), nodeNumAfterPAGBuild(0), totalPTAPAGEdge(0)
97
+ {
95
98
  symInfo = SymbolTableInfo::SymbolInfo();
96
99
  // insert dummy value if a correct value cannot be found
97
100
  valueToEdgeMap[nullptr] = SVFStmtSet();
@@ -108,7 +111,8 @@ public:
108
111
  inline const SVFStmtSet& getValueEdges(const Value *V)
109
112
  {
110
113
  auto it = valueToEdgeMap.find(V);
111
- if (it == valueToEdgeMap.end()) {
114
+ if (it == valueToEdgeMap.end())
115
+ {
112
116
  //special empty set
113
117
  return valueToEdgeMap.at(nullptr);
114
118
  }
@@ -322,7 +322,7 @@ public:
322
322
  assert(it!=funToCallGraphNodeMap.end() && "call graph node not found!!");
323
323
  return it->second;
324
324
  }
325
-
325
+
326
326
  //@}
327
327
 
328
328
  /// Add/Get CallSiteID
@@ -251,7 +251,8 @@ public:
251
251
  }
252
252
 
253
253
  /// Return total SVFG node number
254
- inline u32_t getSVFGNodeNum() const {
254
+ inline u32_t getSVFGNodeNum() const
255
+ {
255
256
  return nodeNum;
256
257
  }
257
258
 
@@ -428,8 +429,8 @@ protected:
428
429
  }
429
430
 
430
431
  /// Add memory SSA PHI SVFG node
431
- inline void addIntraMSSAPHISVFGNode(ICFGNode* BlockICFGNode, const Map<u32_t,const MRVer*>::const_iterator opVerBegin,
432
- const Map<u32_t,const MRVer*>::const_iterator opVerEnd, const MRVer* resVer, const NodeID nodeId)
432
+ inline void addIntraMSSAPHISVFGNode(ICFGNode* BlockICFGNode, const Map<u32_t,const MRVer*>::const_iterator opVerBegin,
433
+ const Map<u32_t,const MRVer*>::const_iterator opVerEnd, const MRVer* resVer, const NodeID nodeId)
433
434
  {
434
435
  IntraMSSAPHISVFGNode* sNode = new IntraMSSAPHISVFGNode(nodeId, resVer);
435
436
  addSVFGNode(sNode, BlockICFGNode);
@@ -94,7 +94,7 @@ class FormalINSVFGNode : public MRSVFGNode
94
94
  {
95
95
  private:
96
96
  const MRVer* ver;
97
- const FunEntryICFGNode* funEntryNode;
97
+ const FunEntryICFGNode* funEntryNode;
98
98
 
99
99
  public:
100
100
  /// Constructor
@@ -102,7 +102,7 @@ public:
102
102
  {
103
103
  cpts = resVer->getMR()->getPointsTo();
104
104
  ver = resVer;
105
- funEntryNode = funEntry;
105
+ funEntryNode = funEntry;
106
106
  }
107
107
  inline const MRVer* getMRVer() const
108
108
  {
@@ -139,7 +139,7 @@ class FormalOUTSVFGNode : public MRSVFGNode
139
139
  {
140
140
  private:
141
141
  const MRVer* ver;
142
- const FunExitICFGNode* funExitNode;
142
+ const FunExitICFGNode* funExitNode;
143
143
 
144
144
  public:
145
145
  /// Constructor
@@ -279,7 +279,7 @@ public:
279
279
  typedef Map<u32_t,const MRVer*> OPVers;
280
280
 
281
281
  protected:
282
- const MRVer* ver;
282
+ const MRVer* ver;
283
283
  OPVers opVers;
284
284
 
285
285
  public:
@@ -287,9 +287,9 @@ public:
287
287
  MSSAPHISVFGNode(NodeID id, const MRVer* resVer,VFGNodeK k = MPhi): MRSVFGNode(id, k)
288
288
  {
289
289
  cpts = resVer->getMR()->getPointsTo();
290
- ver = resVer;
290
+ ver = resVer;
291
291
  }
292
- /// Ver
292
+ /// Ver
293
293
  inline const MRVer* getResVer() const
294
294
  {
295
295
  return ver;
@@ -473,8 +473,14 @@ public:
473
473
  : VFGNode(id, DummyVProp), object(object), version(version)
474
474
  { }
475
475
 
476
- NodeID getObject(void) const { return object; }
477
- Version getVersion(void) const { return version; }
476
+ NodeID getObject(void) const
477
+ {
478
+ return object;
479
+ }
480
+ Version getVersion(void) const
481
+ {
482
+ return version;
483
+ }
478
484
 
479
485
  /// Methods to support type inquiry through isa, cast, and dyn_cast:
480
486
  //@{
@@ -67,7 +67,8 @@ public:
67
67
  }
68
68
  //@}
69
69
 
70
- virtual const std::string toString() const {
70
+ virtual const std::string toString() const
71
+ {
71
72
  std::string str;
72
73
  raw_string_ostream rawstr(str);
73
74
  rawstr << "ThreadForkEdge ";
@@ -106,7 +107,8 @@ public:
106
107
  return edge->getEdgeKind() == PTACallGraphEdge::TDJoinEdge;
107
108
  }
108
109
 
109
- virtual const std::string toString() const {
110
+ virtual const std::string toString() const
111
+ {
110
112
  std::string str;
111
113
  raw_string_ostream rawstr(str);
112
114
  rawstr << "ThreadJoinEdge ";