diff options
author | 2021-01-11 15:31:56 +0000 | |
---|---|---|
committer | 2021-01-11 15:31:56 +0000 | |
commit | 16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef (patch) | |
tree | 1a7dd8152b94f6f8cd318bfaf85aa40882854583 /lib/libcxx/src/experimental/memory_resource.cpp | |
parent | sync (diff) | |
download | wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.tar.xz wireguard-openbsd-16ff81ed8b1ed9aa06fb1a731a2446b66cc49bef.zip |
Remove libc++ and libc++abi 8.0.0 now that we switched to version 10.0.1
in the gnu/ directory.
Diffstat (limited to 'lib/libcxx/src/experimental/memory_resource.cpp')
-rw-r--r-- | lib/libcxx/src/experimental/memory_resource.cpp | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/lib/libcxx/src/experimental/memory_resource.cpp b/lib/libcxx/src/experimental/memory_resource.cpp deleted file mode 100644 index 7f0052f2b50..00000000000 --- a/lib/libcxx/src/experimental/memory_resource.cpp +++ /dev/null @@ -1,155 +0,0 @@ -//===------------------------ memory_resource.cpp -------------------------===// -// -// 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. -// -//===----------------------------------------------------------------------===// - -#include "experimental/memory_resource" - -#ifndef _LIBCPP_HAS_NO_ATOMIC_HEADER -#include "atomic" -#elif !defined(_LIBCPP_HAS_NO_THREADS) -#include "mutex" -#endif - -_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR - -// memory_resource - -//memory_resource::~memory_resource() {} - -// new_delete_resource() - -class _LIBCPP_TYPE_VIS __new_delete_memory_resource_imp - : public memory_resource -{ -public: - ~__new_delete_memory_resource_imp() = default; - -protected: - virtual void* do_allocate(size_t __size, size_t __align) - { return _VSTD::__libcpp_allocate(__size, __align); /* FIXME */} - - virtual void do_deallocate(void* __p, size_t __n, size_t __align) { - _VSTD::__libcpp_deallocate(__p, __n, __align); /* FIXME */ - } - - virtual bool do_is_equal(memory_resource const & __other) const _NOEXCEPT - { return &__other == this; } -}; - -// null_memory_resource() - -class _LIBCPP_TYPE_VIS __null_memory_resource_imp - : public memory_resource -{ -public: - ~__null_memory_resource_imp() = default; - -protected: - virtual void* do_allocate(size_t, size_t) { - __throw_bad_alloc(); - } - virtual void do_deallocate(void *, size_t, size_t) {} - virtual bool do_is_equal(memory_resource const & __other) const _NOEXCEPT - { return &__other == this; } -}; - -namespace { - -union ResourceInitHelper { - struct { - __new_delete_memory_resource_imp new_delete_res; - __null_memory_resource_imp null_res; - } resources; - char dummy; - _LIBCPP_CONSTEXPR_AFTER_CXX11 ResourceInitHelper() : resources() {} - ~ResourceInitHelper() {} -}; - -// Detect if the init_priority attribute is supported. -#if (defined(_LIBCPP_COMPILER_GCC) && defined(__APPLE__)) \ - || defined(_LIBCPP_COMPILER_MSVC) -// GCC on Apple doesn't support the init priority attribute, -// and MSVC doesn't support any GCC attributes. -# define _LIBCPP_INIT_PRIORITY_MAX -#else -# define _LIBCPP_INIT_PRIORITY_MAX __attribute__((init_priority(101))) -#endif - -// When compiled in C++14 this initialization should be a constant expression. -// Only in C++11 is "init_priority" needed to ensure initialization order. -#if _LIBCPP_STD_VER > 11 -_LIBCPP_SAFE_STATIC -#endif -ResourceInitHelper res_init _LIBCPP_INIT_PRIORITY_MAX; - -} // end namespace - - -memory_resource * new_delete_resource() _NOEXCEPT { - return &res_init.resources.new_delete_res; -} - -memory_resource * null_memory_resource() _NOEXCEPT { - return &res_init.resources.null_res; -} - -// default_memory_resource() - -static memory_resource * -__default_memory_resource(bool set = false, memory_resource * new_res = nullptr) _NOEXCEPT -{ -#ifndef _LIBCPP_HAS_NO_ATOMIC_HEADER - _LIBCPP_SAFE_STATIC static atomic<memory_resource*> __res = - ATOMIC_VAR_INIT(&res_init.resources.new_delete_res); - if (set) { - new_res = new_res ? new_res : new_delete_resource(); - // TODO: Can a weaker ordering be used? - return _VSTD::atomic_exchange_explicit( - &__res, new_res, memory_order::memory_order_acq_rel); - } - else { - return _VSTD::atomic_load_explicit( - &__res, memory_order::memory_order_acquire); - } -#elif !defined(_LIBCPP_HAS_NO_THREADS) - _LIBCPP_SAFE_STATIC static memory_resource * res = &res_init.resources.new_delete_res; - static mutex res_lock; - if (set) { - new_res = new_res ? new_res : new_delete_resource(); - lock_guard<mutex> guard(res_lock); - memory_resource * old_res = res; - res = new_res; - return old_res; - } else { - lock_guard<mutex> guard(res_lock); - return res; - } -#else - _LIBCPP_SAFE_STATIC static memory_resource* res = &res_init.resources.new_delete_res; - if (set) { - new_res = new_res ? new_res : new_delete_resource(); - memory_resource * old_res = res; - res = new_res; - return old_res; - } else { - return res; - } -#endif -} - -memory_resource * get_default_resource() _NOEXCEPT -{ - return __default_memory_resource(); -} - -memory_resource * set_default_resource(memory_resource * __new_res) _NOEXCEPT -{ - return __default_memory_resource(true, __new_res); -} - -_LIBCPP_END_NAMESPACE_LFTS_PMR |