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>
This commit is contained in:
Tomasz Kamiński
2025-07-16 10:49:48 +02:00
parent abf865732a
commit c163bbd75b
3 changed files with 7 additions and 7 deletions

View File

@@ -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";
};

View File

@@ -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) */

View File

@@ -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