From c5d73afa4801d3cb7abea0244c2e9e687564fd6c Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Thu, 21 May 2009 19:48:58 +0000 Subject: [PATCH] Tighten up the asserts in SmallVector::operator[](). If this causes any new assertion failures that I didn't catch in testing, the fix is usually to change "&v[0]" to "v.data()" for some SmallVector v. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72221 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/SmallVector.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h index de5648fe852..f59a438d3eb 100644 --- a/include/llvm/ADT/SmallVector.h +++ b/include/llvm/ADT/SmallVector.h @@ -121,14 +121,12 @@ public: const_reverse_iterator rend() const { return const_reverse_iterator(begin());} - /* These asserts could be "Begin + idx < End", but there are lots of places - in llvm where we use &v[v.size()] instead of v.end(). */ reference operator[](unsigned idx) { - assert (Begin + idx <= End); + assert (Begin + idx < End); return Begin[idx]; } const_reference operator[](unsigned idx) const { - assert (Begin + idx <= End); + assert (Begin + idx < End); return Begin[idx]; }