diff options
-rw-r--r-- | llvm/include/llvm/ADT/STLExtras.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h index 7efd40e6c51..0c08f4009e9 100644 --- a/llvm/include/llvm/ADT/STLExtras.h +++ b/llvm/include/llvm/ADT/STLExtras.h @@ -1024,6 +1024,9 @@ class enumerator_iter using result_type = result_pair<R>; public: + explicit enumerator_iter(IterOfRange<R> EndIter) + : Result(std::numeric_limits<size_t>::max(), EndIter) { } + enumerator_iter(std::size_t Index, IterOfRange<R> Iter) : Result(Index, Iter) {} @@ -1031,7 +1034,7 @@ public: const result_type &operator*() const { return Result; } enumerator_iter<R> &operator++() { - assert(Result.Index != size_t(-1)); + assert(Result.Index != std::numeric_limits<size_t>::max()); ++Result.Iter; ++Result.Index; return *this; @@ -1061,7 +1064,7 @@ public: return enumerator_iter<R>(0, std::begin(TheRange)); } enumerator_iter<R> end() { - return enumerator_iter<R>(-1, std::end(TheRange)); + return enumerator_iter<R>(std::end(TheRange)); } private: |