================
@@ -86,20 +90,30 @@ class UnsafeBufferUsageEntitySummary final : public 
EntitySummary {
   const EntityPointerLevelSet UnsafeBuffers;
 
   friend class UnsafeBufferUsageTUSummaryExtractor;
+  friend UnsafeBufferUsageEntitySummary
+      buildUnsafeBufferUsageEntitySummary(EntityPointerLevelSet);
+  friend llvm::iterator_range<EntityPointerLevelSet::const_iterator>
+  getUnsafeBuffers(const UnsafeBufferUsageEntitySummary &);
 
   UnsafeBufferUsageEntitySummary(EntityPointerLevelSet UnsafeBuffers)
       : EntitySummary(), UnsafeBuffers(std::move(UnsafeBuffers)) {}
 
 public:
-  SummaryName getSummaryName() const override {
-    return SummaryName{"UnsafeBufferUsage"};
-  };
+  static constexpr llvm::StringLiteral Name = "UnsafeBufferUsage";
+
+  SummaryName getSummaryName() const override { return summaryName(); };
 
   bool operator==(const EntityPointerLevelSet &Other) const {
     return UnsafeBuffers == Other;
   }
 
+  bool operator==(const UnsafeBufferUsageEntitySummary &Other) const {
+    return UnsafeBuffers == Other.UnsafeBuffers;
+  }
+
   bool empty() const { return UnsafeBuffers.empty(); }
+
+  static SummaryName summaryName() { return SummaryName{Name.data()}; }
----------------
steakhal wrote:

Grabbing the inner null-terminated ptr has the downside that to construct a new 
std::string, it needs to scan for that terminator again.

By using the explicit `str` conversion function that directly passes the 
`size()` internally, thus it's more efficient. Not that it matters, but it's 
also more conventional.
```suggestion
  static SummaryName summaryName() { return SummaryName{Name.str()}; }
```

https://github.com/llvm/llvm-project/pull/187156
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to