[NFC][sanitizer] Extend ArrayRef
authorVitaly Buka <vitalybuka@google.com>
Wed, 31 May 2023 02:19:04 +0000 (19:19 -0700)
committerVitaly Buka <vitalybuka@google.com>
Wed, 31 May 2023 02:19:33 +0000 (19:19 -0700)
compiler-rt/lib/sanitizer_common/sanitizer_common.h

index afd1a78..d43e066 100644 (file)
@@ -1085,12 +1085,19 @@ class ArrayRef {
   ArrayRef() {}
   ArrayRef(T *begin, T *end) : begin_(begin), end_(end) {}
 
-  T *begin() { return begin_; }
-  T *end() { return end_; }
+  template <typename C>
+  ArrayRef(const C &src) : begin_(src.begin()), end_(src.end()) {}
+
+  const T *begin() const { return begin_; }
+  const T *end() const { return end_; }
+
+  bool empty() const { return begin_ == end_; }
+
+  uptr size() const { return end_ - begin_; }
 
  private:
-  T *begin_ = nullptr;
-  T *end_ = nullptr;
+  const T *begin_ = nullptr;
+  const T *end_ = nullptr;
 };
 
 }  // namespace __sanitizer