The rationale here is that it's hard to write loops containing vector erases and
it only shows up if the vector contains non-trivial objects leading to crashes
when forming them out of garbage memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160854
91177308-0d34-0410-b5e6-
96231b3b80d8
}
iterator erase(iterator I) {
+ assert(I >= this->begin() && I < this->end() && "Iterator out of bounds");
iterator N = I;
// Shift all elts down one.
this->move(I+1, this->end(), I);
}
iterator erase(iterator S, iterator E) {
+ assert(S >= this->begin() && S <= E && E <= this->end() &&
+ "Iterator range out of bounds");
iterator N = S;
// Shift all elts down.
iterator I = this->move(E, this->end(), S);