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 libstdc++: Improve tests for __cpp_lib_erase_if macro 2020-04-22 07:25:02 +01:00
forward_list libstdc++: Improve tests for __cpp_lib_erase_if macro 2020-04-22 07:25:02 +01:00
headers
list libstdc++: Improve tests for __cpp_lib_erase_if macro 2020-04-22 07:25:02 +01:00
map libstdc++: Improve tests for __cpp_lib_erase_if macro 2020-04-22 07:25:02 +01:00
multimap libstdc++: Add comparison operators to associative containers 2020-04-20 17:50:10 +01:00
multiset libstdc++: Add comparison operators to associative containers 2020-04-20 17:50:10 +01:00
priority_queue
queue libstdc++: Define operator<=> for std::stack and std::queue 2020-04-19 21:30:15 +01:00
set libstdc++: Improve tests for __cpp_lib_erase_if macro 2020-04-22 07:25:02 +01:00
span
stack libstdc++: Define operator<=> for std::stack and std::queue 2020-04-19 21:30:15 +01:00
unordered_map libstdc++: Improve tests for __cpp_lib_erase_if macro 2020-04-22 07:25:02 +01:00
unordered_multimap
unordered_multiset
unordered_set libstdc++: Improve tests for __cpp_lib_erase_if macro 2020-04-22 07:25:02 +01:00
vector libstdc++: Fix regression in std::_Construct (PR 94831) 2020-04-28 23:39:38 +01:00