From 9cb331f9fbfe7ab516b046040b2b6b405ab579bd Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Thu, 8 May 2014 21:52:23 +0000 Subject: StringMap support for move-only values. llvm-svn: 208359 --- llvm/unittests/ADT/StringMapTest.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'llvm/unittests/ADT/StringMapTest.cpp') diff --git a/llvm/unittests/ADT/StringMapTest.cpp b/llvm/unittests/ADT/StringMapTest.cpp index b6d41bcc8e5..42a03886180 100644 --- a/llvm/unittests/ADT/StringMapTest.cpp +++ b/llvm/unittests/ADT/StringMapTest.cpp @@ -218,4 +218,20 @@ TEST_F(StringMapTest, NonDefaultConstructable) { ASSERT_EQ(iter->second.i, 123); } +struct MoveOnly { + int i; + MoveOnly(int i) : i(i) {} + MoveOnly(MoveOnly&&) = default; + MoveOnly(const MoveOnly&) = delete; + MoveOnly &operator=(MoveOnly&&) = default; + MoveOnly &operator=(const MoveOnly&) = delete; +}; + +TEST_F(StringMapTest, MoveOnlyKey) { + StringMap t; + t.GetOrCreateValue("Test", MoveOnly(42)); + StringRef Key = "Test"; + StringMapEntry::Create(Key.begin(), Key.end(), MoveOnly(42))->Destroy(); +} + } // end anonymous namespace -- cgit v1.2.3