svf-lib 1.0.1605 → 1.0.1607

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.
@@ -507,12 +507,6 @@ public:
507
507
  void print(std::ostream& os) const override;
508
508
  };
509
509
 
510
- /// [FOR DEBUG ONLY, DON'T USE IT UNSIDE `svf`!]
511
- /// Converts an SVFType to corresponding LLVM::Type, then get the string
512
- /// representation of it. Use it only when you are debugging. Don't use
513
- /// it in any SVF algorithm because it relies on information stored in LLVM bc.
514
- std::string dumpLLVMType(const SVFType* svfType);
515
-
516
510
  // TODO: be explicit that this is a pair of 32-bit unsigneds?
517
511
  template <> struct Hash<NodePair>
518
512
  {
@@ -255,18 +255,14 @@ public:
255
255
  return sourceLoc;
256
256
  }
257
257
 
258
- /// \note Use `os<<SVFvalue` or `svfValue.print(os)` when possible to avoid
259
- /// string concatenation.
258
+ /// Needs to be implemented by a SVF front end
260
259
  std::string toString() const;
261
260
 
262
- virtual void print(OutStream& os) const = 0;
263
-
264
261
  /// Overloading operator << for dumping ICFG node ID
265
262
  //@{
266
263
  friend OutStream& operator<<(OutStream &os, const SVFValue &value)
267
264
  {
268
- value.print(os);
269
- return os;
265
+ return os << value.toString();
270
266
  }
271
267
  //@}
272
268
  };
@@ -335,8 +331,6 @@ public:
335
331
  return node->getKind() == SVFFunc;
336
332
  }
337
333
 
338
- void print(OutStream& os) const override;
339
-
340
334
  inline SVFLoopAndDomInfo* getLoopAndDomInfo()
341
335
  {
342
336
  return loopAndDom;
@@ -532,8 +526,6 @@ public:
532
526
  return node->getKind() == SVFBB;
533
527
  }
534
528
 
535
- void print(OutStream& os) const override;
536
-
537
529
  inline const std::vector<const SVFInstruction*>& getInstructionList() const
538
530
  {
539
531
  return allInsts;
@@ -619,8 +611,6 @@ public:
619
611
  node->getKind() == SVFVCall;
620
612
  }
621
613
 
622
- void print(OutStream& os) const override;
623
-
624
614
  inline const SVFBasicBlock* getParent() const
625
615
  {
626
616
  return bb;
@@ -817,7 +807,6 @@ public:
817
807
  node->getKind() == SVFBlackHole;
818
808
  }
819
809
 
820
- void print(OutStream& os) const override;
821
810
  };
822
811
 
823
812
  class SVFGlobalValue : public SVFConstant
@@ -845,8 +834,6 @@ public:
845
834
  }
846
835
  SVFGlobalValue() = delete;
847
836
 
848
- void print(OutStream& os) const override;
849
-
850
837
  inline const SVFValue* getDefGlobalForMultipleModule() const
851
838
  {
852
839
  if(realDefGlobal==nullptr)
@@ -880,8 +867,6 @@ public:
880
867
  }
881
868
  SVFArgument() = delete;
882
869
 
883
- void print(OutStream& os) const override;
884
-
885
870
  inline const SVFFunction* getParent() const
886
871
  {
887
872
  return fun;
@@ -916,8 +901,6 @@ public:
916
901
  }
917
902
  SVFConstantData() = delete;
918
903
 
919
- void print(OutStream& os) const override;
920
-
921
904
  static inline bool classof(const SVFValue *node)
922
905
  {
923
906
  return node->getKind() == SVFConstData ||
@@ -950,8 +933,6 @@ public:
950
933
  }
951
934
  SVFConstantInt() = delete;
952
935
 
953
- void print(OutStream& os) const override;
954
-
955
936
  static inline bool classof(const SVFValue *node)
956
937
  {
957
938
  return node->getKind() == SVFConstInt;
@@ -985,8 +966,6 @@ public:
985
966
  }
986
967
  SVFConstantFP() = delete;
987
968
 
988
- void print(OutStream& os) const override;
989
-
990
969
  inline double getFPValue () const
991
970
  {
992
971
  return dval;
@@ -1013,8 +992,6 @@ public:
1013
992
  }
1014
993
  SVFConstantNullPtr() = delete;
1015
994
 
1016
- void print(OutStream& os) const override;
1017
-
1018
995
  static inline bool classof(const SVFValue *node)
1019
996
  {
1020
997
  return node->getKind() == SVFNullPtr;
@@ -1037,8 +1014,6 @@ public:
1037
1014
  }
1038
1015
  SVFBlackHoleValue() = delete;
1039
1016
 
1040
- void print(OutStream& os) const override;
1041
-
1042
1017
  static inline bool classof(const SVFValue *node)
1043
1018
  {
1044
1019
  return node->getKind() == SVFBlackHole;
@@ -1064,8 +1039,6 @@ public:
1064
1039
  {
1065
1040
  return node->getKind() == SVFOther || node->getKind() == SVFMetaAsValue;
1066
1041
  }
1067
-
1068
- void print(OutStream& os) const override;
1069
1042
  };
1070
1043
 
1071
1044
  /*
@@ -1090,8 +1063,6 @@ public:
1090
1063
  {
1091
1064
  return node->getKind() == SVFMetaAsValue;
1092
1065
  }
1093
-
1094
- void print(OutStream& os) const override;
1095
1066
  };
1096
1067
 
1097
1068
 
@@ -171,9 +171,10 @@ public:
171
171
  static inline GEdgeFlag makeEdgeFlagWithAddionalOpnd(GEdgeKind k,
172
172
  const SVFVar* var)
173
173
  {
174
- Var2LabelMap::const_iterator iter = var2LabelMap.find(var);
175
- u64_t label = (iter != var2LabelMap.end()) ? iter->second
176
- : multiOpndLabelCounter++;
174
+ auto it_inserted = var2LabelMap.emplace(var, multiOpndLabelCounter);
175
+ if (it_inserted.second)
176
+ ++multiOpndLabelCounter;
177
+ u64_t label = it_inserted.first->second;
177
178
  return (label << EdgeKindMaskBits) | k;
178
179
  }
179
180
 
@@ -182,9 +183,10 @@ public:
182
183
  static inline GEdgeFlag makeEdgeFlagWithCallInst(GEdgeKind k,
183
184
  const ICFGNode* cs)
184
185
  {
185
- Inst2LabelMap::const_iterator iter = inst2LabelMap.find(cs);
186
- u64_t label = (iter != inst2LabelMap.end()) ? iter->second
187
- : callEdgeLabelCounter++;
186
+ auto it_inserted = inst2LabelMap.emplace(cs, callEdgeLabelCounter);
187
+ if (it_inserted.second)
188
+ ++callEdgeLabelCounter;
189
+ u64_t label = it_inserted.first->second;
188
190
  return (label << EdgeKindMaskBits) | k;
189
191
  }
190
192
 
@@ -193,9 +195,10 @@ public:
193
195
  static inline GEdgeFlag makeEdgeFlagWithStoreInst(GEdgeKind k,
194
196
  const ICFGNode* store)
195
197
  {
196
- Inst2LabelMap::const_iterator iter = inst2LabelMap.find(store);
197
- u64_t label = (iter != inst2LabelMap.end()) ? iter->second
198
- : storeEdgeLabelCounter++;
198
+ auto it_inserted = inst2LabelMap.emplace(store, storeEdgeLabelCounter);
199
+ if (it_inserted.second)
200
+ ++storeEdgeLabelCounter;
201
+ u64_t label = it_inserted.first->second;
199
202
  return (label << EdgeKindMaskBits) | k;
200
203
  }
201
204
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-lib",
3
- "version": "1.0.1605",
3
+ "version": "1.0.1607",
4
4
  "description": "SVF's npm support",
5
5
  "main": "index.js",
6
6
  "scripts": {