Files
libcxx/www
Eric Fiselier 158cd4dca0 LWG 2843 "Unclear behavior of std::pmr::memory_resource::do_allocate()"
Patch by Arthur O'Dwyer.
Reviewed as https://reviews.llvm.org/D47344

new_delete_resource().allocate(n, a) has basically two permissible results:

* Return an appropriately sized and aligned block.
* Throw bad_alloc.

Before this patch, libc++'s new_delete_resource would do a third and impermissible thing, which was
to return an appropriately sized but inappropriately under-aligned block. This is now fixed.

(This came up while I was stress-testing unsynchronized_pool_resource on my MacBook. If we can't
trust the default resource to return appropriately aligned blocks, pretty much everything breaks.
For similar reasons, I would strongly support just patching __libcpp_allocate directly, but I don't
care to die on that hill, so I made this patch as a <memory_resource>-specific workaround.)

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@355763 91177308-0d34-0410-b5e6-96231b3b80d8
2019-03-09 00:38:19 +00:00
..
2010-05-11 20:29:17 +00:00
2010-05-11 20:29:17 +00:00