PR libstdc++/70940 make pmr::resource_adaptor return aligned memory
commit63e6ad798ec379a3a1b5b601c3ad9ca2b98b3d4d
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jun 2018 14:01:11 +0000 (21 14:01 +0000)
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 21 Jun 2018 14:01:11 +0000 (21 14:01 +0000)
tree286e04e81c5b4bb551b3135eb3d9b675e6cda6dc
parent2c085ec2501ee7fc1225753ceee05544edd4168f
PR libstdc++/70940 make pmr::resource_adaptor return aligned memory

PR libstdc++/70940
* include/experimental/memory_resource (__resource_adaptor_common):
New base class.
(__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned
pointer from unaligned, and vice versa.
(__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust
allocated pointer to meet alignment request.
(__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve
original pointer for deallocation.
(__resource_adaptor_imp::do_is_equal): Reformat.
(__resource_adaptor_imp::_S_aligned_size): Remove.
(__resource_adaptor_imp::_S_supported): Remove.
(new_delete_resource): Use __gnu_cxx::new_allocator.
* testsuite/experimental/memory_resource/resource_adaptor.cc: Test
extended alignments and use debug_allocator to check for matching
allocate/deallocate pairs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261849 138bc75d-0d04-0410-961f-82ee72b054a4
libstdc++-v3/ChangeLog
libstdc++-v3/include/experimental/memory_resource
libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc