From 85cde7d2f410353ee5c143ad931da571e9be11bf Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Sun, 10 Sep 2017 23:37:47 +0000 Subject: Revert "Fix PR34298 - Allow std::function with an incomplete return type." This reverts commit r312890 because the test case fails to compile for older versions of Clang that reject initializing a const object without a user defined constructor. Since this patch should go into 5.0.1, I want to keep it an atomic change, and will re-commit it with a fixed test case. llvm-svn: 312891 --- .../func.wrap.func.con/F_incomplete.pass.cpp | 37 +--------------------- 1 file changed, 1 insertion(+), 36 deletions(-) (limited to 'libcxx/test/std/utilities/function.objects') diff --git a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_incomplete.pass.cpp b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_incomplete.pass.cpp index 136b15b2a2a..c8f4178a26b 100644 --- a/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_incomplete.pass.cpp +++ b/libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/F_incomplete.pass.cpp @@ -16,7 +16,6 @@ // Allow incomplete argument types in the __is_callable check #include -#include struct X{ typedef std::function callback_type; @@ -25,40 +24,6 @@ private: callback_type _cb; }; -struct IncompleteReturnType { - std::function fn; -}; - - -int called = 0; -IncompleteReturnType test_fn() { - ++called; - IncompleteReturnType I; - return I; -} - -// See llvm.org/PR34298 -void test_pr34298() +int main() { - static_assert(std::is_copy_constructible::value, ""); - static_assert(std::is_copy_assignable::value, ""); - { - IncompleteReturnType X; - X.fn = test_fn; - const IncompleteReturnType& CX = X; - IncompleteReturnType X2 = CX; - assert(X2.fn); - assert(called == 0); - X2.fn(); - assert(called == 1); - } - { - const IncompleteReturnType Empty; - IncompleteReturnType X2 = Empty; - assert(!X2.fn); - } -} - -int main() { - test_pr34298(); } -- cgit v1.2.3