forked from OSchip/llvm-project
be10b1f1cc
Currently the member functions std::allocator<T>::allocate, std::experimental::pmr::polymorphic_allocator::allocate and std::resource_adaptor<T>::do_allocate throw an exception of type std::length_error when the requested size exceeds the maximum size. According to the C++ standard ([allocator.members]/4, [mem.poly.allocator.mem]/1), std::allocator<T>::allocate and std::pmr::polymorphic_allocator::allocate must throw a std::bad_array_new_length exception in this case. The patch fixes the issue with std::allocator<T>::allocate and changes the type the exception thrown by std::experimental::pmr::resource_adaptor<T>::do_allocate to std::bad_array_new_length as well for consistency. The patch resolves LWG 3237, LWG 3038 and LWG 3190. Reviewed By: ldionne, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D110846 |
||
---|---|---|
.. | ||
__config | ||
__memory | ||
algorithm | ||
coroutine | ||
deque | ||
filesystem | ||
forward_list | ||
functional | ||
iterator | ||
list | ||
map | ||
memory_resource | ||
propagate_const | ||
regex | ||
set | ||
simd | ||
string | ||
type_traits | ||
unordered_map | ||
unordered_set | ||
utility | ||
vector |