gcc/libstdc++-v3/include/std
Jonathan Wakely 265d3e1a4e libstdc++: Install <coroutine> header for freestanding [PR103726]
The standard says that <coroutine> should be present for freestanding.
That was intentionally left out of the initial implementation, but can
be done without much trouble. The header should be moved to libsupc++ at
some point in stage 1.

The standard also says that <coroutine> defines a std::hash
specialization, which was missing from our implementation. That's a
problem for freestanding (see LWG 3653) so only do that for hosted.

We can use concepts to constrain the __coroutine_traits_impl base class
when compiled with concepts enabled. In a pure C++20 implementation we
would not need that base class at all and could just use a constrained
partial specialization of coroutine_traits. But the absence of the
__coroutine_traits_impl<R, void> base would create an ABI difference
between the non-standard C++14/C++17 support for coroutines and the same
code compiled as C++20. If we drop support for <coroutine> pre-C++20 we
should revisit this.

libstdc++-v3/ChangeLog:

	PR libstdc++/103726
	* include/Makefile.am: Install <coroutine> for freestanding.
	* include/Makefile.in: Regenerate.
	* include/std/coroutine: Adjust headers and preprocessor
	conditions.
	(__coroutine_traits_impl): Use concepts when available.
	[_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
2022-01-11 13:28:46 +00:00
..
algorithm Update copyright years. 2022-01-03 10:42:10 +01:00
any Update copyright years. 2022-01-03 10:42:10 +01:00
array Update copyright years. 2022-01-03 10:42:10 +01:00
atomic Update copyright years. 2022-01-03 10:42:10 +01:00
barrier Update copyright years. 2022-01-03 10:42:10 +01:00
bit Update copyright years. 2022-01-03 10:42:10 +01:00
bitset Update copyright years. 2022-01-03 10:42:10 +01:00
charconv libstdc++: Do not use std::isdigit in <charconv> [PR103911] 2022-01-06 14:56:12 +00:00
chrono Update copyright years. 2022-01-03 10:42:10 +01:00
codecvt Update copyright years. 2022-01-03 10:42:10 +01:00
complex Update copyright years. 2022-01-03 10:42:10 +01:00
concepts Update copyright years. 2022-01-03 10:42:10 +01:00
condition_variable Update copyright years. 2022-01-03 10:42:10 +01:00
coroutine libstdc++: Install <coroutine> header for freestanding [PR103726] 2022-01-11 13:28:46 +00:00
deque Update copyright years. 2022-01-03 10:42:10 +01:00
execution Update copyright years. 2022-01-03 10:42:10 +01:00
filesystem Update copyright years. 2022-01-03 10:42:10 +01:00
forward_list Update copyright years. 2022-01-03 10:42:10 +01:00
fstream Update copyright years. 2022-01-03 10:42:10 +01:00
functional Update copyright years. 2022-01-03 10:42:10 +01:00
future Update copyright years. 2022-01-03 10:42:10 +01:00
iomanip Update copyright years. 2022-01-03 10:42:10 +01:00
ios Update copyright years. 2022-01-03 10:42:10 +01:00
iosfwd Update copyright years. 2022-01-03 10:42:10 +01:00
iostream Update copyright years. 2022-01-03 10:42:10 +01:00
istream Update copyright years. 2022-01-03 10:42:10 +01:00
iterator Update copyright years. 2022-01-03 10:42:10 +01:00
latch Update copyright years. 2022-01-03 10:42:10 +01:00
limits Update copyright years. 2022-01-03 10:42:10 +01:00
list Update copyright years. 2022-01-03 10:42:10 +01:00
locale Update copyright years. 2022-01-03 10:42:10 +01:00
map Update copyright years. 2022-01-03 10:42:10 +01:00
memory Update copyright years. 2022-01-03 10:42:10 +01:00
memory_resource Update copyright years. 2022-01-03 10:42:10 +01:00
mutex Update copyright years. 2022-01-03 10:42:10 +01:00
numbers Update copyright years. 2022-01-03 10:42:10 +01:00
numeric Update copyright years. 2022-01-03 10:42:10 +01:00
optional Update copyright years. 2022-01-03 10:42:10 +01:00
ostream libstdc++: Optimize std::ostream inserters for single characters 2022-01-11 13:28:46 +00:00
queue Update copyright years. 2022-01-03 10:42:10 +01:00
random Update copyright years. 2022-01-03 10:42:10 +01:00
ranges Update copyright years. 2022-01-03 10:42:10 +01:00
ratio Update copyright years. 2022-01-03 10:42:10 +01:00
regex Update copyright years. 2022-01-03 10:42:10 +01:00
scoped_allocator Update copyright years. 2022-01-03 10:42:10 +01:00
semaphore Update copyright years. 2022-01-03 10:42:10 +01:00
set Update copyright years. 2022-01-03 10:42:10 +01:00
shared_mutex Update copyright years. 2022-01-03 10:42:10 +01:00
source_location Update copyright years. 2022-01-03 10:42:10 +01:00
span Update copyright years. 2022-01-03 10:42:10 +01:00
spanstream libstdc++: Implement std::spanstream for C++23 2021-11-13 11:45:31 +00:00
sstream Update copyright years. 2022-01-03 10:42:10 +01:00
stack Update copyright years. 2022-01-03 10:42:10 +01:00
stdexcept Update copyright years. 2022-01-03 10:42:10 +01:00
stop_token Update copyright years. 2022-01-03 10:42:10 +01:00
streambuf Update copyright years. 2022-01-03 10:42:10 +01:00
string Update copyright years. 2022-01-03 10:42:10 +01:00
string_view Update copyright years. 2022-01-03 10:42:10 +01:00
syncstream Update copyright years. 2022-01-03 10:42:10 +01:00
system_error Update copyright years. 2022-01-03 10:42:10 +01:00
thread Update copyright years. 2022-01-03 10:42:10 +01:00
tuple Update copyright years. 2022-01-03 10:42:10 +01:00
type_traits Update copyright years. 2022-01-03 10:42:10 +01:00
typeindex Update copyright years. 2022-01-03 10:42:10 +01:00
unordered_map Update copyright years. 2022-01-03 10:42:10 +01:00
unordered_set Update copyright years. 2022-01-03 10:42:10 +01:00
utility Update copyright years. 2022-01-03 10:42:10 +01:00
valarray Update copyright years. 2022-01-03 10:42:10 +01:00
variant libstdc++: Make std::variant work with Clang in C++20 mode [PR103891] 2022-01-11 13:22:35 +00:00
vector Update copyright years. 2022-01-03 10:42:10 +01:00
version libstdc++: Make std::variant work with Clang in C++20 mode [PR103891] 2022-01-11 13:22:35 +00:00