[libcxx-commits] [libcxx] [libc++] Added FTMs from Hagenberg 2025 (PR #233352)

Hristo Hristov via libcxx-commits libcxx-commits at lists.llvm.org
Sun Oct 18 23:41:59 PDT 2026


https://github.com/H-G-Hristov created https://github.com/llvm/llvm-project/pull/233352

https:/wg21.link/version.syn#headerref:%3cvector%3e

>From b373131b264bd123295d6db46192695f381db612 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Mon, 19 Oct 2026 09:08:22 +0300
Subject: [PATCH] [libc++] Added FTMs from Hagenberg 2025

https:/wg21.link/version.syn#headerref:%3cvector%3e
---
 libcxx/docs/FeatureTestMacroTable.rst         |   64 +-
 libcxx/include/version                        |   65 +-
 .../array.version.compile.pass.cpp            |   46 +
 .../bitset.version.compile.pass.cpp           |   46 +
 .../deque.version.compile.pass.cpp            |   92 ++
 .../exception.version.compile.pass.cpp        |   46 +
 .../expected.version.compile.pass.cpp         |   92 ++
 .../format.version.compile.pass.cpp           |   46 +
 .../forward_list.version.compile.pass.cpp     |   46 +
 .../iterator.version.compile.pass.cpp         |   92 ++
 .../list.version.compile.pass.cpp             |   46 +
 .../mdspan.version.compile.pass.cpp           |   46 +
 .../memory.version.compile.pass.cpp           |  138 ++
 .../optional.version.compile.pass.cpp         |   92 ++
 .../queue.version.compile.pass.cpp            |   32 +-
 .../ranges.version.compile.pass.cpp           |  147 ++
 .../span.version.compile.pass.cpp             |   46 +
 .../stack.version.compile.pass.cpp            |   46 +
 .../stdexcept.version.compile.pass.cpp        |   83 +
 .../string.version.compile.pass.cpp           |   46 +
 .../string_view.version.compile.pass.cpp      |   46 +
 .../unordered_map.version.compile.pass.cpp    |   46 +
 .../unordered_set.version.compile.pass.cpp    |   46 +
 .../valarray.version.compile.pass.cpp         |   46 +
 .../variant.version.compile.pass.cpp          |   46 +
 .../vector.version.compile.pass.cpp           |   46 +
 .../version.version.compile.pass.cpp          | 1467 ++++++++++++++++-
 .../generate_feature_test_macro_components.py |  203 ++-
 28 files changed, 3280 insertions(+), 23 deletions(-)
 create mode 100644 libcxx/test/std/language.support/support.limits/support.limits.general/stdexcept.version.compile.pass.cpp

diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 336a76d30f73f..0cd36dbc37fed 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -372,6 +372,8 @@ Status
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_ranges_as_const``                              *unimplemented*
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_ranges_as_input``                              *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_ranges_as_rvalue``                             ``202207L``
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_ranges_chunk``                                 *unimplemented*
@@ -440,24 +442,38 @@ Status
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_algorithms``                         ``202306L``
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_constexpr_deque``                              *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_constexpr_exceptions``                         *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_flat_map``                           ``202502L``
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_flat_set``                           ``202502L``
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_forward_list``                       ``202502L``
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_constexpr_inplace_vector``                     *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_list``                               ``202502L``
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_map``                                ``202502L``
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_new``                                ``202406L``
     ---------------------------------------------------------- -----------------
-    ``__cpp_lib_constexpr_queue``                              ``202502L``
+    ``__cpp_lib_constexpr_queue``                              *unimplemented*
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_set``                                ``202502L``
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_constexpr_stack``                              *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_constexpr_unordered_map``                      *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_constexpr_unordered_set``                      *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_constrained_equality``                         ``202411L``
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_contracts``                                    *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_copyable_function``                            *unimplemented*
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_debugging``                                    ``202403L``
@@ -488,8 +504,50 @@ Status
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_generate_random``                              *unimplemented*
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_array``                               *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_basic_stacktrace``                    *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_basic_string``                        *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_basic_string_view``                   *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_bitset``                              *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_common_iterator``                     *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_counted_iterator``                    *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_deque``                               *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_expected``                            *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_forward_list``                        *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_inplace_vector``                      *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_list``                                *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_mdspan``                              *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_optional``                            *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_shared_ptr_array``                    *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_span``                                *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_valarray``                            *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_vector``                              *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hardened_view_interface``                      *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_hazard_pointer``                               *unimplemented*
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_hive``                                         *unimplemented*
+    ---------------------------------------------------------- -----------------
+    ``__cpp_lib_indirect``                                     *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_inplace_vector``                               *unimplemented*
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_integer_sequence``                             ``202511L``
@@ -514,10 +572,14 @@ Status
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_philox_engine``                                *unimplemented*
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_polymorphic``                                  *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_ranges_concat``                                ``202403L``
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_ranges_indices``                               ``202506L``
     ---------------------------------------------------------- -----------------
+    ``__cpp_lib_ranges_reserve_hint``                          *unimplemented*
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_ratio``                                        ``202306L``
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_raw_memory_algorithms``                        ``202411L``
diff --git a/libcxx/include/version b/libcxx/include/version
index c8fd4004d40cd..9e704c1e9ae79 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -72,11 +72,15 @@ __cpp_lib_constexpr_bitset                              202207L <bitset>
 __cpp_lib_constexpr_charconv                            202207L <charconv>
 __cpp_lib_constexpr_cmath                               202202L <cmath> <cstdlib>
 __cpp_lib_constexpr_complex                             201711L <complex>
+__cpp_lib_constexpr_deque                               202502L <deque>
 __cpp_lib_constexpr_dynamic_alloc                       201907L <memory>
+__cpp_lib_constexpr_exceptions                          202502L <exception> <expected> <format>
+                                                                <optional> <stdexcept> <variant>
 __cpp_lib_constexpr_flat_map                            202502L <flat_map>
 __cpp_lib_constexpr_flat_set                            202502L <flat_set>
 __cpp_lib_constexpr_forward_list                        202502L <forward_list>
 __cpp_lib_constexpr_functional                          201907L <functional>
+__cpp_lib_constexpr_inplace_vector                      202502L <inplace_vector>
 __cpp_lib_constexpr_iterator                            201811L <iterator>
 __cpp_lib_constexpr_list                                202502L <list>
 __cpp_lib_constexpr_map                                 202502L <map>
@@ -86,10 +90,13 @@ __cpp_lib_constexpr_new                                 202406L <new>
 __cpp_lib_constexpr_numeric                             201911L <numeric>
 __cpp_lib_constexpr_queue                               202502L <queue>
 __cpp_lib_constexpr_set                                 202502L <set>
+__cpp_lib_constexpr_stack                               202502L <stack>
 __cpp_lib_constexpr_string                              201907L <string>
 __cpp_lib_constexpr_string_view                         201811L <string_view>
 __cpp_lib_constexpr_tuple                               201811L <tuple>
 __cpp_lib_constexpr_typeinfo                            202106L <typeinfo>
+__cpp_lib_constexpr_unordered_map                       202502L <unordered_map>
+__cpp_lib_constexpr_unordered_set                       202502L <unordered_set>
 __cpp_lib_constexpr_utility                             201811L <utility>
 __cpp_lib_constexpr_vector                              201907L <vector>
 __cpp_lib_constrained_equality                          202411L <expected> <optional> <tuple>
@@ -98,6 +105,7 @@ __cpp_lib_containers_ranges                             202202L <deque> <forward
                                                                 <map> <queue> <set>
                                                                 <stack> <string> <unordered_map>
                                                                 <unordered_set> <vector>
+__cpp_lib_contracts                                     202502L <contracts>
 __cpp_lib_copyable_function                             202306L <functional>
 __cpp_lib_coroutine                                     201902L <coroutine>
 __cpp_lib_debugging                                     202403L <debugging>
@@ -138,11 +146,32 @@ __cpp_lib_gcd_lcm                                       201606L <numeric>
 __cpp_lib_generate_random                               202403L <random>
 __cpp_lib_generic_associative_lookup                    201304L <map> <set>
 __cpp_lib_generic_unordered_lookup                      201811L <unordered_map> <unordered_set>
+__cpp_lib_hardened_array                                202502L <array>
+__cpp_lib_hardened_basic_stacktrace                     202506L <stacktrace>
+__cpp_lib_hardened_basic_string                         202502L <string>
+__cpp_lib_hardened_basic_string_view                    202502L <string_view>
+__cpp_lib_hardened_bitset                               202502L <bitset>
+__cpp_lib_hardened_common_iterator                      202506L <iterator>
+__cpp_lib_hardened_counted_iterator                     202506L <iterator>
+__cpp_lib_hardened_deque                                202502L <deque>
+__cpp_lib_hardened_expected                             202502L <expected>
+__cpp_lib_hardened_forward_list                         202502L <forward_list>
+__cpp_lib_hardened_inplace_vector                       202502L <inplace_vector>
+__cpp_lib_hardened_list                                 202502L <list>
+__cpp_lib_hardened_mdspan                               202502L <mdspan>
+__cpp_lib_hardened_optional                             202502L <optional>
+__cpp_lib_hardened_shared_ptr_array                     202506L <memory>
+__cpp_lib_hardened_span                                 202502L <span>
+__cpp_lib_hardened_valarray                             202502L <valarray>
+__cpp_lib_hardened_vector                               202502L <vector>
+__cpp_lib_hardened_view_interface                       202506L <ranges>
 __cpp_lib_hardware_interference_size                    201703L <new>
 __cpp_lib_has_unique_object_representations             201606L <type_traits>
 __cpp_lib_hazard_pointer                                202306L <hazard_pointer>
+__cpp_lib_hive                                          202502L <hive>
 __cpp_lib_hypot                                         201603L <cmath>
 __cpp_lib_incomplete_container_elements                 201505L <forward_list> <list> <vector>
+__cpp_lib_indirect                                      202502L <memory>
 __cpp_lib_initializer_list                              202511L <initializer_list>
 __cpp_lib_inplace_vector                                202406L <inplace_vector>
 __cpp_lib_int_pow2                                      202002L <bit>
@@ -206,6 +235,7 @@ __cpp_lib_out_ptr                                       202311L <memory>
 __cpp_lib_parallel_algorithm                            201603L <algorithm> <numeric>
 __cpp_lib_philox_engine                                 202406L <random>
 __cpp_lib_pointer_tag_pair                              202606L <memory>
+__cpp_lib_polymorphic                                   202502L <memory>
 __cpp_lib_polymorphic_allocator                         201902L <memory_resource>
 __cpp_lib_print                                         202207L <ostream> <print>
 __cpp_lib_quoted_string_io                              201304L <iomanip>
@@ -213,6 +243,7 @@ __cpp_lib_ranges                                        202406L <algorithm> <fun
                                                                 <memory> <ranges>
                                                         202110L // C++20
 __cpp_lib_ranges_as_const                               202207L <ranges>
+__cpp_lib_ranges_as_input                               202502L <ranges>
 __cpp_lib_ranges_as_rvalue                              202207L <ranges>
 __cpp_lib_ranges_chunk                                  202202L <ranges>
 __cpp_lib_ranges_chunk_by                               202202L <ranges>
@@ -225,6 +256,7 @@ __cpp_lib_ranges_indices                                202506L <ranges>
 __cpp_lib_ranges_iota                                   202202L <numeric>
 __cpp_lib_ranges_join_with                              202202L <ranges>
 __cpp_lib_ranges_repeat                                 202207L <ranges>
+__cpp_lib_ranges_reserve_hint                           202502L <ranges>
 __cpp_lib_ranges_slide                                  202202L <ranges>
 __cpp_lib_ranges_starts_ends_with                       202106L <algorithm>
 __cpp_lib_ranges_stride                                 202207L <ranges>
@@ -543,6 +575,7 @@ __cpp_lib_void_t                                        201411L <type_traits>
 # undef  __cpp_lib_ranges
 # define __cpp_lib_ranges                               202406L
 // # define __cpp_lib_ranges_as_const                      202207L
+// # define __cpp_lib_ranges_as_input                      202502L
 # define __cpp_lib_ranges_as_rvalue                     202207L
 // # define __cpp_lib_ranges_chunk                         202202L
 # define __cpp_lib_ranges_chunk_by                      202202L
@@ -583,17 +616,24 @@ __cpp_lib_void_t                                        201411L <type_traits>
 # define __cpp_lib_constant_wrapper                     202606L
 # undef  __cpp_lib_constexpr_algorithms
 # define __cpp_lib_constexpr_algorithms                 202306L
+// # define __cpp_lib_constexpr_deque                      202502L
+// # define __cpp_lib_constexpr_exceptions                 202502L
 # define __cpp_lib_constexpr_flat_map                   202502L
 # define __cpp_lib_constexpr_flat_set                   202502L
 # define __cpp_lib_constexpr_forward_list               202502L
+// # define __cpp_lib_constexpr_inplace_vector             202502L
 # define __cpp_lib_constexpr_list                       202502L
 # define __cpp_lib_constexpr_map                        202502L
 # if !defined(_LIBCPP_ABI_VCRUNTIME)
 #   define __cpp_lib_constexpr_new                      202406L
 # endif
-# define __cpp_lib_constexpr_queue                      202502L
+// # define __cpp_lib_constexpr_queue                      202502L
 # define __cpp_lib_constexpr_set                        202502L
+// # define __cpp_lib_constexpr_stack                      202502L
+// # define __cpp_lib_constexpr_unordered_map              202502L
+// # define __cpp_lib_constexpr_unordered_set              202502L
 # define __cpp_lib_constrained_equality                 202411L
+// # define __cpp_lib_contracts                            202502L
 // # define __cpp_lib_copyable_function                    202306L
 # if _LIBCPP_AVAILABILITY_HAS_DEBUGGING
 #   define __cpp_lib_debugging                          202403L
@@ -613,7 +653,28 @@ __cpp_lib_void_t                                        201411L <type_traits>
 # endif
 # define __cpp_lib_function_ref                         202603L
 // # define __cpp_lib_generate_random                      202403L
+// # define __cpp_lib_hardened_array                       202502L
+// # define __cpp_lib_hardened_basic_stacktrace            202506L
+// # define __cpp_lib_hardened_basic_string                202502L
+// # define __cpp_lib_hardened_basic_string_view           202502L
+// # define __cpp_lib_hardened_bitset                      202502L
+// # define __cpp_lib_hardened_common_iterator             202506L
+// # define __cpp_lib_hardened_counted_iterator            202506L
+// # define __cpp_lib_hardened_deque                       202502L
+// # define __cpp_lib_hardened_expected                    202502L
+// # define __cpp_lib_hardened_forward_list                202502L
+// # define __cpp_lib_hardened_inplace_vector              202502L
+// # define __cpp_lib_hardened_list                        202502L
+// # define __cpp_lib_hardened_mdspan                      202502L
+// # define __cpp_lib_hardened_optional                    202502L
+// # define __cpp_lib_hardened_shared_ptr_array            202506L
+// # define __cpp_lib_hardened_span                        202502L
+// # define __cpp_lib_hardened_valarray                    202502L
+// # define __cpp_lib_hardened_vector                      202502L
+// # define __cpp_lib_hardened_view_interface              202506L
 // # define __cpp_lib_hazard_pointer                       202306L
+// # define __cpp_lib_hive                                 202502L
+// # define __cpp_lib_indirect                             202502L
 // # define __cpp_lib_inplace_vector                       202406L
 # undef  __cpp_lib_integer_sequence
 # define __cpp_lib_integer_sequence                     202511L
@@ -637,8 +698,10 @@ __cpp_lib_void_t                                        201411L <type_traits>
 # undef  __cpp_lib_out_ptr
 # define __cpp_lib_out_ptr                              202311L
 // # define __cpp_lib_philox_engine                        202406L
+// # define __cpp_lib_polymorphic                          202502L
 # define __cpp_lib_ranges_concat                        202403L
 # define __cpp_lib_ranges_indices                       202506L
+// # define __cpp_lib_ranges_reserve_hint                  202502L
 # define __cpp_lib_ratio                                202306L
 # undef  __cpp_lib_raw_memory_algorithms
 # define __cpp_lib_raw_memory_algorithms                202411L
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
index 5f5dc28e5ba22..00521bae49850 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
@@ -28,6 +28,10 @@
 #    error "__cpp_lib_freestanding_array should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should not be defined before c++17"
 #  endif
@@ -46,6 +50,10 @@
 #    error "__cpp_lib_freestanding_array should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should not be defined before c++17"
 #  endif
@@ -67,6 +75,10 @@
 #    error "__cpp_lib_freestanding_array should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++17"
 #  endif
@@ -91,6 +103,10 @@
 #    error "__cpp_lib_freestanding_array should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++20"
 #  endif
@@ -118,6 +134,10 @@
 #    error "__cpp_lib_freestanding_array should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++23"
 #  endif
@@ -154,6 +174,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_array != 202502L
+#      error "__cpp_lib_hardened_array should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++26"
 #  endif
@@ -190,6 +223,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_array != 202502L
+#      error "__cpp_lib_hardened_array should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
index 22c4319270521..75f4ec68769b8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
@@ -28,6 +28,10 @@
 #    error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 14
 
 #  ifdef __cpp_lib_bitset
@@ -38,6 +42,10 @@
 #    error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 17
 
 #  ifdef __cpp_lib_bitset
@@ -48,6 +56,10 @@
 #    error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 20
 
 #  ifdef __cpp_lib_bitset
@@ -58,6 +70,10 @@
 #    error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 23
 
 #  ifdef __cpp_lib_bitset
@@ -71,6 +87,10 @@
 #    error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_bitset
@@ -87,6 +107,19 @@
 #    error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_bitset != 202502L
+#      error "__cpp_lib_hardened_bitset should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #elif TEST_STD_VER > 26
 
 #  ifndef __cpp_lib_bitset
@@ -103,6 +136,19 @@
 #    error "__cpp_lib_constexpr_bitset should have the value 202207L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_bitset != 202502L
+#      error "__cpp_lib_hardened_bitset should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
index e8dde05dd7b07..145add07c842f 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
@@ -24,6 +24,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -36,6 +40,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should not be defined before c++17"
 #  endif
@@ -46,6 +54,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -58,6 +70,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should not be defined before c++17"
 #  endif
@@ -71,6 +87,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -83,6 +103,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++17"
 #  endif
@@ -99,6 +123,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -114,6 +142,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++20"
 #  endif
@@ -130,6 +162,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++23"
 #  endif
@@ -148,6 +184,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++23"
 #  endif
@@ -164,6 +204,19 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_deque != 202502L
+#      error "__cpp_lib_constexpr_deque should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++26"
 #  endif
@@ -191,6 +244,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_deque != 202502L
+#      error "__cpp_lib_hardened_deque should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++26"
 #  endif
@@ -207,6 +273,19 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_deque != 202502L
+#      error "__cpp_lib_constexpr_deque should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++29"
 #  endif
@@ -234,6 +313,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_deque != 202502L
+#      error "__cpp_lib_hardened_deque should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
index 8d15c9297f0d4..6791c6d4ffc2e 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
@@ -20,18 +20,30 @@
 
 #if TEST_STD_VER < 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
 #  endif
 
 #elif TEST_STD_VER == 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
 #  endif
 
 #elif TEST_STD_VER == 17
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should be defined in c++17"
 #  endif
@@ -41,6 +53,10 @@
 
 #elif TEST_STD_VER == 20
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should be defined in c++20"
 #  endif
@@ -50,6 +66,10 @@
 
 #elif TEST_STD_VER == 23
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should be defined in c++23"
 #  endif
@@ -59,6 +79,19 @@
 
 #elif TEST_STD_VER == 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should be defined in c++26"
 #  endif
@@ -68,6 +101,19 @@
 
 #elif TEST_STD_VER > 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
index 38b36a8eb8653..b9b4ada8c4d22 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
@@ -20,6 +20,10 @@
 
 #if TEST_STD_VER < 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -32,8 +36,16 @@
 #    error "__cpp_lib_freestanding_expected should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -46,8 +58,16 @@
 #    error "__cpp_lib_freestanding_expected should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 17
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -60,8 +80,16 @@
 #    error "__cpp_lib_freestanding_expected should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 20
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -74,8 +102,16 @@
 #    error "__cpp_lib_freestanding_expected should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 23
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -91,8 +127,25 @@
 #    error "__cpp_lib_freestanding_expected should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
 #elif TEST_STD_VER == 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++26"
 #  endif
@@ -120,8 +173,34 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_expected != 202502L
+#      error "__cpp_lib_hardened_expected should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #elif TEST_STD_VER > 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++29"
 #  endif
@@ -149,6 +228,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_expected != 202502L
+#      error "__cpp_lib_hardened_expected should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
index af6a25c057c2f..49cd126164096 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
@@ -20,6 +20,10 @@
 
 #if TEST_STD_VER < 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_format
 #    error "__cpp_lib_format should not be defined before c++20"
 #  endif
@@ -34,6 +38,10 @@
 
 #elif TEST_STD_VER == 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_format
 #    error "__cpp_lib_format should not be defined before c++20"
 #  endif
@@ -48,6 +56,10 @@
 
 #elif TEST_STD_VER == 17
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_format
 #    error "__cpp_lib_format should not be defined before c++20"
 #  endif
@@ -62,6 +74,10 @@
 
 #elif TEST_STD_VER == 20
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
 #    ifndef __cpp_lib_format
 #      error "__cpp_lib_format should be defined in c++20"
@@ -88,6 +104,10 @@
 
 #elif TEST_STD_VER == 23
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
 #    ifndef __cpp_lib_format
 #      error "__cpp_lib_format should be defined in c++23"
@@ -117,6 +137,19 @@
 
 #elif TEST_STD_VER == 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
 #    ifndef __cpp_lib_format
 #      error "__cpp_lib_format should be defined in c++26"
@@ -146,6 +179,19 @@
 
 #elif TEST_STD_VER > 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
 #    ifndef __cpp_lib_format
 #      error "__cpp_lib_format should be defined in c++29"
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
index e2e7c750decd2..39cb8a7ff02d4 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
@@ -40,6 +40,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
@@ -74,6 +78,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
@@ -111,6 +119,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++17"
 #  endif
@@ -157,6 +169,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++20"
 #  endif
@@ -209,6 +225,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++23"
 #  endif
@@ -273,6 +293,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_forward_list != 202502L
+#      error "__cpp_lib_hardened_forward_list should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++26"
 #  endif
@@ -337,6 +370,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_forward_list != 202502L
+#      error "__cpp_lib_hardened_forward_list should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
index bb251f001b42a..22dc910ce6214 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
@@ -28,6 +28,14 @@
 #    error "__cpp_lib_constexpr_iterator should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_make_reverse_iterator
 #    error "__cpp_lib_make_reverse_iterator should not be defined before c++14"
 #  endif
@@ -62,6 +70,14 @@
 #    error "__cpp_lib_constexpr_iterator should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_make_reverse_iterator
 #    error "__cpp_lib_make_reverse_iterator should be defined in c++14"
 #  endif
@@ -105,6 +121,14 @@
 #    error "__cpp_lib_constexpr_iterator should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_make_reverse_iterator
 #    error "__cpp_lib_make_reverse_iterator should be defined in c++17"
 #  endif
@@ -154,6 +178,14 @@
 #    error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_make_reverse_iterator
 #    error "__cpp_lib_make_reverse_iterator should be defined in c++20"
 #  endif
@@ -212,6 +244,14 @@
 #    error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_make_reverse_iterator
 #    error "__cpp_lib_make_reverse_iterator should be defined in c++23"
 #  endif
@@ -270,6 +310,32 @@
 #    error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_common_iterator != 202506L
+#      error "__cpp_lib_hardened_common_iterator should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_counted_iterator != 202506L
+#      error "__cpp_lib_hardened_counted_iterator should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_make_reverse_iterator
 #    error "__cpp_lib_make_reverse_iterator should be defined in c++26"
 #  endif
@@ -328,6 +394,32 @@
 #    error "__cpp_lib_constexpr_iterator should have the value 201811L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_common_iterator != 202506L
+#      error "__cpp_lib_hardened_common_iterator should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_counted_iterator != 202506L
+#      error "__cpp_lib_hardened_counted_iterator should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_make_reverse_iterator
 #    error "__cpp_lib_make_reverse_iterator should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
index 15aa665c0fea0..481ed3a8b5855 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
@@ -40,6 +40,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
@@ -74,6 +78,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
@@ -111,6 +119,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++17"
 #  endif
@@ -157,6 +169,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++20"
 #  endif
@@ -209,6 +225,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++23"
 #  endif
@@ -273,6 +293,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_list != 202502L
+#      error "__cpp_lib_hardened_list should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++26"
 #  endif
@@ -337,6 +370,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_list != 202502L
+#      error "__cpp_lib_hardened_list should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
index 7e8ba062e50c2..e045dded2ab54 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
@@ -28,6 +28,10 @@
 #    error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_mdspan
 #    error "__cpp_lib_mdspan should not be defined before c++23"
 #  endif
@@ -50,6 +54,10 @@
 #    error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_mdspan
 #    error "__cpp_lib_mdspan should not be defined before c++23"
 #  endif
@@ -72,6 +80,10 @@
 #    error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_mdspan
 #    error "__cpp_lib_mdspan should not be defined before c++23"
 #  endif
@@ -94,6 +106,10 @@
 #    error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_mdspan
 #    error "__cpp_lib_mdspan should not be defined before c++23"
 #  endif
@@ -116,6 +132,10 @@
 #    error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_mdspan
 #    error "__cpp_lib_mdspan should be defined in c++23"
 #  endif
@@ -153,6 +173,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_mdspan != 202502L
+#      error "__cpp_lib_hardened_mdspan should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_mdspan
 #    error "__cpp_lib_mdspan should be defined in c++26"
 #  endif
@@ -199,6 +232,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_mdspan != 202502L
+#      error "__cpp_lib_hardened_mdspan should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_mdspan
 #    error "__cpp_lib_mdspan should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
index 45eac0ce16014..51fc0744d5462 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
@@ -52,6 +52,14 @@
 #    error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_is_sufficiently_aligned
 #    error "__cpp_lib_is_sufficiently_aligned should not be defined before c++26"
 #  endif
@@ -68,6 +76,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should not be defined before c++20"
 #  endif
@@ -134,6 +146,14 @@
 #    error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_is_sufficiently_aligned
 #    error "__cpp_lib_is_sufficiently_aligned should not be defined before c++26"
 #  endif
@@ -153,6 +173,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should not be defined before c++20"
 #  endif
@@ -231,6 +255,14 @@
 #    error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17"
 #  endif
 
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_is_sufficiently_aligned
 #    error "__cpp_lib_is_sufficiently_aligned should not be defined before c++26"
 #  endif
@@ -250,6 +282,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should not be defined before c++20"
 #  endif
@@ -349,6 +385,14 @@
 #    error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_is_sufficiently_aligned
 #    error "__cpp_lib_is_sufficiently_aligned should not be defined before c++26"
 #  endif
@@ -368,6 +412,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++20"
 #  endif
@@ -479,6 +527,14 @@
 #    error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_is_sufficiently_aligned
 #    error "__cpp_lib_is_sufficiently_aligned should not be defined before c++26"
 #  endif
@@ -501,6 +557,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++23"
 #  endif
@@ -612,6 +672,32 @@
 #    error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_shared_ptr_array != 202506L
+#      error "__cpp_lib_hardened_shared_ptr_array should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should be defined in c++26"
+#    endif
+#    if __cpp_lib_indirect != 202502L
+#      error "__cpp_lib_indirect should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_is_sufficiently_aligned
 #    error "__cpp_lib_is_sufficiently_aligned should be defined in c++26"
 #  endif
@@ -637,6 +723,19 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should be defined in c++26"
+#    endif
+#    if __cpp_lib_polymorphic != 202502L
+#      error "__cpp_lib_polymorphic should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++26"
 #  endif
@@ -751,6 +850,32 @@
 #    error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_shared_ptr_array != 202506L
+#      error "__cpp_lib_hardened_shared_ptr_array should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should be defined in c++29"
+#    endif
+#    if __cpp_lib_indirect != 202502L
+#      error "__cpp_lib_indirect should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_is_sufficiently_aligned
 #    error "__cpp_lib_is_sufficiently_aligned should be defined in c++29"
 #  endif
@@ -785,6 +910,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should be defined in c++29"
+#    endif
+#    if __cpp_lib_polymorphic != 202502L
+#      error "__cpp_lib_polymorphic should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
index 63808fd08ed13..77be442d22a4d 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
@@ -20,6 +20,10 @@
 
 #if TEST_STD_VER < 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -28,6 +32,10 @@
 #    error "__cpp_lib_freestanding_optional should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_optional
 #    error "__cpp_lib_optional should not be defined before c++17"
 #  endif
@@ -38,6 +46,10 @@
 
 #elif TEST_STD_VER == 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -46,6 +58,10 @@
 #    error "__cpp_lib_freestanding_optional should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_optional
 #    error "__cpp_lib_optional should not be defined before c++17"
 #  endif
@@ -56,6 +72,10 @@
 
 #elif TEST_STD_VER == 17
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -64,6 +84,10 @@
 #    error "__cpp_lib_freestanding_optional should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_optional
 #    error "__cpp_lib_optional should be defined in c++17"
 #  endif
@@ -77,6 +101,10 @@
 
 #elif TEST_STD_VER == 20
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -85,6 +113,10 @@
 #    error "__cpp_lib_freestanding_optional should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_optional
 #    error "__cpp_lib_optional should be defined in c++20"
 #  endif
@@ -98,6 +130,10 @@
 
 #elif TEST_STD_VER == 23
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -106,6 +142,10 @@
 #    error "__cpp_lib_freestanding_optional should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_optional
 #    error "__cpp_lib_optional should be defined in c++23"
 #  endif
@@ -119,6 +159,19 @@
 
 #elif TEST_STD_VER == 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++26"
 #  endif
@@ -139,6 +192,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_optional != 202502L
+#      error "__cpp_lib_hardened_optional should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_optional
 #    error "__cpp_lib_optional should be defined in c++26"
 #  endif
@@ -161,6 +227,19 @@
 
 #elif TEST_STD_VER > 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++29"
 #  endif
@@ -181,6 +260,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_optional != 202502L
+#      error "__cpp_lib_hardened_optional should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_optional
 #    error "__cpp_lib_optional should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
index 8747e421f84c4..a63cd5c15a015 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
@@ -103,11 +103,17 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
 #  endif
 
-#  ifndef __cpp_lib_constexpr_queue
-#    error "__cpp_lib_constexpr_queue should be defined in c++26"
-#  endif
-#  if __cpp_lib_constexpr_queue != 202502L
-#    error "__cpp_lib_constexpr_queue should have the value 202502L in c++26"
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_queue != 202502L
+#      error "__cpp_lib_constexpr_queue should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should not be defined because it is unimplemented in libc++!"
+#    endif
 #  endif
 
 #  ifndef __cpp_lib_containers_ranges
@@ -126,11 +132,17 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++29"
 #  endif
 
-#  ifndef __cpp_lib_constexpr_queue
-#    error "__cpp_lib_constexpr_queue should be defined in c++29"
-#  endif
-#  if __cpp_lib_constexpr_queue != 202502L
-#    error "__cpp_lib_constexpr_queue should have the value 202502L in c++29"
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_queue != 202502L
+#      error "__cpp_lib_constexpr_queue should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should not be defined because it is unimplemented in libc++!"
+#    endif
 #  endif
 
 #  ifndef __cpp_lib_containers_ranges
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
index 1b507cdafb33a..4c992b8c4bcb3 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
@@ -24,6 +24,10 @@
 #    error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should not be defined before c++20"
 #  endif
@@ -32,6 +36,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -64,6 +72,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -90,6 +102,10 @@
 #    error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should not be defined before c++20"
 #  endif
@@ -98,6 +114,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -130,6 +150,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -156,6 +180,10 @@
 #    error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should not be defined before c++20"
 #  endif
@@ -164,6 +192,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -196,6 +228,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -222,6 +258,10 @@
 #    error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++20"
 #  endif
@@ -233,6 +273,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -265,6 +309,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -291,6 +339,10 @@
 #    error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++23"
 #  endif
@@ -311,6 +363,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should be defined in c++23"
+#    endif
+#    if __cpp_lib_ranges_as_input != 202502L
+#      error "__cpp_lib_ranges_as_input should have the value 202502L in c++23"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should be defined in c++23"
 #  endif
@@ -367,6 +432,10 @@
 #    error "__cpp_lib_ranges_repeat should have the value 202207L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_ranges_slide
 #      error "__cpp_lib_ranges_slide should be defined in c++23"
@@ -420,6 +489,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_view_interface != 202506L
+#      error "__cpp_lib_hardened_view_interface should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++26"
 #  endif
@@ -440,6 +522,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should be defined in c++26"
+#    endif
+#    if __cpp_lib_ranges_as_input != 202502L
+#      error "__cpp_lib_ranges_as_input should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should be defined in c++26"
 #  endif
@@ -502,6 +597,19 @@
 #    error "__cpp_lib_ranges_repeat should have the value 202207L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should be defined in c++26"
+#    endif
+#    if __cpp_lib_ranges_reserve_hint != 202502L
+#      error "__cpp_lib_ranges_reserve_hint should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_ranges_slide
 #      error "__cpp_lib_ranges_slide should be defined in c++26"
@@ -555,6 +663,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_view_interface != 202506L
+#      error "__cpp_lib_hardened_view_interface should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges
 #    error "__cpp_lib_ranges should be defined in c++29"
 #  endif
@@ -575,6 +696,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_as_input != 202502L
+#      error "__cpp_lib_ranges_as_input should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should be defined in c++29"
 #  endif
@@ -637,6 +771,19 @@
 #    error "__cpp_lib_ranges_repeat should have the value 202207L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_reserve_hint != 202502L
+#      error "__cpp_lib_ranges_reserve_hint should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_ranges_slide
 #      error "__cpp_lib_ranges_slide should be defined in c++29"
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
index 9fc49192a4f52..6f7715c4952dc 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
@@ -20,6 +20,10 @@
 
 #if TEST_STD_VER < 14
 
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_span
 #    error "__cpp_lib_span should not be defined before c++20"
 #  endif
@@ -30,6 +34,10 @@
 
 #elif TEST_STD_VER == 14
 
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_span
 #    error "__cpp_lib_span should not be defined before c++20"
 #  endif
@@ -40,6 +48,10 @@
 
 #elif TEST_STD_VER == 17
 
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_span
 #    error "__cpp_lib_span should not be defined before c++20"
 #  endif
@@ -50,6 +62,10 @@
 
 #elif TEST_STD_VER == 20
 
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_span
 #    error "__cpp_lib_span should be defined in c++20"
 #  endif
@@ -63,6 +79,10 @@
 
 #elif TEST_STD_VER == 23
 
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_span
 #    error "__cpp_lib_span should be defined in c++23"
 #  endif
@@ -76,6 +96,19 @@
 
 #elif TEST_STD_VER == 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_span != 202502L
+#      error "__cpp_lib_hardened_span should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_span
 #    error "__cpp_lib_span should be defined in c++26"
 #  endif
@@ -92,6 +125,19 @@
 
 #elif TEST_STD_VER > 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_span != 202502L
+#      error "__cpp_lib_hardened_span should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_span
 #    error "__cpp_lib_span should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
index cc06307be967c..f20f3c227f341 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
@@ -24,6 +24,10 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -34,6 +38,10 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -44,6 +52,10 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -54,6 +66,10 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -67,6 +83,10 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++23"
 #  endif
@@ -83,6 +103,19 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_stack != 202502L
+#      error "__cpp_lib_constexpr_stack should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++26"
 #  endif
@@ -99,6 +132,19 @@
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_stack != 202502L
+#      error "__cpp_lib_constexpr_stack should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stdexcept.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stdexcept.version.compile.pass.cpp
new file mode 100644
index 0000000000000..4676c73a77f6b
--- /dev/null
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stdexcept.version.compile.pass.cpp
@@ -0,0 +1,83 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// WARNING: This test was generated by generate_feature_test_macro_components.py
+// and should not be edited manually.
+
+// <stdexcept>
+
+// Test the feature test macros defined by <stdexcept>
+
+// clang-format off
+
+#include <stdexcept>
+#include "test_macros.h"
+
+#if TEST_STD_VER < 14
+
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
+#elif TEST_STD_VER == 14
+
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
+#elif TEST_STD_VER == 17
+
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
+#elif TEST_STD_VER == 20
+
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
+#elif TEST_STD_VER == 23
+
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
+#elif TEST_STD_VER == 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
+
+// clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
index bcc78a9a4143d..342372d28bf38 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
@@ -44,6 +44,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should not be defined before c++17"
 #  endif
@@ -102,6 +106,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should not be defined before c++17"
 #  endif
@@ -166,6 +174,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++17"
 #  endif
@@ -251,6 +263,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++20"
 #  endif
@@ -342,6 +358,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++23"
 #  endif
@@ -448,6 +468,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_basic_string != 202502L
+#      error "__cpp_lib_hardened_basic_string should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++26"
 #  endif
@@ -566,6 +599,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_basic_string != 202502L
+#      error "__cpp_lib_hardened_basic_string should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
index 5b3f63883d2e8..aa2b26287ea97 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
@@ -32,6 +32,10 @@
 #    error "__cpp_lib_freestanding_string_view should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_starts_ends_with
 #    error "__cpp_lib_starts_ends_with should not be defined before c++20"
 #  endif
@@ -62,6 +66,10 @@
 #    error "__cpp_lib_freestanding_string_view should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_starts_ends_with
 #    error "__cpp_lib_starts_ends_with should not be defined before c++20"
 #  endif
@@ -92,6 +100,10 @@
 #    error "__cpp_lib_freestanding_string_view should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_starts_ends_with
 #    error "__cpp_lib_starts_ends_with should not be defined before c++20"
 #  endif
@@ -137,6 +149,10 @@
 #    error "__cpp_lib_freestanding_string_view should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_starts_ends_with
 #    error "__cpp_lib_starts_ends_with should be defined in c++20"
 #  endif
@@ -185,6 +201,10 @@
 #    error "__cpp_lib_freestanding_string_view should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_starts_ends_with
 #    error "__cpp_lib_starts_ends_with should be defined in c++23"
 #  endif
@@ -245,6 +265,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_basic_string_view != 202502L
+#      error "__cpp_lib_hardened_basic_string_view should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_starts_ends_with
 #    error "__cpp_lib_starts_ends_with should be defined in c++26"
 #  endif
@@ -308,6 +341,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_basic_string_view != 202502L
+#      error "__cpp_lib_hardened_basic_string_view should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_starts_ends_with
 #    error "__cpp_lib_starts_ends_with should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
index 5997d155b574f..c6555e4da554a 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
@@ -32,6 +32,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -78,6 +82,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -127,6 +135,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -185,6 +197,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -258,6 +274,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++23"
 #  endif
@@ -352,6 +372,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_unordered_map != 202502L
+#      error "__cpp_lib_constexpr_unordered_map should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++26"
 #  endif
@@ -446,6 +479,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_unordered_map != 202502L
+#      error "__cpp_lib_constexpr_unordered_map should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
index a4f861ce9ae19..abe86bd9a5fd6 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
@@ -32,6 +32,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -66,6 +70,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -103,6 +111,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -146,6 +158,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
@@ -204,6 +220,10 @@
 #    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++23"
 #  endif
@@ -274,6 +294,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_unordered_set != 202502L
+#      error "__cpp_lib_constexpr_unordered_set should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++26"
 #  endif
@@ -344,6 +377,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_unordered_set != 202502L
+#      error "__cpp_lib_constexpr_unordered_set should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/valarray.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/valarray.version.compile.pass.cpp
index 36d84a86901a3..893b2ffd6e0c3 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/valarray.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/valarray.version.compile.pass.cpp
@@ -20,12 +20,20 @@
 
 #if TEST_STD_VER < 14
 
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should not be defined before c++14"
 #  endif
 
 #elif TEST_STD_VER == 14
 
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should be defined in c++14"
 #  endif
@@ -35,6 +43,10 @@
 
 #elif TEST_STD_VER == 17
 
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should be defined in c++17"
 #  endif
@@ -44,6 +56,10 @@
 
 #elif TEST_STD_VER == 20
 
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should be defined in c++20"
 #  endif
@@ -53,6 +69,10 @@
 
 #elif TEST_STD_VER == 23
 
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should be defined in c++23"
 #  endif
@@ -62,6 +82,19 @@
 
 #elif TEST_STD_VER == 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_valarray != 202502L
+#      error "__cpp_lib_hardened_valarray should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should be defined in c++26"
 #  endif
@@ -71,6 +104,19 @@
 
 #elif TEST_STD_VER > 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_valarray != 202502L
+#      error "__cpp_lib_hardened_valarray should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
index 1fa89b2a7c3f7..c3fadc74c2321 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
@@ -20,6 +20,10 @@
 
 #if TEST_STD_VER < 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -34,6 +38,10 @@
 
 #elif TEST_STD_VER == 14
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -48,6 +56,10 @@
 
 #elif TEST_STD_VER == 17
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -65,6 +77,10 @@
 
 #elif TEST_STD_VER == 20
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -82,6 +98,10 @@
 
 #elif TEST_STD_VER == 23
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should not be defined before c++26"
 #  endif
@@ -99,6 +119,19 @@
 
 #elif TEST_STD_VER == 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++26"
 #  endif
@@ -128,6 +161,19 @@
 
 #elif TEST_STD_VER > 26
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
index 354a5b1fdd4db..697514cf401e1 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
@@ -40,6 +40,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
@@ -70,6 +74,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
@@ -103,6 +111,10 @@
 #    error "__cpp_lib_erase_if should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++17"
 #  endif
@@ -148,6 +160,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++20"
 #  endif
@@ -196,6 +212,10 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++23"
 #  endif
@@ -253,6 +273,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_vector != 202502L
+#      error "__cpp_lib_hardened_vector should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++26"
 #  endif
@@ -310,6 +343,19 @@
 #    error "__cpp_lib_erase_if should have the value 202002L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_vector != 202502L
+#      error "__cpp_lib_hardened_vector should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_incomplete_container_elements
 #    error "__cpp_lib_incomplete_container_elements should be defined in c++29"
 #  endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
index e7baa3f15218d..0d6b45f824a03 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
@@ -204,10 +204,18 @@
 #    error "__cpp_lib_constexpr_complex should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should not be defined before c++26"
 #  endif
@@ -224,6 +232,10 @@
 #    error "__cpp_lib_constexpr_functional should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_inplace_vector
+#    error "__cpp_lib_constexpr_inplace_vector should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_iterator
 #    error "__cpp_lib_constexpr_iterator should not be defined before c++20"
 #  endif
@@ -256,6 +268,10 @@
 #    error "__cpp_lib_constexpr_set should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_string
 #    error "__cpp_lib_constexpr_string should not be defined before c++20"
 #  endif
@@ -272,6 +288,14 @@
 #    error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_utility
 #    error "__cpp_lib_constexpr_utility should not be defined before c++20"
 #  endif
@@ -288,6 +312,10 @@
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_contracts
+#    error "__cpp_lib_contracts should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_copyable_function
 #    error "__cpp_lib_copyable_function should not be defined before c++26"
 #  endif
@@ -424,6 +452,82 @@
 #    error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_stacktrace
+#    error "__cpp_lib_hardened_basic_stacktrace should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_inplace_vector
+#    error "__cpp_lib_hardened_inplace_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_hardware_interference_size
 #    error "__cpp_lib_hardware_interference_size should not be defined before c++17"
 #  endif
@@ -436,6 +540,10 @@
 #    error "__cpp_lib_hazard_pointer should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hive
+#    error "__cpp_lib_hive should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_hypot
 #    error "__cpp_lib_hypot should not be defined before c++17"
 #  endif
@@ -444,6 +552,10 @@
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should not be defined before c++14"
 #  endif
@@ -656,6 +768,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_polymorphic_allocator
 #    error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
 #  endif
@@ -676,6 +792,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -724,6 +844,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -1192,10 +1316,18 @@
 #    error "__cpp_lib_constexpr_complex should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should not be defined before c++26"
 #  endif
@@ -1212,6 +1344,10 @@
 #    error "__cpp_lib_constexpr_functional should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_inplace_vector
+#    error "__cpp_lib_constexpr_inplace_vector should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_iterator
 #    error "__cpp_lib_constexpr_iterator should not be defined before c++20"
 #  endif
@@ -1244,6 +1380,10 @@
 #    error "__cpp_lib_constexpr_set should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_string
 #    error "__cpp_lib_constexpr_string should not be defined before c++20"
 #  endif
@@ -1260,6 +1400,14 @@
 #    error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_utility
 #    error "__cpp_lib_constexpr_utility should not be defined before c++20"
 #  endif
@@ -1276,6 +1424,10 @@
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_contracts
+#    error "__cpp_lib_contracts should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_copyable_function
 #    error "__cpp_lib_copyable_function should not be defined before c++26"
 #  endif
@@ -1418,6 +1570,82 @@
 #    error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_stacktrace
+#    error "__cpp_lib_hardened_basic_stacktrace should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_inplace_vector
+#    error "__cpp_lib_hardened_inplace_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_hardware_interference_size
 #    error "__cpp_lib_hardware_interference_size should not be defined before c++17"
 #  endif
@@ -1430,6 +1658,10 @@
 #    error "__cpp_lib_hazard_pointer should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hive
+#    error "__cpp_lib_hive should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_hypot
 #    error "__cpp_lib_hypot should not be defined before c++17"
 #  endif
@@ -1438,6 +1670,10 @@
 #    error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should be defined in c++14"
 #  endif
@@ -1674,6 +1910,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_polymorphic_allocator
 #    error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
 #  endif
@@ -1703,6 +1943,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -1751,6 +1995,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -2288,10 +2536,18 @@
 #    error "__cpp_lib_constexpr_complex should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should not be defined before c++26"
 #  endif
@@ -2308,6 +2564,10 @@
 #    error "__cpp_lib_constexpr_functional should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_inplace_vector
+#    error "__cpp_lib_constexpr_inplace_vector should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_iterator
 #    error "__cpp_lib_constexpr_iterator should not be defined before c++20"
 #  endif
@@ -2340,6 +2600,10 @@
 #    error "__cpp_lib_constexpr_set should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_string
 #    error "__cpp_lib_constexpr_string should not be defined before c++20"
 #  endif
@@ -2356,6 +2620,14 @@
 #    error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_utility
 #    error "__cpp_lib_constexpr_utility should not be defined before c++20"
 #  endif
@@ -2372,6 +2644,10 @@
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_contracts
+#    error "__cpp_lib_contracts should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_copyable_function
 #    error "__cpp_lib_copyable_function should not be defined before c++26"
 #  endif
@@ -2538,6 +2814,82 @@
 #    error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_stacktrace
+#    error "__cpp_lib_hardened_basic_stacktrace should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_inplace_vector
+#    error "__cpp_lib_hardened_inplace_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_hardware_interference_size
 #    error "__cpp_lib_hardware_interference_size should be defined in c++17"
 #  endif
@@ -2556,6 +2908,10 @@
 #    error "__cpp_lib_hazard_pointer should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hive
+#    error "__cpp_lib_hive should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_hypot
 #    error "__cpp_lib_hypot should be defined in c++17"
 #  endif
@@ -2570,6 +2926,10 @@
 #    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17"
 #  endif
 
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should be defined in c++17"
 #  endif
@@ -2869,6 +3229,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_polymorphic_allocator
 #    error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
 #  endif
@@ -2898,6 +3262,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -2946,6 +3314,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -3615,6 +3987,10 @@
 #    error "__cpp_lib_constexpr_complex should have the value 201711L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20"
 #  endif
@@ -3622,6 +3998,10 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should not be defined before c++26"
 #  endif
@@ -3641,6 +4021,10 @@
 #    error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_inplace_vector
+#    error "__cpp_lib_constexpr_inplace_vector should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_iterator
 #    error "__cpp_lib_constexpr_iterator should be defined in c++20"
 #  endif
@@ -3682,6 +4066,10 @@
 #    error "__cpp_lib_constexpr_set should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_string
 #    error "__cpp_lib_constexpr_string should be defined in c++20"
 #  endif
@@ -3707,6 +4095,14 @@
 #    error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_utility
 #    error "__cpp_lib_constexpr_utility should be defined in c++20"
 #  endif
@@ -3729,6 +4125,10 @@
 #    error "__cpp_lib_containers_ranges should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_contracts
+#    error "__cpp_lib_contracts should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_copyable_function
 #    error "__cpp_lib_copyable_function should not be defined before c++26"
 #  endif
@@ -3928,6 +4328,82 @@
 #    error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_stacktrace
+#    error "__cpp_lib_hardened_basic_stacktrace should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_inplace_vector
+#    error "__cpp_lib_hardened_inplace_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_hardware_interference_size
 #    error "__cpp_lib_hardware_interference_size should be defined in c++20"
 #  endif
@@ -3946,6 +4422,10 @@
 #    error "__cpp_lib_hazard_pointer should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hive
+#    error "__cpp_lib_hive should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_hypot
 #    error "__cpp_lib_hypot should be defined in c++20"
 #  endif
@@ -3960,6 +4440,10 @@
 #    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should be defined in c++20"
 #  endif
@@ -4319,6 +4803,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
 #    ifndef __cpp_lib_polymorphic_allocator
 #      error "__cpp_lib_polymorphic_allocator should be defined in c++20"
@@ -4360,6 +4848,10 @@
 #    error "__cpp_lib_ranges_as_const should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_as_input
+#    error "__cpp_lib_ranges_as_input should not be defined before c++23"
+#  endif
+
 #  ifdef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
 #  endif
@@ -4408,6 +4900,10 @@
 #    error "__cpp_lib_ranges_repeat should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_ranges_slide
 #    error "__cpp_lib_ranges_slide should not be defined before c++23"
 #  endif
@@ -5167,6 +5663,10 @@
 #    error "__cpp_lib_constexpr_complex should have the value 201711L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_deque
+#    error "__cpp_lib_constexpr_deque should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23"
 #  endif
@@ -5174,6 +5674,10 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_exceptions
+#    error "__cpp_lib_constexpr_exceptions should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should not be defined before c++26"
 #  endif
@@ -5193,6 +5697,10 @@
 #    error "__cpp_lib_constexpr_functional should have the value 201907L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_inplace_vector
+#    error "__cpp_lib_constexpr_inplace_vector should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_iterator
 #    error "__cpp_lib_constexpr_iterator should be defined in c++23"
 #  endif
@@ -5234,6 +5742,10 @@
 #    error "__cpp_lib_constexpr_set should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_stack
+#    error "__cpp_lib_constexpr_stack should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_string
 #    error "__cpp_lib_constexpr_string should be defined in c++23"
 #  endif
@@ -5262,6 +5774,14 @@
 #    error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_unordered_map
+#    error "__cpp_lib_constexpr_unordered_map should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_constexpr_unordered_set
+#    error "__cpp_lib_constexpr_unordered_set should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_utility
 #    error "__cpp_lib_constexpr_utility should be defined in c++23"
 #  endif
@@ -5287,6 +5807,10 @@
 #    error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_contracts
+#    error "__cpp_lib_contracts should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_copyable_function
 #    error "__cpp_lib_copyable_function should not be defined before c++26"
 #  endif
@@ -5510,6 +6034,82 @@
 #    error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_hardened_array
+#    error "__cpp_lib_hardened_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_stacktrace
+#    error "__cpp_lib_hardened_basic_stacktrace should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string
+#    error "__cpp_lib_hardened_basic_string should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_basic_string_view
+#    error "__cpp_lib_hardened_basic_string_view should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_bitset
+#    error "__cpp_lib_hardened_bitset should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_common_iterator
+#    error "__cpp_lib_hardened_common_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_counted_iterator
+#    error "__cpp_lib_hardened_counted_iterator should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_deque
+#    error "__cpp_lib_hardened_deque should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_expected
+#    error "__cpp_lib_hardened_expected should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_forward_list
+#    error "__cpp_lib_hardened_forward_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_inplace_vector
+#    error "__cpp_lib_hardened_inplace_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_list
+#    error "__cpp_lib_hardened_list should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_mdspan
+#    error "__cpp_lib_hardened_mdspan should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_optional
+#    error "__cpp_lib_hardened_optional should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_shared_ptr_array
+#    error "__cpp_lib_hardened_shared_ptr_array should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_span
+#    error "__cpp_lib_hardened_span should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_valarray
+#    error "__cpp_lib_hardened_valarray should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_vector
+#    error "__cpp_lib_hardened_vector should not be defined before c++26"
+#  endif
+
+#  ifdef __cpp_lib_hardened_view_interface
+#    error "__cpp_lib_hardened_view_interface should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_hardware_interference_size
 #    error "__cpp_lib_hardware_interference_size should be defined in c++23"
 #  endif
@@ -5528,6 +6128,10 @@
 #    error "__cpp_lib_hazard_pointer should not be defined before c++26"
 #  endif
 
+#  ifdef __cpp_lib_hive
+#    error "__cpp_lib_hive should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_hypot
 #    error "__cpp_lib_hypot should be defined in c++23"
 #  endif
@@ -5542,6 +6146,10 @@
 #    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_indirect
+#    error "__cpp_lib_indirect should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should be defined in c++23"
 #  endif
@@ -5937,6 +6545,10 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  ifdef __cpp_lib_polymorphic
+#    error "__cpp_lib_polymorphic should not be defined before c++26"
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
 #    ifndef __cpp_lib_polymorphic_allocator
 #      error "__cpp_lib_polymorphic_allocator should be defined in c++23"
@@ -5996,6 +6608,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should be defined in c++23"
+#    endif
+#    if __cpp_lib_ranges_as_input != 202502L
+#      error "__cpp_lib_ranges_as_input should have the value 202502L in c++23"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should be defined in c++23"
 #  endif
@@ -6080,6 +6705,10 @@
 #    error "__cpp_lib_ranges_repeat should have the value 202207L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_ranges_reserve_hint
+#    error "__cpp_lib_ranges_reserve_hint should not be defined before c++26"
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_ranges_slide
 #      error "__cpp_lib_ranges_slide should be defined in c++23"
@@ -6932,6 +7561,19 @@
 #    error "__cpp_lib_constexpr_complex should have the value 201711L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_deque != 202502L
+#      error "__cpp_lib_constexpr_deque should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26"
 #  endif
@@ -6939,6 +7581,19 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should be defined in c++26"
 #  endif
@@ -6967,6 +7622,19 @@
 #    error "__cpp_lib_constexpr_functional should have the value 201907L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_inplace_vector
+#      error "__cpp_lib_constexpr_inplace_vector should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_inplace_vector != 202502L
+#      error "__cpp_lib_constexpr_inplace_vector should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_inplace_vector
+#      error "__cpp_lib_constexpr_inplace_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_iterator
 #    error "__cpp_lib_constexpr_iterator should be defined in c++26"
 #  endif
@@ -7015,11 +7683,17 @@
 #    error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26"
 #  endif
 
-#  ifndef __cpp_lib_constexpr_queue
-#    error "__cpp_lib_constexpr_queue should be defined in c++26"
-#  endif
-#  if __cpp_lib_constexpr_queue != 202502L
-#    error "__cpp_lib_constexpr_queue should have the value 202502L in c++26"
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_queue != 202502L
+#      error "__cpp_lib_constexpr_queue should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should not be defined because it is unimplemented in libc++!"
+#    endif
 #  endif
 
 #  ifndef __cpp_lib_constexpr_set
@@ -7029,6 +7703,19 @@
 #    error "__cpp_lib_constexpr_set should have the value 202502L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_stack != 202502L
+#      error "__cpp_lib_constexpr_stack should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_string
 #    error "__cpp_lib_constexpr_string should be defined in c++26"
 #  endif
@@ -7057,6 +7744,32 @@
 #    error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_unordered_map != 202502L
+#      error "__cpp_lib_constexpr_unordered_map should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should be defined in c++26"
+#    endif
+#    if __cpp_lib_constexpr_unordered_set != 202502L
+#      error "__cpp_lib_constexpr_unordered_set should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_utility
 #    error "__cpp_lib_constexpr_utility should be defined in c++26"
 #  endif
@@ -7085,6 +7798,19 @@
 #    error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_contracts
+#      error "__cpp_lib_contracts should be defined in c++26"
+#    endif
+#    if __cpp_lib_contracts != 202502L
+#      error "__cpp_lib_contracts should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_contracts
+#      error "__cpp_lib_contracts should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_copyable_function
 #      error "__cpp_lib_copyable_function should be defined in c++26"
@@ -7437,6 +8163,253 @@
 #    error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_array != 202502L
+#      error "__cpp_lib_hardened_array should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_stacktrace
+#      error "__cpp_lib_hardened_basic_stacktrace should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_basic_stacktrace != 202506L
+#      error "__cpp_lib_hardened_basic_stacktrace should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_stacktrace
+#      error "__cpp_lib_hardened_basic_stacktrace should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_basic_string != 202502L
+#      error "__cpp_lib_hardened_basic_string should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_basic_string_view != 202502L
+#      error "__cpp_lib_hardened_basic_string_view should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_bitset != 202502L
+#      error "__cpp_lib_hardened_bitset should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_common_iterator != 202506L
+#      error "__cpp_lib_hardened_common_iterator should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_counted_iterator != 202506L
+#      error "__cpp_lib_hardened_counted_iterator should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_deque != 202502L
+#      error "__cpp_lib_hardened_deque should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_expected != 202502L
+#      error "__cpp_lib_hardened_expected should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_forward_list != 202502L
+#      error "__cpp_lib_hardened_forward_list should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_inplace_vector
+#      error "__cpp_lib_hardened_inplace_vector should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_inplace_vector != 202502L
+#      error "__cpp_lib_hardened_inplace_vector should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_inplace_vector
+#      error "__cpp_lib_hardened_inplace_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_list != 202502L
+#      error "__cpp_lib_hardened_list should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_mdspan != 202502L
+#      error "__cpp_lib_hardened_mdspan should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_optional != 202502L
+#      error "__cpp_lib_hardened_optional should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_shared_ptr_array != 202506L
+#      error "__cpp_lib_hardened_shared_ptr_array should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_span != 202502L
+#      error "__cpp_lib_hardened_span should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_valarray != 202502L
+#      error "__cpp_lib_hardened_valarray should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_vector != 202502L
+#      error "__cpp_lib_hardened_vector should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should be defined in c++26"
+#    endif
+#    if __cpp_lib_hardened_view_interface != 202506L
+#      error "__cpp_lib_hardened_view_interface should have the value 202506L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_hardware_interference_size
 #    error "__cpp_lib_hardware_interference_size should be defined in c++26"
 #  endif
@@ -7464,6 +8437,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hive
+#      error "__cpp_lib_hive should be defined in c++26"
+#    endif
+#    if __cpp_lib_hive != 202502L
+#      error "__cpp_lib_hive should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_hive
+#      error "__cpp_lib_hive should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_hypot
 #    error "__cpp_lib_hypot should be defined in c++26"
 #  endif
@@ -7478,6 +8464,19 @@
 #    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should be defined in c++26"
+#    endif
+#    if __cpp_lib_indirect != 202502L
+#      error "__cpp_lib_indirect should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should be defined in c++26"
 #  endif
@@ -7930,6 +8929,19 @@
 #    error "__cpp_lib_pointer_tag_pair should not be defined before c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should be defined in c++26"
+#    endif
+#    if __cpp_lib_polymorphic != 202502L
+#      error "__cpp_lib_polymorphic should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
 #    ifndef __cpp_lib_polymorphic_allocator
 #      error "__cpp_lib_polymorphic_allocator should be defined in c++26"
@@ -7989,6 +9001,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should be defined in c++26"
+#    endif
+#    if __cpp_lib_ranges_as_input != 202502L
+#      error "__cpp_lib_ranges_as_input should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should be defined in c++26"
 #  endif
@@ -8079,6 +9104,19 @@
 #    error "__cpp_lib_ranges_repeat should have the value 202207L in c++26"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should be defined in c++26"
+#    endif
+#    if __cpp_lib_ranges_reserve_hint != 202502L
+#      error "__cpp_lib_ranges_reserve_hint should have the value 202502L in c++26"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_ranges_slide
 #      error "__cpp_lib_ranges_slide should be defined in c++26"
@@ -9018,6 +10056,19 @@
 #    error "__cpp_lib_constexpr_complex should have the value 201711L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_deque != 202502L
+#      error "__cpp_lib_constexpr_deque should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_deque
+#      error "__cpp_lib_constexpr_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++29"
 #  endif
@@ -9025,6 +10076,19 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_exceptions != 202502L
+#      error "__cpp_lib_constexpr_exceptions should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_exceptions
+#      error "__cpp_lib_constexpr_exceptions should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should be defined in c++29"
 #  endif
@@ -9053,6 +10117,19 @@
 #    error "__cpp_lib_constexpr_functional should have the value 201907L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_inplace_vector
+#      error "__cpp_lib_constexpr_inplace_vector should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_inplace_vector != 202502L
+#      error "__cpp_lib_constexpr_inplace_vector should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_inplace_vector
+#      error "__cpp_lib_constexpr_inplace_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_iterator
 #    error "__cpp_lib_constexpr_iterator should be defined in c++29"
 #  endif
@@ -9101,11 +10178,17 @@
 #    error "__cpp_lib_constexpr_numeric should have the value 201911L in c++29"
 #  endif
 
-#  ifndef __cpp_lib_constexpr_queue
-#    error "__cpp_lib_constexpr_queue should be defined in c++29"
-#  endif
-#  if __cpp_lib_constexpr_queue != 202502L
-#    error "__cpp_lib_constexpr_queue should have the value 202502L in c++29"
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_queue != 202502L
+#      error "__cpp_lib_constexpr_queue should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_queue
+#      error "__cpp_lib_constexpr_queue should not be defined because it is unimplemented in libc++!"
+#    endif
 #  endif
 
 #  ifndef __cpp_lib_constexpr_set
@@ -9115,6 +10198,19 @@
 #    error "__cpp_lib_constexpr_set should have the value 202502L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_stack != 202502L
+#      error "__cpp_lib_constexpr_stack should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_stack
+#      error "__cpp_lib_constexpr_stack should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_string
 #    error "__cpp_lib_constexpr_string should be defined in c++29"
 #  endif
@@ -9143,6 +10239,32 @@
 #    error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_unordered_map != 202502L
+#      error "__cpp_lib_constexpr_unordered_map should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_map
+#      error "__cpp_lib_constexpr_unordered_map should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_unordered_set != 202502L
+#      error "__cpp_lib_constexpr_unordered_set should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_unordered_set
+#      error "__cpp_lib_constexpr_unordered_set should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_constexpr_utility
 #    error "__cpp_lib_constexpr_utility should be defined in c++29"
 #  endif
@@ -9171,6 +10293,19 @@
 #    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_contracts
+#      error "__cpp_lib_contracts should be defined in c++29"
+#    endif
+#    if __cpp_lib_contracts != 202502L
+#      error "__cpp_lib_contracts should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_contracts
+#      error "__cpp_lib_contracts should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_copyable_function
 #      error "__cpp_lib_copyable_function should be defined in c++29"
@@ -9523,6 +10658,253 @@
 #    error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_array != 202502L
+#      error "__cpp_lib_hardened_array should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_array
+#      error "__cpp_lib_hardened_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_stacktrace
+#      error "__cpp_lib_hardened_basic_stacktrace should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_basic_stacktrace != 202506L
+#      error "__cpp_lib_hardened_basic_stacktrace should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_stacktrace
+#      error "__cpp_lib_hardened_basic_stacktrace should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_basic_string != 202502L
+#      error "__cpp_lib_hardened_basic_string should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string
+#      error "__cpp_lib_hardened_basic_string should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_basic_string_view != 202502L
+#      error "__cpp_lib_hardened_basic_string_view should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_basic_string_view
+#      error "__cpp_lib_hardened_basic_string_view should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_bitset != 202502L
+#      error "__cpp_lib_hardened_bitset should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_bitset
+#      error "__cpp_lib_hardened_bitset should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_common_iterator != 202506L
+#      error "__cpp_lib_hardened_common_iterator should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_common_iterator
+#      error "__cpp_lib_hardened_common_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_counted_iterator != 202506L
+#      error "__cpp_lib_hardened_counted_iterator should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_counted_iterator
+#      error "__cpp_lib_hardened_counted_iterator should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_deque != 202502L
+#      error "__cpp_lib_hardened_deque should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_deque
+#      error "__cpp_lib_hardened_deque should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_expected != 202502L
+#      error "__cpp_lib_hardened_expected should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_expected
+#      error "__cpp_lib_hardened_expected should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_forward_list != 202502L
+#      error "__cpp_lib_hardened_forward_list should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_forward_list
+#      error "__cpp_lib_hardened_forward_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_inplace_vector
+#      error "__cpp_lib_hardened_inplace_vector should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_inplace_vector != 202502L
+#      error "__cpp_lib_hardened_inplace_vector should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_inplace_vector
+#      error "__cpp_lib_hardened_inplace_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_list != 202502L
+#      error "__cpp_lib_hardened_list should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_list
+#      error "__cpp_lib_hardened_list should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_mdspan != 202502L
+#      error "__cpp_lib_hardened_mdspan should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_mdspan
+#      error "__cpp_lib_hardened_mdspan should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_optional != 202502L
+#      error "__cpp_lib_hardened_optional should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_optional
+#      error "__cpp_lib_hardened_optional should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_shared_ptr_array != 202506L
+#      error "__cpp_lib_hardened_shared_ptr_array should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_shared_ptr_array
+#      error "__cpp_lib_hardened_shared_ptr_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_span != 202502L
+#      error "__cpp_lib_hardened_span should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_span
+#      error "__cpp_lib_hardened_span should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_valarray != 202502L
+#      error "__cpp_lib_hardened_valarray should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_valarray
+#      error "__cpp_lib_hardened_valarray should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_vector != 202502L
+#      error "__cpp_lib_hardened_vector should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_vector
+#      error "__cpp_lib_hardened_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should be defined in c++29"
+#    endif
+#    if __cpp_lib_hardened_view_interface != 202506L
+#      error "__cpp_lib_hardened_view_interface should have the value 202506L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hardened_view_interface
+#      error "__cpp_lib_hardened_view_interface should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_hardware_interference_size
 #    error "__cpp_lib_hardware_interference_size should be defined in c++29"
 #  endif
@@ -9550,6 +10932,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hive
+#      error "__cpp_lib_hive should be defined in c++29"
+#    endif
+#    if __cpp_lib_hive != 202502L
+#      error "__cpp_lib_hive should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hive
+#      error "__cpp_lib_hive should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_hypot
 #    error "__cpp_lib_hypot should be defined in c++29"
 #  endif
@@ -9564,6 +10959,19 @@
 #    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should be defined in c++29"
+#    endif
+#    if __cpp_lib_indirect != 202502L
+#      error "__cpp_lib_indirect should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_indirect
+#      error "__cpp_lib_indirect should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should be defined in c++29"
 #  endif
@@ -10043,6 +11451,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should be defined in c++29"
+#    endif
+#    if __cpp_lib_polymorphic != 202502L
+#      error "__cpp_lib_polymorphic should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_polymorphic
+#      error "__cpp_lib_polymorphic should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
 #    ifndef __cpp_lib_polymorphic_allocator
 #      error "__cpp_lib_polymorphic_allocator should be defined in c++29"
@@ -10102,6 +11523,19 @@
 #    endif
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_as_input != 202502L
+#      error "__cpp_lib_ranges_as_input should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_input
+#      error "__cpp_lib_ranges_as_input should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_ranges_as_rvalue
 #    error "__cpp_lib_ranges_as_rvalue should be defined in c++29"
 #  endif
@@ -10192,6 +11626,19 @@
 #    error "__cpp_lib_ranges_repeat should have the value 202207L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_reserve_hint != 202502L
+#      error "__cpp_lib_ranges_reserve_hint should have the value 202502L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_reserve_hint
+#      error "__cpp_lib_ranges_reserve_hint should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_ranges_slide
 #      error "__cpp_lib_ranges_slide should be defined in c++29"
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index 86d91f5e9d01d..1703ba2784799 100755
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -373,11 +373,23 @@ def add_version_header(tc):
             "values": {"c++20": 201711},
             "headers": ["complex"],
         },
+        {
+            "name": "__cpp_lib_constexpr_deque",
+            "values": {"c++26": 202502},
+            "headers": ["deque"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_constexpr_dynamic_alloc",
             "values": {"c++20": 201907},
             "headers": ["memory"],
         },
+        {
+            "name": "__cpp_lib_constexpr_exceptions",
+            "values": {"c++26": 202502},
+            "headers": ["exception", "expected", "format", "optional", "stdexcept", "variant"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_constexpr_flat_map",
             "values": {"c++26": 202502},
@@ -398,6 +410,12 @@ def add_version_header(tc):
             "values": {"c++20": 201907},
             "headers": ["functional"],
         },
+        {
+            "name": "__cpp_lib_constexpr_inplace_vector",
+            "values": {"c++26": 202502},
+            "headers": ["inplace_vector"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_constexpr_iterator",
             "values": {"c++20": 201811},
@@ -434,12 +452,19 @@ def add_version_header(tc):
             "name": "__cpp_lib_constexpr_queue",
             "values": {"c++26": 202502},
             "headers": ["queue"],
+            "unimplemented": True,
         },
         {
             "name": "__cpp_lib_constexpr_set",
             "values": {"c++26": 202502},
             "headers": ["set"],
         },
+        {
+            "name": "__cpp_lib_constexpr_stack",
+            "values": {"c++26": 202502},
+            "headers": ["stack"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_constexpr_string",
             "values": {"c++20": 201907},
@@ -460,6 +485,18 @@ def add_version_header(tc):
             "values": {"c++23": 202106},
             "headers": ["typeinfo"],
         },
+        {
+            "name": "__cpp_lib_constexpr_unordered_map",
+            "values": {"c++26": 202502},
+            "headers": ["unordered_map"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_constexpr_unordered_set",
+            "values": {"c++26": 202502},
+            "headers": ["unordered_set"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_constexpr_utility",
             "values": {"c++20": 201811},
@@ -494,6 +531,12 @@ def add_version_header(tc):
                 "vector",
             ],
         },
+        {
+            "name": "__cpp_lib_contracts",
+            "values": {"c++26": 202502},
+            "headers": ["contracts"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_copyable_function",
             "values": {"c++26": 202306},  # P2548R6 copyable_function
@@ -738,6 +781,120 @@ def add_version_header(tc):
             "name": "__cpp_lib_generic_unordered_lookup",
             "values": {"c++20": 201811},
             "headers": ["unordered_map", "unordered_set"],
+        },
+                {
+            "name": "__cpp_lib_hardened_array",
+            "values": {"c++26": 202502},
+            "headers": ["array"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_basic_stacktrace",
+            "values": {"c++26": 202506},
+            "headers": ["stacktrace"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_basic_string",
+            "values": {"c++26": 202502},
+            "headers": ["string"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_basic_string_view",
+            "values": {"c++26": 202502},
+            "headers": ["string_view"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_bitset",
+            "values": {"c++26": 202502},
+            "headers": ["bitset"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_common_iterator",
+            "values": {"c++26": 202506},
+            "headers": ["iterator"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_counted_iterator",
+            "values": {"c++26": 202506},
+            "headers": ["iterator"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_deque",
+            "values": {"c++26": 202502},
+            "headers": ["deque"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_expected",
+            "values": {"c++26": 202502},
+            "headers": ["expected"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_forward_list",
+            "values": {"c++26": 202502},
+            "headers": ["forward_list"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_inplace_vector",
+            "values": {"c++26": 202502},
+            "headers": ["inplace_vector"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_list",
+            "values": {"c++26": 202502},
+            "headers": ["list"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_mdspan",
+            "values": {"c++26": 202502},
+            "headers": ["mdspan"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_optional",
+            "values": {"c++26": 202502},
+            "headers": ["optional"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_shared_ptr_array",
+            "values": {"c++26": 202506},
+            "headers": ["memory"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_span",
+            "values": {"c++26": 202502},
+            "headers": ["span"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_valarray",
+            "values": {"c++26": 202502},
+            "headers": ["valarray"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_vector",
+            "values": {"c++26": 202502},
+            "headers": ["vector"],
+            "unimplemented": True,
+        },
+        {
+            "name": "__cpp_lib_hardened_view_interface",
+            "values": {"c++26": 202506},
+            "headers": ["ranges"],
+            "unimplemented": True,
         },
         {
             "name": "__cpp_lib_hardware_interference_size",
@@ -758,6 +915,12 @@ def add_version_header(tc):
             "headers": ["hazard_pointer"],
             "unimplemented": True,
         },
+        {
+            "name": "__cpp_lib_hive",
+            "values": {"c++26": 202502},
+            "headers": ["hive"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_hypot",
             "values": {"c++17": 201603},
@@ -768,6 +931,12 @@ def add_version_header(tc):
             "values": {"c++17": 201505},
             "headers": ["forward_list", "list", "vector"],
         },
+        {
+            "name": "__cpp_lib_indirect",
+            "values": {"c++26": 202502},
+            "headers": ["memory"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_initializer_list",
             "values": {"c++14": 202511},
@@ -1097,6 +1266,12 @@ def add_version_header(tc):
             "headers": ["memory"],
             "unimplemented": True,
         },
+        {
+            "name": "__cpp_lib_polymorphic",
+            "values": {"c++26": 202502},
+            "headers": ["memory"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_polymorphic_allocator",
             "values": {"c++20": 201902},
@@ -1141,6 +1316,12 @@ def add_version_header(tc):
             },
             "headers": ["ranges"],
             "unimplemented": True,
+        },
+                {
+            "name": "__cpp_lib_ranges_as_input",
+            "values": {"c++23": 202502},
+            "headers": ["ranges"],
+            "unimplemented": True,
         },
         {
             "name": "__cpp_lib_ranges_as_rvalue",
@@ -1203,6 +1384,12 @@ def add_version_header(tc):
             "values": {"c++23": 202207},
             "headers": ["ranges"],
         },
+        {
+            "name": "__cpp_lib_ranges_reserve_hint",
+            "values": {"c++26": 202502},
+            "headers": ["ranges"],
+            "unimplemented": True,
+        },
         {
             "name": "__cpp_lib_ranges_slide",
             "values": {"c++23": 202202},
@@ -1617,7 +1804,21 @@ def add_version_header(tc):
     ]
 ]
 
-assert feature_test_macros == sorted(feature_test_macros, key=lambda tc: tc["name"])
+sorted_feature_test_macros = sorted(feature_test_macros, key=lambda tc: tc["name"])
+out_of_order_macros = [
+    (index, current["name"], following["name"])
+    for index, (current, following) in enumerate(
+        zip(feature_test_macros, feature_test_macros[1:])
+    )
+    if current["name"] > following["name"]
+]
+if out_of_order_macros:
+    print("Adjacent feature_test_macros out of name order:")
+    for index, current, following in out_of_order_macros:
+        print("  [{}] {} > [{}] {}".format(index, current, index + 1, following))
+
+assert feature_test_macros == sorted_feature_test_macros
+
 for tc in feature_test_macros:
     assert tc["headers"] == sorted(tc["headers"]), tc
     assert ("libcxx_guard" in tc) == ("test_suite_guard" in tc), tc



More information about the libcxx-commits mailing list