summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp')
-rw-r--r--libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp b/libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp
index bac3edb7cdb..2063e4f1e9f 100644
--- a/libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp
+++ b/libcxx/test/std/utilities/any/any.class/any.assign/move.pass.cpp
@@ -40,10 +40,13 @@ void test_move_assign() {
a = std::move(a2);
assert(LHS::count == 1);
- assert(RHS::count == 2);
+ assert(RHS::count == 2 + a2.has_value());
+ LIBCPP_ASSERT(RHS::count == 2); // libc++ leaves the object empty
assertContains<RHS>(a, 2);
- assertEmpty<RHS>(a2);
+ if (a2.has_value())
+ assertContains<RHS>(a2, 0);
+ LIBCPP_ASSERT(!a2.has_value());
}
assert(LHS::count == 0);
assert(RHS::count == 0);
@@ -54,16 +57,19 @@ void test_move_assign_empty() {
assert(LHS::count == 0);
{
any a;
- any a2((LHS(1)));
+ any a2((LHS(1)));
assert(LHS::count == 1);
a = std::move(a2);
- assert(LHS::count == 1);
+ assert(LHS::count == 1 + a2.has_value());
+ LIBCPP_ASSERT(LHS::count == 1);
assertContains<LHS>(a, 1);
- assertEmpty<LHS>(a2);
+ if (a2.has_value())
+ assertContains<LHS>(a2, 0);
+ LIBCPP_ASSERT(!a2.has_value());
}
assert(LHS::count == 0);
{
OpenPOWER on IntegriCloud