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
This commit is contained in:
Jay Foad 2009-05-21 19:48:58 +00:00
parent ef854af5bd
commit c5d73afa48

View File

@ -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];
}