Fix bug #20335 - memory leak when move-constructing a string with unequal allocator. Thanks to Thomas Koeppe for the report
llvm-svn: 213269
diff --git a/libcxx/test/strings/basic.string/string.cons/move_alloc.pass.cpp b/libcxx/test/strings/basic.string/string.cons/move_alloc.pass.cpp
index 4e8b038..1f96314 100644
--- a/libcxx/test/strings/basic.string/string.cons/move_alloc.pass.cpp
+++ b/libcxx/test/strings/basic.string/string.cons/move_alloc.pass.cpp
@@ -45,6 +45,16 @@
test(S("1"), A(5));
test(S("1234567890123456789012345678901234567890123456789012345678901234567890"), A(7));
}
+
+ int alloc_count = test_alloc_base::alloc_count;
+ {
+ typedef test_allocator<char> A;
+ typedef std::basic_string<char, std::char_traits<char>, A> S;
+ S s1 ( "Twas brillig, and the slivy toves did gyre and gymbal in the wabe" );
+ S s2 (std::move(s1), A(1));
+ }
+ assert ( test_alloc_base::alloc_count == alloc_count );
+
#if __cplusplus >= 201103L
{
typedef min_allocator<char> A;