diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-06-17 11:52:22 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-06-17 11:52:22 +0000 |
commit | 5f6c7cfa931a9f9a154c67927f5dec7e928c23d6 (patch) | |
tree | 32a77288bc4247cbabf4a27ccd95a00036a7e618 /include | |
parent | 8dffa4a106b52d893388c94c24e365e14c468b7c (diff) | |
download | llvm-5f6c7cfa931a9f9a154c67927f5dec7e928c23d6.tar.gz llvm-5f6c7cfa931a9f9a154c67927f5dec7e928c23d6.tar.bz2 llvm-5f6c7cfa931a9f9a154c67927f5dec7e928c23d6.tar.xz |
SmallVector: return a valid iterator for the rare case of inserting an empty range into a SmallVector.
Patch by Johannes Schaub!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158643 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/ADT/SmallVector.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/llvm/ADT/SmallVector.h b/include/llvm/ADT/SmallVector.h index 973e0284ab..02eee62290 100644 --- a/include/llvm/ADT/SmallVector.h +++ b/include/llvm/ADT/SmallVector.h @@ -542,7 +542,7 @@ public: iterator insert(iterator I, size_type NumToInsert, const T &Elt) { if (I == this->end()) { // Important special case for empty vector. append(NumToInsert, Elt); - return this->end()-1; + return NumToInsert == 0 ? this->end() : this->end()-1; } // Convert iterator to elt# to avoid invalidating iterator when we reserve() @@ -590,7 +590,7 @@ public: iterator insert(iterator I, ItTy From, ItTy To) { if (I == this->end()) { // Important special case for empty vector. append(From, To); - return this->end()-1; + return From == To ? this->end() : this->end()-1; } size_t NumToInsert = std::distance(From, To); |