The COW std::string is not constexpr, so the <stdexcept> exception
classes can't be constexpr either when they're defined in terms of the
COW string.

libstdc++-v3/ChangeLog:

        * include/bits/version.def (constexpr_exceptions): Add
        cxx11abi=yes.
        * include/bits/version.h: Regenerate.
---

Tested x86_64-linux (with old and new string ABIs)

 libstdc++-v3/include/bits/version.def | 1 +
 libstdc++-v3/include/bits/version.h   | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/libstdc++-v3/include/bits/version.def 
b/libstdc++-v3/include/bits/version.def
index 1cd75fba8329..9fe6ada4ff46 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -2233,6 +2233,7 @@ ftms = {
     v = 202502;
     cxxmin = 26;
     extra_cond = "__cpp_constexpr_exceptions >= 202411L";
+    cxx11abi = yes;
   };
 };
 
diff --git a/libstdc++-v3/include/bits/version.h 
b/libstdc++-v3/include/bits/version.h
index ab17d0444eb1..08c738d410fb 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -2497,7 +2497,7 @@
 #undef __glibcxx_want_bitset
 
 #if !defined(__cpp_lib_constexpr_exceptions)
-# if (__cplusplus >  202302L) && (__cpp_constexpr_exceptions >= 202411L)
+# if (__cplusplus >  202302L) && _GLIBCXX_USE_CXX11_ABI && 
(__cpp_constexpr_exceptions >= 202411L)
 #  define __glibcxx_constexpr_exceptions 202502L
 #  if defined(__glibcxx_want_all) || 
defined(__glibcxx_want_constexpr_exceptions)
 #   define __cpp_lib_constexpr_exceptions 202502L
-- 
2.52.0

Reply via email to