gcc/libstdc++-v3/include/std
Jonathan Wakely e4379a931d libstdc++: Value-initialize std::atomic for C++20 (P0883R2)
This implements the new requirements for C++20 that std::atomic should
initialize the atomic variable in its default constructor.

This patch does not add the deprecated attribute to atomic_init, but
that should be done at some point as it's deprecated in C++20.

The paper also deprecates the ATOMIC_FLAG_INIT macro, although we can't
apply the deprecated attribute to a macro.

	PR libstdc++/58605
	* include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
	Define.
	(__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
	(__atomic_float): Add default member initializer for C++20.
	* include/std/atomic (atomic): Likewise.
	(atomic::atomic()): Remove noexcept-specifier on default constructor.
	* include/std/version (__cpp_lib_atomic_value_initialization): Define.
	* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
	number.
	* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
	* testsuite/29_atomics/atomic/cons/value_init.cc: New test.
	* testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
	* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
	expected result for is_trivially_default_constructible.
	* testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
	* testsuite/29_atomics/atomic_float/value_init.cc: New test.
	* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
	* testsuite/29_atomics/atomic_integral/cons/value_init.cc
	* testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
	expected results for is_trivially_default_constructible.
	* testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
	new test generator.
2020-01-13 13:22:28 +00:00
..
algorithm Update copyright years. 2020-01-01 12:51:42 +01:00
any Update copyright years. 2020-01-01 12:51:42 +01:00
array Update copyright years. 2020-01-01 12:51:42 +01:00
atomic libstdc++: Value-initialize std::atomic for C++20 (P0883R2) 2020-01-13 13:22:28 +00:00
bit Update copyright years. 2020-01-01 12:51:42 +01:00
bitset Update copyright years. 2020-01-01 12:51:42 +01:00
charconv Update copyright years. 2020-01-01 12:51:42 +01:00
chrono Update copyright years. 2020-01-01 12:51:42 +01:00
codecvt Update copyright years. 2020-01-01 12:51:42 +01:00
complex Update copyright years. 2020-01-01 12:51:42 +01:00
concepts Update copyright years. 2020-01-01 12:51:42 +01:00
condition_variable Rename condition_variable_any wait* methods to match current draft standard 2020-01-08 03:00:40 +00:00
deque Update copyright years. 2020-01-01 12:51:42 +01:00
execution Update copyright years. 2020-01-01 12:51:42 +01:00
filesystem Update copyright years. 2020-01-01 12:51:42 +01:00
forward_list Update copyright years. 2020-01-01 12:51:42 +01:00
fstream Update copyright years. 2020-01-01 12:51:42 +01:00
functional Update copyright years. 2020-01-01 12:51:42 +01:00
future Update copyright years. 2020-01-01 12:51:42 +01:00
iomanip Update copyright years. 2020-01-01 12:51:42 +01:00
ios Update copyright years. 2020-01-01 12:51:42 +01:00
iosfwd Update copyright years. 2020-01-01 12:51:42 +01:00
iostream Update copyright years. 2020-01-01 12:51:42 +01:00
istream Update copyright years. 2020-01-01 12:51:42 +01:00
iterator Update copyright years. 2020-01-01 12:51:42 +01:00
limits Update copyright years. 2020-01-01 12:51:42 +01:00
list Update copyright years. 2020-01-01 12:51:42 +01:00
locale Update copyright years. 2020-01-01 12:51:42 +01:00
map Update copyright years. 2020-01-01 12:51:42 +01:00
memory Update copyright years. 2020-01-01 12:51:42 +01:00
memory_resource libstdc++: Define memory resource key functions non-inline (PR93208) 2020-01-09 13:18:20 +00:00
mutex Update copyright years. 2020-01-01 12:51:42 +01:00
numbers Update copyright years. 2020-01-01 12:51:42 +01:00
numeric Update copyright years. 2020-01-01 12:51:42 +01:00
optional Update copyright years. 2020-01-01 12:51:42 +01:00
ostream Update copyright years. 2020-01-01 12:51:42 +01:00
queue Update copyright years. 2020-01-01 12:51:42 +01:00
random Update copyright years. 2020-01-01 12:51:42 +01:00
ranges Update copyright years. 2020-01-01 12:51:42 +01:00
ratio Update copyright years. 2020-01-01 12:51:42 +01:00
regex Update copyright years. 2020-01-01 12:51:42 +01:00
scoped_allocator Update copyright years. 2020-01-01 12:51:42 +01:00
set Update copyright years. 2020-01-01 12:51:42 +01:00
shared_mutex Update copyright years. 2020-01-01 12:51:42 +01:00
span Update copyright years. 2020-01-01 12:51:42 +01:00
sstream Update copyright years. 2020-01-01 12:51:42 +01:00
stack Update copyright years. 2020-01-01 12:51:42 +01:00
stdexcept Update copyright years. 2020-01-01 12:51:42 +01:00
stop_token libstdc++: Remove redundant inequality operators in <stop_token> 2020-01-06 12:06:47 +00:00
streambuf Update copyright years. 2020-01-01 12:51:42 +01:00
string Update copyright years. 2020-01-01 12:51:42 +01:00
string_view Update copyright years. 2020-01-01 12:51:42 +01:00
system_error Update copyright years. 2020-01-01 12:51:42 +01:00
thread Update copyright years. 2020-01-01 12:51:42 +01:00
tuple Update copyright years. 2020-01-01 12:51:42 +01:00
type_traits libstdc++: Fix testsuite failures and warnings due to is_pod deprecation 2020-01-09 21:31:50 +00:00
typeindex Update copyright years. 2020-01-01 12:51:42 +01:00
unordered_map Update copyright years. 2020-01-01 12:51:42 +01:00
unordered_set Update copyright years. 2020-01-01 12:51:42 +01:00
utility Update copyright years. 2020-01-01 12:51:42 +01:00
valarray Update copyright years. 2020-01-01 12:51:42 +01:00
variant Update copyright years. 2020-01-01 12:51:42 +01:00
vector Update copyright years. 2020-01-01 12:51:42 +01:00
version libstdc++: Value-initialize std::atomic for C++20 (P0883R2) 2020-01-13 13:22:28 +00:00