PR libstdc++/70966 make pmr::new_delete_resource() immortal
authorJonathan Wakely <jwakely@redhat.com>
Wed, 20 Jun 2018 19:34:53 +0000 (20:34 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 20 Jun 2018 19:34:53 +0000 (20:34 +0100)
commite70359b3de997b4c582345ab7da8cccb253cc6d9
tree48fbab8f2d64a4655d84cfcf5ba470a5926751bd
parentc1456656842bef093d73e1f324eb49b94db87203
PR libstdc++/70966 make pmr::new_delete_resource() immortal

Construct the program-wide resource objects using placement new. This
means they have dynamic storage duration and won't be destroyed during
termination.

PR libstdc++/70966
* include/experimental/memory_resource (__resource_adaptor_imp): Add
static assertions to enforce requirements on pointer types.
(__resource_adaptor_imp::get_allocator()): Add noexcept.
(new_delete_resource, null_memory_resource): Return address of an
object with dynamic storage duration.
(__null_memory_resource): Remove.
* testsuite/experimental/memory_resource/70966.cc: New.

From-SVN: r261818
libstdc++-v3/ChangeLog
libstdc++-v3/include/experimental/memory_resource
libstdc++-v3/testsuite/experimental/memory_resource/70966.cc [new file with mode: 0644]