From b7332b04df5d50c92640c74cfeb138ecb7e3f7ae Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Tue, 20 Aug 2019 18:01:01 +0000 Subject: Remove upstream files and directories from vendor/libc++/dist that we do not use. This saves on repository space, and reduces the number of tree conflicts when merging. --- .../func.wrap.func.con/copy_move.pass.cpp | 165 --------------------- 1 file changed, 165 deletions(-) delete mode 100644 test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp (limited to 'test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp') diff --git a/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp b/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp deleted file mode 100644 index e9b399a2edd2..000000000000 --- a/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_move.pass.cpp +++ /dev/null @@ -1,165 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// - -// class function - -// function(const function& f); -// function(function&& f); // noexcept in C++20 - -#include -#include -#include -#include - -#include "test_macros.h" -#include "count_new.hpp" - -class A -{ - int data_[10]; -public: - static int count; - - A() - { - ++count; - for (int i = 0; i < 10; ++i) - data_[i] = i; - } - - A(const A&) {++count;} - - ~A() {--count;} - - int operator()(int i) const - { - for (int j = 0; j < 10; ++j) - i += data_[j]; - return i; - } -}; - -int A::count = 0; - -int g(int) {return 0;} - -int main() -{ - assert(globalMemCounter.checkOutstandingNewEq(0)); - { - std::function f = A(); - assert(A::count == 1); - assert(globalMemCounter.checkOutstandingNewEq(1)); - assert(f.target()); - assert(f.target() == 0); - std::function f2 = f; - assert(A::count == 2); - assert(globalMemCounter.checkOutstandingNewEq(2)); - assert(f2.target()); - assert(f2.target() == 0); - } - assert(A::count == 0); - assert(globalMemCounter.checkOutstandingNewEq(0)); - { - std::function f = g; - assert(globalMemCounter.checkOutstandingNewEq(0)); - assert(f.target()); - assert(f.target() == 0); - std::function f2 = f; - assert(globalMemCounter.checkOutstandingNewEq(0)); - assert(f2.target()); - assert(f2.target() == 0); - } - assert(globalMemCounter.checkOutstandingNewEq(0)); - { - std::function f; - assert(globalMemCounter.checkOutstandingNewEq(0)); - assert(f.target() == 0); - assert(f.target() == 0); - std::function f2 = f; - assert(globalMemCounter.checkOutstandingNewEq(0)); - assert(f2.target() == 0); - assert(f2.target() == 0); - } - { - std::function f; - assert(globalMemCounter.checkOutstandingNewEq(0)); - assert(f.target() == 0); - assert(f.target() == 0); - assert(!f); - std::function g = f; - assert(globalMemCounter.checkOutstandingNewEq(0)); - assert(g.target() == 0); - assert(g.target() == 0); - assert(!g); - } -#if TEST_STD_VER >= 11 - assert(globalMemCounter.checkOutstandingNewEq(0)); - { // Test rvalue references - std::function f = A(); - assert(A::count == 1); - assert(globalMemCounter.checkOutstandingNewEq(1)); - assert(f.target()); - assert(f.target() == 0); - LIBCPP_ASSERT_NOEXCEPT(std::function(std::move(f))); -#if TEST_STD_VER > 17 - ASSERT_NOEXCEPT(std::function(std::move(f))); -#endif - std::function f2 = std::move(f); - assert(A::count == 1); - assert(globalMemCounter.checkOutstandingNewEq(1)); - assert(f2.target()); - assert(f2.target() == 0); - assert(f.target() == 0); - assert(f.target() == 0); - } - assert(globalMemCounter.checkOutstandingNewEq(0)); - { - // Test that moving a function constructed from a reference wrapper - // is done without allocating. - DisableAllocationGuard g; - using Ref = std::reference_wrapper; - A a; - Ref aref(a); - std::function f(aref); - assert(A::count == 1); - assert(f.target() == nullptr); - assert(f.target()); - LIBCPP_ASSERT_NOEXCEPT(std::function(std::move(f))); -#if TEST_STD_VER > 17 - ASSERT_NOEXCEPT(std::function(std::move(f))); -#endif - std::function f2(std::move(f)); - assert(A::count == 1); - assert(f2.target() == nullptr); - assert(f2.target()); - LIBCPP_ASSERT(f.target()); // f is unchanged because the target is small - } - { - // Test that moving a function constructed from a function pointer - // is done without allocating - DisableAllocationGuard guard; - using Ptr = int(*)(int); - Ptr p = g; - std::function f(p); - assert(f.target() == nullptr); - assert(f.target()); - LIBCPP_ASSERT_NOEXCEPT(std::function(std::move(f))); -#if TEST_STD_VER > 17 - ASSERT_NOEXCEPT(std::function(std::move(f))); -#endif - std::function f2(std::move(f)); - assert(f2.target() == nullptr); - assert(f2.target()); - LIBCPP_ASSERT(f.target()); // f is unchanged because the target is small - } -#endif // TEST_STD_VER >= 11 -} -- cgit v1.3