aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Kamiński <tkaminsk@redhat.com>2025-07-16 10:49:48 +0200
committerTomasz Kamiński <tkaminsk@redhat.com>2025-07-16 12:50:03 +0200
commitc163bbd75b600cc6d1ec752425ee895ef5b9b37d (patch)
tree1908c28f5204477fe2baf6447670a865fedc5f94
parentabf865732a7313cf79ffa325faed3467ed28d8b8 (diff)
downloadgcc-c163bbd75b600cc6d1ec752425ee895ef5b9b37d.zip
gcc-c163bbd75b600cc6d1ec752425ee895ef5b9b37d.tar.gz
gcc-c163bbd75b600cc6d1ec752425ee895ef5b9b37d.tar.bz2
libstdc++: Do not define __cpp_lib_constexpr_exceptions [PR121114]
Do not advertise library support for constexpr exceptions, as our solution to throwing by __throw_* functions from <bits/functexcept.h>, caues constant evaluation to fail, as these functions are not constexpr. PR libstdc++/121114 libstdc++-v3/ChangeLog: * include/bits/version.def (constexpr_exceptions): Add no_stdname and changed value. * include/bits/version.h: Regenerated. * testsuite/18_support/exception/version.cc: Test that macro is not exported. Reviewed-by: Jonathan Wakely <jwakely@redhat.com> Signed-off-by: Tomasz Kaminski <tkaminsk@redhat.com>
-rw-r--r--libstdc++-v3/include/bits/version.def4
-rw-r--r--libstdc++-v3/include/bits/version.h3
-rw-r--r--libstdc++-v3/testsuite/18_support/exception/version.cc7
3 files changed, 7 insertions, 7 deletions
diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def
index cf0672b..2f70a52 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -2052,8 +2052,10 @@ ftms = {
ftms = {
name = constexpr_exceptions;
+ // TODO Remove when PR121114 is resolved
+ no_stdname = true;
values = {
- v = 202411;
+ v = 1; // TODO 202411;
cxxmin = 26;
extra_cond = "__cpp_constexpr_exceptions >= 202411L";
};
diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h
index c01ddf1..8e0ae68 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -2301,9 +2301,8 @@
#if !defined(__cpp_lib_constexpr_exceptions)
# if (__cplusplus > 202302L) && (__cpp_constexpr_exceptions >= 202411L)
-# define __glibcxx_constexpr_exceptions 202411L
+# define __glibcxx_constexpr_exceptions 1L
# if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_exceptions)
-# define __cpp_lib_constexpr_exceptions 202411L
# endif
# endif
#endif /* !defined(__cpp_lib_constexpr_exceptions) && defined(__glibcxx_want_constexpr_exceptions) */
diff --git a/libstdc++-v3/testsuite/18_support/exception/version.cc b/libstdc++-v3/testsuite/18_support/exception/version.cc
index 09a2d10..5707abd 100644
--- a/libstdc++-v3/testsuite/18_support/exception/version.cc
+++ b/libstdc++-v3/testsuite/18_support/exception/version.cc
@@ -3,8 +3,7 @@
#include <exception>
-#ifndef __cpp_lib_constexpr_exceptions
-# error "Feature test macro for constexpr_exceptions is missing in <exception>"
-#elif __cpp_lib_constexpr_exceptions < 202411L
-# error "Feature test macro for constexpr_exceptions has wrong value in <exception>"
+#ifdef __cpp_lib_constexpr_exceptions
+# error "Feature test macro for constexpr_exceptions should not be provided by <exception>"
#endif
+