diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2021-05-11 15:01:01 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2021-05-11 20:50:09 +0100 |
commit | db9dec545bf7c5be3120412444553ff993c7200d (patch) | |
tree | f46eab78aa812394bf0dc3dbb0d6140cc9801230 /libgomp/taskloop.c | |
parent | 16255fd2fdbf801167c2a5f095048b2c7824f6be (diff) | |
download | gcc-db9dec545bf7c5be3120412444553ff993c7200d.zip gcc-db9dec545bf7c5be3120412444553ff993c7200d.tar.gz gcc-db9dec545bf7c5be3120412444553ff993c7200d.tar.bz2 |
libstdc++: Fix missing members in std::allocator<void>
The changes in 75c6a925dab5b7af9ab47c10906cb0e140261cc2 were slightly
incorrect, because the converting constructor should be noexcept, and
the POCMA and is_always_equal traits should still be present in C++20.
This fixes it, and slightly refactors the preprocessor conditions and
order of members. Also add comments explaining things.
The non-standard construct and destroy members added for PR 78052 can be
private if allocator_traits<allocator<void>> is made a friend.
libstdc++-v3/ChangeLog:
* include/bits/allocator.h (allocator<void>) [C++20]: Add
missing noexcept to constructor. Restore missing POCMA and
is_always_equal_traits.
[C++17]: Make construct and destroy members private and
declare allocator_traits as a friend.
* include/bits/memoryfwd.h (allocator_traits): Declare.
* include/ext/malloc_allocator.h (malloc_allocator::allocate):
Add nodiscard attribute. Add static assertion for LWG 3307.
* include/ext/new_allocator.h (new_allocator::allocate): Add
static assertion for LWG 3307.
* testsuite/20_util/allocator/void.cc: Check that converting
constructor is noexcept. Check for propagation traits and
size_type and difference_type. Check that pointer and
const_pointer are gone in C++20.
(cherry picked from commit 5e3a1ea3d89d62972e1f036b2ede37a80b880bdf)
Diffstat (limited to 'libgomp/taskloop.c')
0 files changed, 0 insertions, 0 deletions