From b04c795e24654fc57a94a9032f54ac72e10d0b5e Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Fri, 18 Nov 2016 21:54:38 +0000 Subject: [PATCH] [libcxx] [test] D26815: Fix an assumption about the state of moved-from std::functions. The Standard doesn't provide any guarantees beyond "valid but unspecified" for moved-from std::functions. libcxx moves from small targets and leaves them there, while MSVC's STL empties out the source. Mark these assertions as libcxx-specific. llvm-svn: 287382 --- .../func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp index 387b371..9d5681a 100644 --- a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp +++ b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp @@ -132,7 +132,7 @@ int main() assert(A::count == 1); assert(f2.target() == nullptr); assert(f2.target()); - assert(f.target()); // f is unchanged because the target is small + LIBCPP_ASSERT(f.target()); // f is unchanged because the target is small } { // Test that moving a function constructed from a function pointer @@ -146,7 +146,7 @@ int main() std::function f2(std::move(f)); assert(f2.target() == nullptr); assert(f2.target()); - assert(f.target()); // f is unchanged because the target is small + LIBCPP_ASSERT(f.target()); // f is unchanged because the target is small } #endif // TEST_STD_VER >= 11 } -- 2.7.4