gcc/libstdc++-v3/include
Jonathan Wakely 5b417b3582 libstdc++: Make std::variant work with Clang in C++20 mode [PR103891]
Clang has some bugs with destructors that use constraints to be
conditionally trivial, so disable the P2231R1 constexpr changes to
std::variant unless the compiler is GCC 12 or later.

If/when P2493R0 gets accepted and implemented by G++ we can remove the
__GNUC__ check and use __cpp_concepts >= 202002 instead.

libstdc++-v3/ChangeLog:

	PR libstdc++/103891
	* include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
	Define.
	* include/std/variant (__cpp_lib_variant): Only define C++20
	value when the compiler is known to support conditionally
	trivial destructors.
	* include/std/version (__cpp_lib_variant): Likewise.
2022-01-11 13:22:35 +00:00
..
backward Update copyright years. 2022-01-03 10:42:10 +01:00
bits libstdc++: Make std::variant work with Clang in C++20 mode [PR103891] 2022-01-11 13:22:35 +00:00
c Update copyright years. 2022-01-03 10:42:10 +01:00
c_compatibility Update copyright years. 2022-01-03 10:42:10 +01:00
c_global Update copyright years. 2022-01-03 10:42:10 +01:00
c_std Update copyright years. 2022-01-03 10:42:10 +01:00
debug Update copyright years. 2022-01-03 10:42:10 +01:00
decimal Update copyright years. 2022-01-03 10:42:10 +01:00
experimental Update copyright years. 2022-01-03 10:42:10 +01:00
ext Update copyright years. 2022-01-03 10:42:10 +01:00
parallel Update copyright years. 2022-01-03 10:42:10 +01:00
precompiled Update copyright years. 2022-01-03 10:42:10 +01:00
pstl
std libstdc++: Make std::variant work with Clang in C++20 mode [PR103891] 2022-01-11 13:22:35 +00:00
tr1 Update copyright years. 2022-01-03 10:42:10 +01:00
tr2 Update copyright years. 2022-01-03 10:42:10 +01:00
Makefile.am Update copyright years. 2022-01-03 10:42:10 +01:00
Makefile.in libstdc++: Fix and simplify freestanding configuration [PR103866] 2022-01-10 12:18:14 +00:00