diff options
author | Owen Anderson <resistor@mac.com> | 2009-04-22 07:16:54 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-04-22 07:16:54 +0000 |
commit | ecf6910f41c3f9c0cb9b614ddb21e33b7d849f23 (patch) | |
tree | 4616522101dff9842906389fffa73e3951ec07ba | |
parent | 43e6f8c08b908fd622f881e5f90e3d9316e79138 (diff) | |
download | bcm5719-llvm-ecf6910f41c3f9c0cb9b614ddb21e33b7d849f23.tar.gz bcm5719-llvm-ecf6910f41c3f9c0cb9b614ddb21e33b7d849f23.zip |
Fix for PR3946, in which SmallVector could behave strangely in corner cases.
Patch by Peter Johnson.
llvm-svn: 69785
-rw-r--r-- | llvm/include/llvm/ADT/SmallVector.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/include/llvm/ADT/SmallVector.h b/llvm/include/llvm/ADT/SmallVector.h index d5fef4828e6..bf4960ad144 100644 --- a/llvm/include/llvm/ADT/SmallVector.h +++ b/llvm/include/llvm/ADT/SmallVector.h @@ -302,7 +302,7 @@ public: append(End-NumToInsert, End); // Copy the existing elements that get replaced. - std::copy(I, OldEnd-NumToInsert, I+NumToInsert); + std::copy_backward(I, OldEnd-NumToInsert, OldEnd); std::fill_n(I, NumToInsert, Elt); return I; @@ -351,7 +351,7 @@ public: append(End-NumToInsert, End); // Copy the existing elements that get replaced. - std::copy(I, OldEnd-NumToInsert, I+NumToInsert); + std::copy_backward(I, OldEnd-NumToInsert, OldEnd); std::copy(From, To, I); return I; |