aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2022-03-28 11:39:21 +0100
committerJonathan Wakely <jwakely@redhat.com>2022-03-29 10:06:33 +0100
commit7255d29c577106c14e42a9c3c88fc6fa6b6e4ecf (patch)
treea3e286b74e5d9998a1b354c6d362cf477e67a065 /libstdc++-v3/include
parent35464c790382b0ed53c6fd5cc07855b0d3644ab9 (diff)
downloadgcc-7255d29c577106c14e42a9c3c88fc6fa6b6e4ecf.zip
gcc-7255d29c577106c14e42a9c3c88fc6fa6b6e4ecf.tar.gz
gcc-7255d29c577106c14e42a9c3c88fc6fa6b6e4ecf.tar.bz2
libstdc++: Fix incorrect preprocessor conditions in <version>
The conditions that guard the feature test macros in <version> should match the main definitions of the macros in other headers. This doesn't matter for GCC, because it supports all the conditions being tested here, but it does matter for non-GCC compilers without the relevant C++20 features. libstdc++-v3/ChangeLog: * include/std/version (__cpp_lib_variant): Fix conditions to match <variant>. (__cpp_lib_expected): Fix condition to match <expected>.
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r--libstdc++-v3/include/std/version8
1 files changed, 5 insertions, 3 deletions
diff --git a/libstdc++-v3/include/std/version b/libstdc++-v3/include/std/version
index 7dbac23..44b8a9f 100644
--- a/libstdc++-v3/include/std/version
+++ b/libstdc++-v3/include/std/version
@@ -176,7 +176,7 @@
# define __cpp_lib_to_chars 201611L
#endif
#define __cpp_lib_unordered_map_try_emplace 201411L
-#if !(__cplusplus >= 202002L && __cpp_concepts >= 202002L)
+#if !(__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L)
// N.B. updated value in C++20
# define __cpp_lib_variant 202102L
#endif
@@ -293,7 +293,7 @@
# endif
#define __cpp_lib_to_address 201711L
#define __cpp_lib_to_array 201907L
-#if __cplusplus >= 202002L && __cpp_concepts >= 202002L
+#if __cpp_concepts >= 202002L && __cpp_constexpr >= 201811L
# define __cpp_lib_variant 202106L
#endif
#endif
@@ -306,7 +306,9 @@
#if _GLIBCXX_HOSTED
#define __cpp_lib_adaptor_iterator_pair_constructor 202106L
-#define __cpp_lib_expected 202202L
+#if __cpp_concepts >= 202002L
+# define __cpp_lib_expected 202202L
+#endif
#define __cpp_lib_invoke_r 202106L
#define __cpp_lib_ios_noreplace 202200L
#if __cpp_lib_concepts