gcc/libstdc++-v3/include
Jonathan Wakely 75c6a925da Revert ABI changes to std::allocator in C++20
The recent C++20 changes to remove the std::allocator<void> explicit
specialization and the destructor in the std::allocator primary template
change the result of some is_trivially_xxx type traits. To avoid those
changes, this patch restores the explicit specialization and the
destructor.

In order to meet the C++20 requirements the std::allocator<void>
explicit specialization must provide the same interface as the primary
template (except for the unusable allocate and deallocate member
functions) and the destructor in the primary template must be constexpr.

	* include/bits/allocator.h (allocator<void>): Restore the explicit
	specialization for C++20, but make its API consistent with the primary
	template.
	(allocator::~allocator()): Restore the destructor for C++20, but make
	it constexpr.
	* testsuite/20_util/allocator/rebind_c++20.cc: Check allocator<void>.
	* testsuite/20_util/allocator/requirements/typedefs_c++20.cc: Likewise.
	* testsuite/20_util/allocator/void.cc: Check that constructors and
	destructors are trivial. Check for converting constructor in C++20.
	* testsuite/ext/malloc_allocator/variadic_construct.cc: Simplify
	dejagnu target selector.
	* testsuite/ext/new_allocator/variadic_construct.cc: Likewise.

From-SVN: r277410
2019-10-24 16:29:41 +01:00
..
backward Adjust extension types to use allocator_traits 2019-10-23 17:14:28 +01:00
bits Revert ABI changes to std::allocator in C++20 2019-10-24 16:29:41 +01:00
c
c_compatibility
c_global
c_std
debug Only qualify function as constexpr for C++14 and later 2019-10-23 17:14:50 +01:00
decimal
experimental Simplify common case of use_future_t that uses std::allocator 2019-10-24 15:39:57 +01:00
ext PR c++/91369 Implement P0784R7 changes to allocation and construction 2019-10-23 18:42:11 +01:00
parallel Avoid reserved identifier in include/parallel/multiway_merge.h 2019-10-03 14:35:35 +00:00
precompiled Implement <concepts> header for C++20 2019-10-11 16:53:52 +01:00
pstl
std Make std::invoke usable in constant expressions 2019-10-23 18:42:16 +01:00
tr1 Adjust extension types to use allocator_traits 2019-10-23 17:14:28 +01:00
tr2 PR libstdc++/92059 fix several bugs in tr2::dynamic_bitset 2019-10-11 16:29:55 +01:00
Makefile.am Define [range.cmp] comparisons for C++20 2019-10-17 16:40:00 +01:00
Makefile.in Define [range.cmp] comparisons for C++20 2019-10-17 16:40:00 +01:00