summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/ADT/ArrayRef.h2
-rw-r--r--llvm/unittests/ADT/ArrayRefTest.cpp7
2 files changed, 8 insertions, 1 deletions
diff --git a/llvm/include/llvm/ADT/ArrayRef.h b/llvm/include/llvm/ADT/ArrayRef.h
index 75bb7d690cc..773c88f7c9f 100644
--- a/llvm/include/llvm/ADT/ArrayRef.h
+++ b/llvm/include/llvm/ADT/ArrayRef.h
@@ -430,7 +430,7 @@ namespace llvm {
std::copy(Data.begin(), Data.end(), this->begin());
}
- OwningArrayRef(OwningArrayRef &&Other) { *this = Other; }
+ OwningArrayRef(OwningArrayRef &&Other) { *this = std::move(Other); }
OwningArrayRef &operator=(OwningArrayRef &&Other) {
delete[] this->data();
diff --git a/llvm/unittests/ADT/ArrayRefTest.cpp b/llvm/unittests/ADT/ArrayRefTest.cpp
index a5609f89ff9..4f8275c4bb3 100644
--- a/llvm/unittests/ADT/ArrayRefTest.cpp
+++ b/llvm/unittests/ADT/ArrayRefTest.cpp
@@ -248,6 +248,13 @@ TEST(ArrayRefTest, makeArrayRef) {
EXPECT_TRUE(AR2.equals(AR2Ref));
}
+TEST(ArrayRefTest, OwningArrayRef) {
+ static const int A1[] = {0, 1};
+ OwningArrayRef<int> A(makeArrayRef(A1));
+ OwningArrayRef<int> B(std::move(A));
+ EXPECT_EQ(A.data(), nullptr);
+}
+
static_assert(is_trivially_copyable<ArrayRef<int>>::value,
"trivially copyable");
OpenPOWER on IntegriCloud