diff options
author | Tomasz Kamiński <tkaminsk@redhat.com> | 2025-07-16 10:49:48 +0200 |
---|---|---|
committer | Tomasz Kamiński <tkaminsk@redhat.com> | 2025-07-16 12:50:03 +0200 |
commit | c163bbd75b600cc6d1ec752425ee895ef5b9b37d (patch) | |
tree | 1908c28f5204477fe2baf6447670a865fedc5f94 | |
parent | abf865732a7313cf79ffa325faed3467ed28d8b8 (diff) | |
download | gcc-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.def | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/version.h | 3 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/18_support/exception/version.cc | 7 |
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 + |