From b93d3dbc1fc963834d51168d34a76815d2906391 Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Mon, 19 Jan 2015 03:25:33 +0000 Subject: [tinyptrvector] Add in a MutableArrayRef implicit conversion operator to complement the ArrayRef implicit conversion operator. llvm-svn: 226428 --- llvm/unittests/ADT/TinyPtrVectorTest.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'llvm/unittests/ADT/TinyPtrVectorTest.cpp') diff --git a/llvm/unittests/ADT/TinyPtrVectorTest.cpp b/llvm/unittests/ADT/TinyPtrVectorTest.cpp index a402e8be9df..294dfac0c63 100644 --- a/llvm/unittests/ADT/TinyPtrVectorTest.cpp +++ b/llvm/unittests/ADT/TinyPtrVectorTest.cpp @@ -438,3 +438,24 @@ TEST(TinyPtrVectorTest, ArrayRefCtorTest) { EXPECT_TRUE(V[i] == data[i]); } } + +TEST(TinyPtrVectorTest, MutableArrayRefTest) { + int data_array[128]; + std::vector data; + + for (unsigned i = 0, e = 128; i != e; ++i) { + data_array[i] = 324 - int(i); + data.push_back(&data_array[i]); + } + + TinyPtrVector V(data); + EXPECT_TRUE(V.size() == 128); + EXPECT_FALSE(V.empty()); + + MutableArrayRef mut_array = V; + for (unsigned i = 0, e = 128; i != e; ++i) { + EXPECT_TRUE(mut_array[i] == data[i]); + mut_array[i] = 324 + mut_array[i]; + EXPECT_TRUE(mut_array[i] == (324 + data[i])); + } +} -- cgit v1.2.3