gcc/libstdc++-v3/testsuite/23_containers
Jonathan Wakely 162c40a4c1 libstdc++: Fix regression in std::_Construct (PR 94831)
By trying to reuse the existing std::_Construct function as a wrapper
for std::construct_at I introduced regressions, because changing
std::_Construct to return non-void made it ill-formed for array types.

The solution is to revert _Construct to its former state, and change
allocator_traits::construct to explicitly call construct_at instead.
This decouples all the existing callers of _Construct from the new
construct_at requirements.

	PR libstdc++/94831
	* include/bits/alloc_traits.h (_S_construct): Restore placement
	new-expression for C++11/14/17 and call std::construct_at directly
	for C++20.
	* include/bits/stl_construct.h (_Construct): Revert to non-constexpr
	function returning void.
	* testsuite/20_util/specialized_algorithms/
	uninitialized_value_construct/94831.cc: New test.
	* testsuite/23_containers/vector/cons/94831.cc: New test.
2020-04-28 23:39:38 +01:00
..
array libstdc++: Change __cpp_lib_array_constexpr for C++17 again 2020-04-23 21:39:33 +01:00
bitset
deque
forward_list
headers
list
map
multimap
multiset
priority_queue
queue
set
span
stack
unordered_map
unordered_multimap
unordered_multiset
unordered_set
vector libstdc++: Fix regression in std::_Construct (PR 94831) 2020-04-28 23:39:38 +01:00