Implement std::pmr::unsynchronized_pool_resource
commit76b49a0858e68910b3dd33496304681200adbb69
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Nov 2018 21:35:27 +0000 (6 21:35 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Nov 2018 21:35:27 +0000 (6 21:35 +0000)
tree070cdd50d35ed6bc1e887d3d545f4e29b62a7008
parentc46e445b08cc03cc48f228d10ea1e6bb88064020
Implement std::pmr::unsynchronized_pool_resource

Implement std::pmr::unsynchronized_pool_resource
* config/abi/pre/gnu.ver: Add new symbols.
* include/std/memory_resource (std::pmr::__pool_resource): New class.
(std::pmr::unsynchronized_pool_resource): New class.
* src/c++17/Makefile.am: Add -fimplicit-templates to flags for
memory_resource.cc
* src/c++17/Makefile.in: Regenerate.
* src/c++17/memory_resource.cc (bitset, chunk, big_block): New
internal classes.
(__pool_resource::_Pool): Define new class.
(munge_options, pool_index, select_num_pools): New internal functions.
(__pool_resource::__pool_resource, __pool_resource::~__pool_resource)
(__pool_resource::allocate, __pool_resource::deallocate)
(__pool_resource::_M_alloc_pools): Define member functions.
(unsynchronized_pool_resource::unsynchronized_pool_resource)
(unsynchronized_pool_resource::~unsynchronized_pool_resource)
(unsynchronized_pool_resource::release)
(unsynchronized_pool_resource::_M_find_pool)
(unsynchronized_pool_resource::do_allocate)
(unsynchronized_pool_resource::do_deallocate): Define member
functions.
* testsuite/20_util/unsynchronized_pool_resource/allocate.cc: New
test.
* testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: New
test.
* testsuite/20_util/unsynchronized_pool_resource/options.cc: New
test.
* testsuite/20_util/unsynchronized_pool_resource/release.cc: New
test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@265853 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/include/std/memory_resource
libstdc++-v3/src/c++17/Makefile.am
libstdc++-v3/src/c++17/Makefile.in
libstdc++-v3/src/c++17/memory_resource.cc
libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc [new file with mode: 0644]
libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/release.cc [new file with mode: 0644]