svf-lib 1.0.1817 → 1.0.1819

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 (108) hide show
  1. package/SVF-linux/Release-build/svf/libSvfCore.a +0 -0
  2. package/SVF-linux/svf/include/MemoryModel/PointerAnalysis.h +0 -9
  3. package/SVF-linux/svf/include/Util/SVFStat.h +3 -0
  4. package/SVF-osx/Release-build/svf/libSvfCore.a +0 -0
  5. package/SVF-osx/Release-build/svf-llvm/libSvfLLVM.a +0 -0
  6. package/SVF-osx/svf/include/AbstractExecution/BoundedZ3Expr.h +0 -2
  7. package/SVF-osx/svf/include/AbstractExecution/ConsExeState.h +0 -8
  8. package/SVF-osx/svf/include/AbstractExecution/ExeState.h +0 -8
  9. package/SVF-osx/svf/include/AbstractExecution/IntervalExeState.h +0 -7
  10. package/SVF-osx/svf/include/AbstractExecution/IntervalValue.h +0 -3
  11. package/SVF-osx/svf/include/AbstractExecution/NumericLiteral.h +0 -2
  12. package/SVF-osx/svf/include/AbstractExecution/RelExeState.h +0 -1
  13. package/SVF-osx/svf/include/AbstractExecution/RelationSolver.h +0 -1
  14. package/SVF-osx/svf/include/AbstractExecution/SVFIR2ConsExeState.h +0 -1
  15. package/SVF-osx/svf/include/AbstractExecution/SVFIR2ItvExeState.h +0 -4
  16. package/SVF-osx/svf/include/AbstractExecution/SingleAbsValue.h +0 -2
  17. package/SVF-osx/svf/include/AbstractExecution/SymState.h +0 -4
  18. package/SVF-osx/svf/include/AbstractExecution/WTO.h +0 -5
  19. package/SVF-osx/svf/include/CFL/CFGrammar.h +0 -4
  20. package/SVF-osx/svf/include/CFL/CFLAlias.h +0 -1
  21. package/SVF-osx/svf/include/CFL/CFLGraphBuilder.h +0 -1
  22. package/SVF-osx/svf/include/CFL/CFLStat.h +0 -1
  23. package/SVF-osx/svf/include/CFL/CFLVF.h +0 -1
  24. package/SVF-osx/svf/include/DDA/ContextDDA.h +0 -1
  25. package/SVF-osx/svf/include/DDA/DDAClient.h +0 -5
  26. package/SVF-osx/svf/include/DDA/DDAPass.h +0 -1
  27. package/SVF-osx/svf/include/FastCluster/fastcluster.h +0 -1
  28. package/SVF-osx/svf/include/Graphs/CDG.h +0 -3
  29. package/SVF-osx/svf/include/Graphs/CFBasicBlockG.h +0 -3
  30. package/SVF-osx/svf/include/Graphs/CFLGraph.h +0 -1
  31. package/SVF-osx/svf/include/Graphs/CHG.h +2 -4
  32. package/SVF-osx/svf/include/Graphs/ConsGEdge.h +0 -5
  33. package/SVF-osx/svf/include/Graphs/ConsGNode.h +0 -1
  34. package/SVF-osx/svf/include/Graphs/DOTGraphTraits.h +0 -1
  35. package/SVF-osx/svf/include/Graphs/GenericGraph.h +0 -1
  36. package/SVF-osx/svf/include/Graphs/GraphPrinter.h +0 -3
  37. package/SVF-osx/svf/include/Graphs/GraphTraits.h +2 -2
  38. package/SVF-osx/svf/include/Graphs/ICFG.h +0 -1
  39. package/SVF-osx/svf/include/Graphs/ICFGNode.h +0 -3
  40. package/SVF-osx/svf/include/Graphs/ICFGStat.h +0 -2
  41. package/SVF-osx/svf/include/Graphs/IRGraph.h +0 -1
  42. package/SVF-osx/svf/include/Graphs/PTACallGraph.h +0 -3
  43. package/SVF-osx/svf/include/Graphs/SVFG.h +0 -2
  44. package/SVF-osx/svf/include/Graphs/SVFGEdge.h +0 -1
  45. package/SVF-osx/svf/include/Graphs/SVFGNode.h +0 -7
  46. package/SVF-osx/svf/include/Graphs/SVFGOPT.h +0 -3
  47. package/SVF-osx/svf/include/Graphs/SVFGStat.h +0 -2
  48. package/SVF-osx/svf/include/Graphs/ThreadCallGraph.h +0 -3
  49. package/SVF-osx/svf/include/Graphs/VFG.h +0 -2
  50. package/SVF-osx/svf/include/Graphs/VFGEdge.h +0 -3
  51. package/SVF-osx/svf/include/Graphs/VFGNode.h +0 -8
  52. package/SVF-osx/svf/include/MSSA/MSSAMuChi.h +0 -4
  53. package/SVF-osx/svf/include/MSSA/MemPartition.h +0 -1
  54. package/SVF-osx/svf/include/MSSA/MemRegion.h +0 -1
  55. package/SVF-osx/svf/include/MSSA/MemSSA.h +0 -1
  56. package/SVF-osx/svf/include/MTA/FSMPTA.h +0 -6
  57. package/SVF-osx/svf/include/MTA/LockAnalysis.h +0 -5
  58. package/SVF-osx/svf/include/MTA/MHP.h +0 -3
  59. package/SVF-osx/svf/include/MTA/MTA.h +0 -1
  60. package/SVF-osx/svf/include/MTA/MTAResultValidator.h +0 -2
  61. package/SVF-osx/svf/include/MTA/TCT.h +0 -1
  62. package/SVF-osx/svf/include/MemoryModel/AbstractPointsToDS.h +0 -2
  63. package/SVF-osx/svf/include/MemoryModel/AccessPath.h +0 -5
  64. package/SVF-osx/svf/include/MemoryModel/ConditionalPT.h +0 -5
  65. package/SVF-osx/svf/include/MemoryModel/PersistentPointsToDS.h +0 -1
  66. package/SVF-osx/svf/include/MemoryModel/PointerAnalysis.h +0 -10
  67. package/SVF-osx/svf/include/MemoryModel/PointerAnalysisImpl.h +0 -1
  68. package/SVF-osx/svf/include/MemoryModel/PointsTo.h +0 -1
  69. package/SVF-osx/svf/include/SABER/DoubleFreeChecker.h +0 -1
  70. package/SVF-osx/svf/include/SABER/ProgSlice.h +0 -1
  71. package/SVF-osx/svf/include/SABER/SaberCondAllocator.h +0 -4
  72. package/SVF-osx/svf/include/SABER/SaberSVFGBuilder.h +0 -1
  73. package/SVF-osx/svf/include/SVFIR/SVFIR.h +0 -2
  74. package/SVF-osx/svf/include/SVFIR/SVFStatements.h +0 -2
  75. package/SVF-osx/svf/include/SVFIR/SVFType.h +0 -2
  76. package/SVF-osx/svf/include/SVFIR/SVFValue.h +0 -3
  77. package/SVF-osx/svf/include/SVFIR/SVFVariables.h +0 -5
  78. package/SVF-osx/svf/include/SVFIR/SymbolTableInfo.h +0 -5
  79. package/SVF-osx/svf/include/Util/CDGBuilder.h +0 -8
  80. package/SVF-osx/svf/include/Util/CallGraphBuilder.h +0 -2
  81. package/SVF-osx/svf/include/Util/Casting.h +1 -2
  82. package/SVF-osx/svf/include/Util/CommandLine.h +0 -1
  83. package/SVF-osx/svf/include/Util/CxtStmt.h +0 -4
  84. package/SVF-osx/svf/include/Util/DPItem.h +0 -2
  85. package/SVF-osx/svf/include/Util/NodeIDAllocator.h +2 -2
  86. package/SVF-osx/svf/include/Util/PTAStat.h +0 -1
  87. package/SVF-osx/svf/include/Util/SCC.h +0 -2
  88. package/SVF-osx/svf/include/Util/SVFBugReport.h +0 -1
  89. package/SVF-osx/svf/include/Util/SVFStat.h +3 -1
  90. package/SVF-osx/svf/include/Util/SVFUtil.h +0 -1
  91. package/SVF-osx/svf/include/Util/ThreadAPI.h +0 -1
  92. package/SVF-osx/svf/include/Util/WorkList.h +0 -1
  93. package/SVF-osx/svf/include/Util/Z3Expr.h +0 -4
  94. package/SVF-osx/svf/include/Util/iterator.h +2 -2
  95. package/SVF-osx/svf/include/WPA/Andersen.h +0 -6
  96. package/SVF-osx/svf/include/WPA/AndersenPWC.h +0 -3
  97. package/SVF-osx/svf/include/WPA/WPAFSSolver.h +0 -5
  98. package/SVF-osx/svf/include/WPA/WPAPass.h +0 -2
  99. package/SVF-osx/svf/include/WPA/WPASolver.h +0 -2
  100. package/SVF-osx/svf/include/WPA/WPAStat.h +0 -1
  101. package/SVF-osx/svf-llvm/include/SVF-LLVM/BreakConstantExpr.h +0 -1
  102. package/SVF-osx/svf-llvm/include/SVF-LLVM/DCHG.h +0 -1
  103. package/SVF-osx/svf-llvm/include/SVF-LLVM/GEPTypeBridgeIterator.h +0 -3
  104. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMModule.h +0 -1
  105. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMUtil.h +0 -1
  106. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +0 -1
  107. package/SVF-osx/svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h +0 -1
  108. package/package.json +1 -1
@@ -115,7 +115,7 @@ nodes(const GraphType &G)
115
115
  }
116
116
  template <class GraphType>
117
117
  iter_range<typename GenericGraphTraits<Inverse<GraphType>>::nodes_iterator>
118
- inverse_nodes(const GraphType &G)
118
+ inverse_nodes(const GraphType &G)
119
119
  {
120
120
  return make_range(GenericGraphTraits<Inverse<GraphType>>::nodes_begin(G),
121
121
  GenericGraphTraits<Inverse<GraphType>>::nodes_end(G));
@@ -131,7 +131,7 @@ children(const typename GenericGraphTraits<GraphType>::NodeRef &G)
131
131
 
132
132
  template <class GraphType>
133
133
  iter_range<typename GenericGraphTraits<Inverse<GraphType>>::ChildIteratorType>
134
- inverse_children(const typename GenericGraphTraits<GraphType>::NodeRef &G)
134
+ inverse_children(const typename GenericGraphTraits<GraphType>::NodeRef &G)
135
135
  {
136
136
  return make_range(GenericGraphTraits<Inverse<GraphType>>::child_begin(G),
137
137
  GenericGraphTraits<Inverse<GraphType>>::child_end(G));
@@ -76,7 +76,6 @@ private:
76
76
  GlobalICFGNode* globalBlockNode; ///< unique basic block for all globals
77
77
  ICFGNodeToSVFLoopVec icfgNodeToSVFLoopVec; ///< map ICFG node to the SVF loops where it resides
78
78
 
79
-
80
79
  public:
81
80
  /// Constructor
82
81
  ICFG();
@@ -94,7 +94,6 @@ public:
94
94
  return bb;
95
95
  }
96
96
 
97
-
98
97
  /// Overloading operator << for dumping ICFG node ID
99
98
  //@{
100
99
  friend OutStream &operator<<(OutStream &o, const ICFGNode &node)
@@ -254,7 +253,6 @@ public:
254
253
  //@}
255
254
  };
256
255
 
257
-
258
256
  /*!
259
257
  * Function entry ICFGNode containing a set of FormalParmVFGNodes of a function
260
258
  */
@@ -480,7 +478,6 @@ public:
480
478
  virtual const std::string toString() const;
481
479
  };
482
480
 
483
-
484
481
  /*!
485
482
  * Return ICFGNode containing (at most one) ActualRetVFGNode at a callsite
486
483
  */
@@ -123,7 +123,6 @@ public:
123
123
  else if (SVFUtil::isa<FunExitICFGNode>(node))
124
124
  numOfExitNodes++;
125
125
 
126
-
127
126
  ICFGEdge::ICFGEdgeSetTy::iterator edgeIt =
128
127
  it->second->OutEdgeBegin();
129
128
  ICFGEdge::ICFGEdgeSetTy::iterator edgeEit =
@@ -161,4 +160,3 @@ public:
161
160
  } // End namespace SVF
162
161
 
163
162
  #endif /* INCLUDE_UTIL_ICFGSTAT_H_ */
164
-
@@ -27,7 +27,6 @@
27
27
  * Author: Yulei Sui
28
28
  */
29
29
 
30
-
31
30
  #ifndef IRGRAPH_H_
32
31
  #define IRGRAPH_H_
33
32
 
@@ -41,7 +41,6 @@ namespace SVF
41
41
  class PTACallGraphNode;
42
42
  class SVFModule;
43
43
 
44
-
45
44
  /*
46
45
  * Call Graph edge representing a calling relation between two functions
47
46
  * Multiple calls from function A to B are merged into one call edge
@@ -58,7 +57,6 @@ public:
58
57
  CallRetEdge,TDForkEdge,TDJoinEdge,HareParForEdge
59
58
  };
60
59
 
61
-
62
60
  private:
63
61
  CallInstSet directCalls;
64
62
  CallInstSet indirectCalls;
@@ -198,7 +196,6 @@ public:
198
196
  /// Return TRUE if this function can be reached from main.
199
197
  bool isReachableFromProgEntry() const;
200
198
 
201
-
202
199
  /// Overloading operator << for dumping ICFG node ID
203
200
  //@{
204
201
  friend OutStream& operator<< (OutStream &o, const PTACallGraphNode &node)
@@ -57,7 +57,6 @@ typedef PHIVFGNode PHISVFGNode;
57
57
  typedef IntraPHIVFGNode IntraPHISVFGNode;
58
58
  typedef InterPHIVFGNode InterPHISVFGNode;
59
59
 
60
-
61
60
  /*!
62
61
  * Sparse value flow graph
63
62
  * Each node stands for a definition, each edge stands for value flow relations
@@ -346,7 +345,6 @@ protected:
346
345
  }
347
346
  //@}
348
347
 
349
-
350
348
  /// Given a PAGNode, set/get its def SVFG node (definition of top level pointers)
351
349
  //@{
352
350
  inline void setDef(const PAGNode* pagNode, const SVFGNode* node)
@@ -198,7 +198,6 @@ public:
198
198
  virtual const std::string toString() const;
199
199
  };
200
200
 
201
-
202
201
  /*!
203
202
  * MHP SVFG edge representing indirect value-flows between
204
203
  * two memory access may-happen-in-parallel in multithreaded program
@@ -131,7 +131,6 @@ public:
131
131
  virtual const std::string toString() const;
132
132
  };
133
133
 
134
-
135
134
  /*
136
135
  * SVFG Node stands for return mu node (address-taken variables)
137
136
  */
@@ -173,7 +172,6 @@ public:
173
172
  virtual const std::string toString() const;
174
173
  };
175
174
 
176
-
177
175
  /*
178
176
  * SVFG Node stands for callsite mu node (address-taken variables)
179
177
  */
@@ -202,7 +200,6 @@ public:
202
200
  return ver;
203
201
  }
204
202
 
205
-
206
203
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
207
204
  //@{
208
205
  static inline bool classof(const ActualINSVFGNode *)
@@ -222,7 +219,6 @@ public:
222
219
  virtual const std::string toString() const;
223
220
  };
224
221
 
225
-
226
222
  /*
227
223
  * SVFG Node stands for callsite chi node (address-taken variables)
228
224
  */
@@ -269,7 +265,6 @@ public:
269
265
  virtual const std::string toString() const;
270
266
  };
271
267
 
272
-
273
268
  /*
274
269
  * SVFG Node stands for a memory ssa phi node or formalIn or ActualOut
275
270
  */
@@ -397,7 +392,6 @@ public:
397
392
  virtual const std::string toString() const;
398
393
  };
399
394
 
400
-
401
395
  /*
402
396
  * Inter MSSA PHI (formalIN/ActualOUT)
403
397
  */
@@ -507,7 +501,6 @@ private:
507
501
  const Version version;
508
502
  };
509
503
 
510
-
511
504
  } // End namespace SVF
512
505
 
513
506
  #endif /* INCLUDE_MSSA_SVFGNODE_H_ */
@@ -32,11 +32,9 @@
32
32
  *
33
33
  */
34
34
 
35
-
36
35
  #ifndef SVFGOPT_H_
37
36
  #define SVFGOPT_H_
38
37
 
39
-
40
38
  #include "Graphs/SVFG.h"
41
39
  #include "Util/WorkList.h"
42
40
 
@@ -345,7 +343,6 @@ private:
345
343
  }
346
344
  //@}
347
345
 
348
-
349
346
  NodeIDToNodeIDMap actualInToDefMap; ///< map actual-in to its def-site node
350
347
  NodeIDToNodeIDMap formalOutToDefMap; ///< map formal-out to its def-site node
351
348
  NodeBS defNodes; ///< preserved def nodes of formal-in/actual-out
@@ -32,7 +32,6 @@
32
32
  *
33
33
  */
34
34
 
35
-
36
35
  #ifndef SVFGSTAT_H_
37
36
  #define SVFGSTAT_H_
38
37
 
@@ -88,7 +87,6 @@ private:
88
87
  MemSSA* mssa;
89
88
  };
90
89
 
91
-
92
90
  class SVFGStat : public PTAStat
93
91
  {
94
92
  public:
@@ -153,7 +153,6 @@ public:
153
153
  typedef GenericNode<PTACallGraphNode, HareParForEdge>::GEdgeSetTy ParForEdgeSet;
154
154
  };
155
155
 
156
-
157
156
  /*!
158
157
  * Thread sensitive call graph
159
158
  */
@@ -197,7 +196,6 @@ public:
197
196
  /// Update join edge using pointer analysis results
198
197
  void updateJoinEdge(PointerAnalysis* pta);
199
198
 
200
-
201
199
  /// Get call graph edge via call instruction
202
200
  //@{
203
201
  /// whether this call instruction has a valid call graph edge
@@ -362,7 +360,6 @@ public:
362
360
  void addIndirectParForEdge(const CallICFGNode* cs, const SVFFunction* callee);
363
361
  //@}
364
362
 
365
-
366
363
  /// map call instruction to its CallGraphEdge map
367
364
  inline void addThreadForkEdgeSetMap(const CallICFGNode* cs, ThreadForkEdge* edge)
368
365
  {
@@ -30,7 +30,6 @@
30
30
  #ifndef INCLUDE_UTIL_VFG_H_
31
31
  #define INCLUDE_UTIL_VFG_H_
32
32
 
33
-
34
33
  #include "SVFIR/SVFIR.h"
35
34
  #include "Graphs/PTACallGraph.h"
36
35
  #include "Graphs/VFGNode.h"
@@ -83,7 +82,6 @@ public:
83
82
  typedef Set<const VFGNode*> GlobalVFGNodeSet;
84
83
  typedef Set<const PAGNode*> PAGNodeSet;
85
84
 
86
-
87
85
  protected:
88
86
  NodeID totalVFGNode;
89
87
  PAGNodeToDefMapTy PAGNodeToDefMap; ///< map a pag node to its definition SVG node
@@ -134,7 +134,6 @@ public:
134
134
  virtual const std::string toString() const;
135
135
  };
136
136
 
137
-
138
137
  /*!
139
138
  * SVFG edge representing direct value-flows
140
139
  */
@@ -169,7 +168,6 @@ public:
169
168
  virtual const std::string toString() const;
170
169
  };
171
170
 
172
-
173
171
  /*!
174
172
  * Intra SVFG edge representing direct intra-procedural value-flows
175
173
  */
@@ -204,7 +202,6 @@ public:
204
202
  virtual const std::string toString() const;
205
203
  };
206
204
 
207
-
208
205
  /*!
209
206
  * SVFG call edge representing direct value-flows from a caller to its callee at a callsite
210
207
  */
@@ -316,7 +316,6 @@ public:
316
316
  const std::string toString() const override;
317
317
  };
318
318
 
319
-
320
319
  /*!
321
320
  * VFGNode for compare instruction, e.g., bool b = (a!=c);
322
321
  */
@@ -388,7 +387,6 @@ public:
388
387
  const std::string toString() const override;
389
388
  };
390
389
 
391
-
392
390
  /*!
393
391
  * VFGNode for binary operator instructions, e.g., a = b + c;
394
392
  */
@@ -703,7 +701,6 @@ public:
703
701
  const std::string toString() const override;
704
702
  };
705
703
 
706
-
707
704
  /*
708
705
  * Intra LLVM PHI Node
709
706
  */
@@ -756,7 +753,6 @@ public:
756
753
  const std::string toString() const override;
757
754
  };
758
755
 
759
-
760
756
  class AddrVFGNode: public StmtVFGNode
761
757
  {
762
758
  private:
@@ -795,7 +791,6 @@ public:
795
791
  const std::string toString() const override;
796
792
  };
797
793
 
798
-
799
794
  class ArgumentVFGNode : public VFGNode
800
795
  {
801
796
 
@@ -891,7 +886,6 @@ public:
891
886
  const std::string toString() const override;
892
887
  };
893
888
 
894
-
895
889
  /*
896
890
  * ICFG Node stands for formal parameter node (top level pointers)
897
891
  */
@@ -1146,8 +1140,6 @@ private:
1146
1140
  const CallICFGNode* callInst;
1147
1141
  };
1148
1142
 
1149
-
1150
-
1151
1143
  /*!
1152
1144
  * Dummy Definition for undef and null pointers
1153
1145
  */
@@ -84,7 +84,6 @@ public:
84
84
  }
85
85
  };
86
86
 
87
-
88
87
  /*!
89
88
  * Indirect Memory Read
90
89
  * 1) LoadMU at each store instruction
@@ -269,7 +268,6 @@ public:
269
268
  }
270
269
  };
271
270
 
272
-
273
271
  /*!
274
272
  * RetMU is annotated at function return, representing memory objects returns to callers
275
273
  */
@@ -314,7 +312,6 @@ public:
314
312
  }
315
313
  };
316
314
 
317
-
318
315
  /*!
319
316
  * Indirect Memory Definition
320
317
  * 1) MSSACHI indirect memory object is modified
@@ -512,7 +509,6 @@ public:
512
509
  }
513
510
  };
514
511
 
515
-
516
512
  /*!
517
513
  *
518
514
  * StoreCHI is annotated at each store instruction, representing a memory object is modified here
@@ -32,7 +32,6 @@
32
32
  *
33
33
  */
34
34
 
35
-
36
35
  #ifndef DISNCTMRGENERATOR_H_
37
36
  #define DISNCTMRGENERATOR_H_
38
37
 
@@ -335,7 +335,6 @@ protected:
335
335
  /// Get Mod-Ref of a callee function
336
336
  virtual bool handleCallsiteModRef(NodeBS& mod, NodeBS& ref, const CallICFGNode* cs, const SVFFunction* fun);
337
337
 
338
-
339
338
  /// Add cpts to store/load
340
339
  //@{
341
340
  inline void addCPtsToStore(NodeBS& cpts, const StoreStmt *st, const SVFFunction* fun)
@@ -32,7 +32,6 @@
32
32
  * Journal of Systems and Software (JSS'16), Algorithm 3 in the paper
33
33
  */
34
34
 
35
-
36
35
  #ifndef MEMORYSSAPASS_H_
37
36
  #define MEMORYSSAPASS_H_
38
37
 
@@ -34,7 +34,6 @@
34
34
  #ifndef FSPTANALYSIS_H_
35
35
  #define FSPTANALYSIS_H_
36
36
 
37
-
38
37
  #include "WPA/FlowSensitive.h"
39
38
  #include "MSSA/SVFGBuilder.h"
40
39
  #include "MTA/LockAnalysis.h"
@@ -47,7 +46,6 @@ namespace SVF
47
46
  class MHP;
48
47
  class LockAnalysis;
49
48
 
50
-
51
49
  class SVFGNodeLockSpan
52
50
  {
53
51
  public:
@@ -173,7 +171,6 @@ private:
173
171
  Set<NodeIDPair> recordedges;
174
172
  Map<NodeIDPair, PointsTo> edge2pts;
175
173
 
176
-
177
174
  Map<const StmtSVFGNode*, SVFGNodeIDSet> prevset;
178
175
  Map<const StmtSVFGNode*, SVFGNodeIDSet> succset;
179
176
 
@@ -183,7 +180,6 @@ private:
183
180
  PairToBoolMap pairheadmap;
184
181
  PairToBoolMap pairtailmap;
185
182
 
186
-
187
183
  static const u32_t ADDEDGE_NOEDGE= 0;
188
184
  static const u32_t ADDEDGE_NONSPARSE= 1;
189
185
  static const u32_t ADDEDGE_ALLOPT= 2;
@@ -195,14 +191,12 @@ private:
195
191
 
196
192
  };
197
193
 
198
-
199
194
  /*!
200
195
  * Flow-sensitive pointer analysis for multithreaded programs
201
196
  */
202
197
  class FSMPTA : public FlowSensitive
203
198
  {
204
199
 
205
-
206
200
  public:
207
201
 
208
202
  /// Constructor
@@ -266,8 +266,6 @@ public:
266
266
  }
267
267
  //@}
268
268
 
269
-
270
-
271
269
  /// Check if one instruction's context stmt is in a lock span
272
270
  inline bool hasOneCxtInLockSpan(const SVFInstruction *I, LockSpan lspan) const
273
271
  {
@@ -299,7 +297,6 @@ public:
299
297
  return true;
300
298
  }
301
299
 
302
-
303
300
  /// Check if two Instructions are protected by common locks
304
301
  /// echo inst may have multiple cxt stmt
305
302
  /// we check whether every cxt stmt of instructions is protected by a common lock.
@@ -469,7 +466,6 @@ private:
469
466
  /// Map a statement to all its context-sensitive statements
470
467
  InstToCxtStmtSet instToCxtStmtSet;
471
468
 
472
-
473
469
  /// Context-sensitive locks
474
470
  CxtLockSet cxtLockset;
475
471
 
@@ -504,7 +500,6 @@ private:
504
500
  InstToInstSetMap instTocondCILocksMap;
505
501
  //@}
506
502
 
507
-
508
503
  public:
509
504
  double lockTime;
510
505
  u32_t numOfTotalQueries;
@@ -272,7 +272,6 @@ private:
272
272
  InstToThreadStmtSetMap instToTSMap; ///< Map an instruction to its ThreadStmtSet
273
273
  FuncPairToBool nonCandidateFuncMHPRelMap;
274
274
 
275
-
276
275
  public:
277
276
  u32_t numOfTotalQueries; ///< Total number of queries
278
277
  u32_t numOfMHPQueries; ///< Number of queries are answered as may-happen-in-parallel
@@ -280,8 +279,6 @@ public:
280
279
  double interleavingQueriesTime;
281
280
  };
282
281
 
283
-
284
-
285
282
  /*!
286
283
  *
287
284
  */
@@ -66,7 +66,6 @@ public:
66
66
  /// Destructor
67
67
  virtual ~MTA();
68
68
 
69
-
70
69
  /// We start the pass here
71
70
  virtual bool runOnModule(SVFIR* module);
72
71
  /// Compute MHP
@@ -148,8 +148,6 @@ private:
148
148
  //@}
149
149
  };
150
150
 
151
-
152
-
153
151
  /*!
154
152
  * \brief Validate the result of concurrent analysis.
155
153
  *
@@ -42,7 +42,6 @@ namespace SVF
42
42
 
43
43
  class TCTNode;
44
44
 
45
-
46
45
  /*
47
46
  * Thread creation edge represents a spawning relation between two context sensitive threads
48
47
  */
@@ -20,7 +20,6 @@
20
20
  //
21
21
  //===----------------------------------------------------------------------===//
22
22
 
23
-
24
23
  /// Contains abstract classes for:
25
24
  /// PTData: basic points-to data structure derived by all others.
26
25
  /// DiffPTData: PTData which only propagates new changes, not entire points-to sets.
@@ -39,7 +38,6 @@
39
38
  /// |
40
39
  /// MutableIncDFPTData
41
40
 
42
-
43
41
  /*
44
42
  * AbstractPointsToDS.h
45
43
  *
@@ -29,20 +29,16 @@
29
29
  *
30
30
  */
31
31
 
32
-
33
32
  #ifndef AccessPath_H_
34
33
  #define AccessPath_H_
35
34
 
36
-
37
35
  #include "SVFIR/SVFValue.h"
38
36
 
39
-
40
37
  namespace SVF
41
38
  {
42
39
 
43
40
  class SVFVar;
44
41
 
45
-
46
42
  /*
47
43
  * Location set represents a set of locations in a memory block with following offsets:
48
44
  * { offset + \sum_{i=0}^N (stride_i * j_i) | 0 \leq j_i < M_i }
@@ -145,7 +141,6 @@ public:
145
141
  /// Return element number of a type.
146
142
  u32_t getElementNum(const SVFType* type) const;
147
143
 
148
-
149
144
  bool addOffsetVarAndGepTypePair(const SVFVar* var, const SVFType* gepIterType);
150
145
 
151
146
  /// Return TRUE if this is a constant location set.
@@ -74,7 +74,6 @@ public:
74
74
  }
75
75
  ///@}
76
76
 
77
-
78
77
  inline CondVar& operator= (const CondVar& rhs)
79
78
  {
80
79
  if(*this!=rhs)
@@ -85,7 +84,6 @@ public:
85
84
  return *this;
86
85
  }
87
86
 
88
-
89
87
  /**
90
88
  * Less than implementation.
91
89
  */
@@ -296,7 +294,6 @@ private:
296
294
  ElementSet elements;
297
295
  };
298
296
 
299
-
300
297
  /*!
301
298
  * Conditional Points-to set
302
299
  */
@@ -400,7 +397,6 @@ public:
400
397
  return numElement()==0;
401
398
  }
402
399
 
403
-
404
400
  /// Overloading operators
405
401
  //@{
406
402
  inline CondPointsToSet<Cond>& operator=(
@@ -604,7 +600,6 @@ public:
604
600
  }
605
601
  //@}
606
602
 
607
-
608
603
  /// Overloading operator |=
609
604
  /// Merge CondPointsToSet of RHS into this one.
610
605
  inline bool operator |= (const CondPointsToSet<Cond>& rhs)
@@ -791,7 +791,6 @@ private:
791
791
  }
792
792
  ///@}
793
793
 
794
-
795
794
  private:
796
795
  UpdatedVarMap outUpdatedVarMap;
797
796
  UpdatedVarMap inUpdatedVarMap;
@@ -48,7 +48,6 @@ namespace SVF
48
48
 
49
49
  class CommonCHGraph;
50
50
 
51
- class TypeSystem;
52
51
  class SVFModule;
53
52
  class ICFG;
54
53
  class PTAStat;
@@ -86,7 +85,6 @@ public:
86
85
  PathS_DDA, ///< Guarded value-flow DDA
87
86
  Cxt_DDA, ///< context sensitive DDA
88
87
 
89
-
90
88
  Default_PTA ///< default pta without any analysis
91
89
  };
92
90
 
@@ -156,8 +154,6 @@ protected:
156
154
  ICFG* icfg;
157
155
  /// CHGraph
158
156
  CommonCHGraph *chgraph;
159
- /// TypeSystem
160
- TypeSystem *typeSystem;
161
157
 
162
158
  public:
163
159
  /// Get ICFG
@@ -433,12 +429,6 @@ public:
433
429
  virtual void resolveCPPIndCalls(const CallICFGNode* cs,
434
430
  const PointsTo& target,
435
431
  CallEdgeMap& newEdges);
436
-
437
- /// get TypeSystem
438
- const TypeSystem *getTypeSystem() const
439
- {
440
- return typeSystem;
441
- }
442
432
  };
443
433
 
444
434
  } // End namespace SVF
@@ -157,7 +157,6 @@ protected:
157
157
  return ptD.get();
158
158
  }
159
159
 
160
-
161
160
  /// Finalization of pointer analysis, and normalize points-to information to Bit Vector representation
162
161
  void finalize() override;
163
162
 
@@ -251,5 +251,4 @@ struct std::hash<SVF::PointsTo>
251
251
  }
252
252
  };
253
253
 
254
-
255
254
  #endif // POINTSTO_H_
@@ -64,7 +64,6 @@ public:
64
64
  /// Report file/close bugs
65
65
  void reportBug(ProgSlice* slice) override;
66
66
 
67
-
68
67
  /// Validate test cases for regression test purpose
69
68
  void testsValidation(ProgSlice* slice);
70
69
  void validateSuccessTests(ProgSlice* slice, const SVFFunction* fun);
@@ -60,7 +60,6 @@ public:
60
60
 
61
61
  typedef SaberCondAllocator::SVFGNodeToSVFGNodeSetMap SVFGNodeToSVFGNodeSetMap;
62
62
 
63
-
64
63
  /// Constructor
65
64
  ProgSlice(const SVFGNode* src, SaberCondAllocator* pa, const SVFG* graph):
66
65
  root(src), partialReachable(false), fullReachable(false), reachGlob(false),