[libcxx] [llvm] [libc++] Kickstart C++29 support (PR #215820)

Hristo Hristov via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 22 12:04:04 PDT 2026


https://github.com/Zingam updated https://github.com/llvm/llvm-project/pull/215820

>From 860210aabb06c3023d34357016ea32c48460618a Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Fri, 24 Jul 2026 10:22:25 +0300
Subject: [PATCH 01/20] [libc++] C++29 support

Based on https://github.com/llvm/llvm-project/pull/203992
---
 libcxx/cmake/caches/Generic-cxx29.cmake       |    2 +
 libcxx/docs/FeatureTestMacroTable.rst         |    4 +-
 libcxx/include/version                        |    4 +
 .../feature_test_macro/std_dialects.sh.py     |    1 +
 libcxx/test/libcxx/transitive_includes.gen.py |    2 +-
 .../test/libcxx/transitive_includes/cxx29.csv | 1120 +++++++++
 .../algorithm.version.compile.pass.cpp        |  115 +-
 .../any.version.compile.pass.cpp              |   13 +-
 .../array.version.compile.pass.cpp            |   40 +-
 .../atomic.version.compile.pass.cpp           |   88 +-
 .../barrier.version.compile.pass.cpp          |   19 +-
 .../bit.version.compile.pass.cpp              |   41 +-
 .../bitset.version.compile.pass.cpp           |   20 +-
 .../charconv.version.compile.pass.cpp         |   26 +-
 .../chrono.version.compile.pass.cpp           |   20 +-
 .../cmath.version.compile.pass.cpp            |   46 +-
 .../compare.version.compile.pass.cpp          |   13 +-
 .../complex.version.compile.pass.cpp          |   20 +-
 .../concepts.version.compile.pass.cpp         |   13 +-
 .../coroutine.version.compile.pass.cpp        |   13 +-
 .../cstddef.version.compile.pass.cpp          |   13 +-
 .../cstdlib.version.compile.pass.cpp          |   19 +-
 .../cstring.version.compile.pass.cpp          |   19 +-
 .../deque.version.compile.pass.cpp            |   47 +-
 .../exception.version.compile.pass.cpp        |   13 +-
 .../execution.version.compile.pass.cpp        |   32 +-
 .../expected.version.compile.pass.cpp         |   33 +-
 .../filesystem.version.compile.pass.cpp       |   45 +-
 .../flat_map.version.compile.pass.cpp         |   20 +-
 .../flat_set.version.compile.pass.cpp         |   20 +-
 .../format.version.compile.pass.cpp           |   33 +-
 .../forward_list.version.compile.pass.cpp     |   68 +-
 .../fstream.version.compile.pass.cpp          |   19 +-
 .../functional.version.compile.pass.cpp       |  130 +-
 .../initializer_list.version.compile.pass.cpp |   13 +-
 .../iomanip.version.compile.pass.cpp          |   19 +-
 .../ios.version.compile.pass.cpp              |   13 +-
 .../istream.version.compile.pass.cpp          |   19 +-
 .../iterator.version.compile.pass.cpp         |   62 +-
 .../latch.version.compile.pass.cpp            |   19 +-
 .../limits.version.compile.pass.cpp           |   19 +-
 .../list.version.compile.pass.cpp             |   68 +-
 .../locale.version.compile.pass.cpp           |   19 +-
 .../map.version.compile.pass.cpp              |  101 +-
 .../mdspan.version.compile.pass.cpp           |   46 +-
 .../memory.version.compile.pass.cpp           |  139 +-
 .../memory_resource.version.compile.pass.cpp  |   32 +-
 .../mutex.version.compile.pass.cpp            |   19 +-
 .../new.version.compile.pass.cpp              |   46 +-
 .../numbers.version.compile.pass.cpp          |   13 +-
 .../numeric.version.compile.pass.cpp          |   54 +-
 .../optional.version.compile.pass.cpp         |   46 +-
 .../ostream.version.compile.pass.cpp          |   32 +-
 .../print.version.compile.pass.cpp            |   19 +-
 .../queue.version.compile.pass.cpp            |   27 +-
 .../random.version.compile.pass.cpp           |   32 +-
 .../ranges.version.compile.pass.cpp           |  135 +-
 .../ratio.version.compile.pass.cpp            |   13 +-
 .../regex.version.compile.pass.cpp            |   13 +-
 .../scoped_allocator.version.compile.pass.cpp |   13 +-
 .../semaphore.version.compile.pass.cpp        |   19 +-
 .../set.version.compile.pass.cpp              |   81 +-
 .../shared_mutex.version.compile.pass.cpp     |   32 +-
 .../source_location.version.compile.pass.cpp  |   13 +-
 .../span.version.compile.pass.cpp             |   20 +-
 .../sstream.version.compile.pass.cpp          |   13 +-
 .../stack.version.compile.pass.cpp            |   20 +-
 .../stdatomic.h.version.compile.pass.cpp      |   13 +-
 .../stop_token.version.compile.pass.cpp       |   19 +-
 .../string.version.compile.pass.cpp           |  122 +-
 .../string_view.version.compile.pass.cpp      |   67 +-
 .../syncstream.version.compile.pass.cpp       |   19 +-
 .../text_encoding.version.compile.pass.cpp    |   13 +-
 .../thread.version.compile.pass.cpp           |   32 +-
 .../tuple.version.compile.pass.cpp            |   68 +-
 .../type_traits.version.compile.pass.cpp      |  224 +-
 .../typeinfo.version.compile.pass.cpp         |   13 +-
 .../unordered_map.version.compile.pass.cpp    |   94 +-
 .../unordered_set.version.compile.pass.cpp    |   74 +-
 .../utility.version.compile.pass.cpp          |  110 +-
 .../valarray.version.compile.pass.cpp         |   13 +-
 .../variant.version.compile.pass.cpp          |   33 +-
 .../vector.version.compile.pass.cpp           |   61 +-
 .../version.version.compile.pass.cpp          | 2023 ++++++++++++++++-
 libcxx/test/support/test_macros.h             |    2 +
 .../proper_version_checks.cpp                 |    4 +-
 libcxx/utils/ci/run-buildbot                  |    6 +
 .../generate_feature_test_macro_components.py |   10 +-
 libcxx/utils/libcxx/test/params.py            |    7 +-
 89 files changed, 6225 insertions(+), 162 deletions(-)
 create mode 100644 libcxx/cmake/caches/Generic-cxx29.cmake
 create mode 100644 libcxx/test/libcxx/transitive_includes/cxx29.csv

diff --git a/libcxx/cmake/caches/Generic-cxx29.cmake b/libcxx/cmake/caches/Generic-cxx29.cmake
new file mode 100644
index 0000000000000..df623288a3eba
--- /dev/null
+++ b/libcxx/cmake/caches/Generic-cxx29.cmake
@@ -0,0 +1,2 @@
+set(LIBCXX_TEST_PARAMS "std=c++2d" CACHE STRING "")
+set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index b710e3800f70d..6757a2913b862 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -551,5 +551,7 @@ Status
     ``__cpp_lib_tuple_like``                                   *unimplemented*
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_variant``                                      ``202306L``
-    ========================================================== =================
+    ---------------------------------------------------------- -----------------
+    **C++29**
+    ============================================================================
 
diff --git a/libcxx/include/version b/libcxx/include/version
index 9a151910ae590..7b906d08394bf 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -649,6 +649,10 @@ __cpp_lib_void_t                                        201411L <type_traits>
 # define __cpp_lib_variant                              202306L
 #endif
 
+#if _LIBCPP_STD_VER >= 29
+
+#endif
+
 #endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
 
 // clang-format on
diff --git a/libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py b/libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
index f01dcb2f3c45c..c9635c8642cc6 100644
--- a/libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/std_dialects.sh.py
@@ -30,6 +30,7 @@ def test_implementation(self):
             "c++20",
             "c++23",
             "c++26",
+            "c++29",
         ]
 
         self.assertEqual(self.ftm.std_dialects, expected)
diff --git a/libcxx/test/libcxx/transitive_includes.gen.py b/libcxx/test/libcxx/transitive_includes.gen.py
index c41bc8b0307c1..20d5e981ccba4 100644
--- a/libcxx/test/libcxx/transitive_includes.gen.py
+++ b/libcxx/test/libcxx/transitive_includes.gen.py
@@ -53,7 +53,7 @@
 
 # To re-generate the list of expected headers, temporarily set this to True, and run this test.
 # Note that this needs to be done for all supported language versions of libc++:
-# for std in c++03 c++11 c++14 c++17 c++20 c++23 c++26; do <build>/bin/llvm-lit --param std=$std libcxx/test/libcxx/transitive_includes.gen.py; done
+# for std in c++03 c++11 c++14 c++17 c++20 c++23 c++26 c++29; do <build>/bin/llvm-lit --param std=$std libcxx/test/libcxx/transitive_includes.gen.py; done
 regenerate_expected_results = False
 
 if regenerate_expected_results:
diff --git a/libcxx/test/libcxx/transitive_includes/cxx29.csv b/libcxx/test/libcxx/transitive_includes/cxx29.csv
new file mode 100644
index 0000000000000..62b58acd1e58e
--- /dev/null
+++ b/libcxx/test/libcxx/transitive_includes/cxx29.csv
@@ -0,0 +1,1120 @@
+algorithm cctype
+algorithm climits
+algorithm compare
+algorithm cstdint
+algorithm cstring
+algorithm ctime
+algorithm cwchar
+algorithm cwctype
+algorithm initializer_list
+algorithm iosfwd
+algorithm limits
+algorithm ratio
+algorithm tuple
+algorithm version
+any cstdint
+any initializer_list
+any typeinfo
+any version
+array cctype
+array compare
+array cstdint
+array cwchar
+array cwctype
+array initializer_list
+array limits
+array stdexcept
+array version
+atomic climits
+atomic cstdint
+atomic cstring
+atomic ctime
+atomic limits
+atomic ratio
+atomic version
+barrier climits
+barrier cstdint
+barrier cstring
+barrier ctime
+barrier limits
+barrier ratio
+barrier version
+bit climits
+bit cstdint
+bit limits
+bit version
+bitset cctype
+bitset climits
+bitset compare
+bitset cstdint
+bitset cstdio
+bitset cstring
+bitset cwchar
+bitset cwctype
+bitset initializer_list
+bitset iosfwd
+bitset limits
+bitset stdexcept
+bitset string
+bitset string_view
+bitset tuple
+bitset version
+ccomplex bitset
+ccomplex cctype
+ccomplex cerrno
+ccomplex climits
+ccomplex clocale
+ccomplex cmath
+ccomplex compare
+ccomplex complex
+ccomplex cstddef
+ccomplex cstdint
+ccomplex cstdio
+ccomplex cstdlib
+ccomplex cstring
+ccomplex cwchar
+ccomplex cwctype
+ccomplex initializer_list
+ccomplex ios
+ccomplex iosfwd
+ccomplex istream
+ccomplex limits
+ccomplex sstream
+ccomplex stdexcept
+ccomplex streambuf
+ccomplex string
+ccomplex string_view
+ccomplex text_encoding
+ccomplex tuple
+ccomplex typeinfo
+ccomplex version
+charconv cerrno
+charconv cstdint
+charconv initializer_list
+charconv limits
+charconv version
+chrono array
+chrono bitset
+chrono cctype
+chrono cerrno
+chrono climits
+chrono clocale
+chrono cmath
+chrono compare
+chrono cstddef
+chrono cstdint
+chrono cstdio
+chrono cstdlib
+chrono cstring
+chrono ctime
+chrono cwchar
+chrono cwctype
+chrono format
+chrono forward_list
+chrono initializer_list
+chrono ios
+chrono iosfwd
+chrono istream
+chrono limits
+chrono ratio
+chrono sstream
+chrono stdexcept
+chrono streambuf
+chrono string
+chrono string_view
+chrono text_encoding
+chrono tuple
+chrono typeinfo
+chrono version
+cinttypes cstdint
+cmath limits
+cmath version
+codecvt cctype
+codecvt climits
+codecvt clocale
+codecvt compare
+codecvt cstddef
+codecvt cstdint
+codecvt cstdio
+codecvt cstdlib
+codecvt cstring
+codecvt cwchar
+codecvt cwctype
+codecvt initializer_list
+codecvt iosfwd
+codecvt limits
+codecvt stdexcept
+codecvt string
+codecvt string_view
+codecvt text_encoding
+codecvt tuple
+codecvt typeinfo
+codecvt version
+compare cstdint
+compare limits
+compare version
+complex bitset
+complex cctype
+complex cerrno
+complex climits
+complex clocale
+complex cmath
+complex compare
+complex cstddef
+complex cstdint
+complex cstdio
+complex cstdlib
+complex cstring
+complex cwchar
+complex cwctype
+complex initializer_list
+complex ios
+complex iosfwd
+complex istream
+complex limits
+complex sstream
+complex stdexcept
+complex streambuf
+complex string
+complex string_view
+complex text_encoding
+complex tuple
+complex typeinfo
+complex version
+concepts version
+condition_variable cerrno
+condition_variable climits
+condition_variable cstdint
+condition_variable cstring
+condition_variable ctime
+condition_variable initializer_list
+condition_variable limits
+condition_variable ratio
+condition_variable typeinfo
+condition_variable version
+coroutine compare
+coroutine cstdint
+coroutine cstring
+coroutine limits
+coroutine version
+cstddef version
+ctgmath bitset
+ctgmath cctype
+ctgmath cerrno
+ctgmath climits
+ctgmath clocale
+ctgmath cmath
+ctgmath compare
+ctgmath complex
+ctgmath cstddef
+ctgmath cstdint
+ctgmath cstdio
+ctgmath cstdlib
+ctgmath cstring
+ctgmath cwchar
+ctgmath cwctype
+ctgmath initializer_list
+ctgmath ios
+ctgmath iosfwd
+ctgmath istream
+ctgmath limits
+ctgmath sstream
+ctgmath stdexcept
+ctgmath streambuf
+ctgmath string
+ctgmath string_view
+ctgmath text_encoding
+ctgmath tuple
+ctgmath typeinfo
+ctgmath version
+cwchar cctype
+cwchar cwctype
+cwctype cctype
+deque cctype
+deque compare
+deque cstdint
+deque cstring
+deque cwchar
+deque cwctype
+deque initializer_list
+deque limits
+deque stdexcept
+deque tuple
+deque version
+exception cstdint
+exception typeinfo
+exception version
+execution version
+expected cstdint
+expected initializer_list
+expected version
+experimental/iterator bitset
+experimental/iterator cctype
+experimental/iterator cerrno
+experimental/iterator climits
+experimental/iterator clocale
+experimental/iterator compare
+experimental/iterator concepts
+experimental/iterator cstddef
+experimental/iterator cstdint
+experimental/iterator cstdio
+experimental/iterator cstdlib
+experimental/iterator cstring
+experimental/iterator cwchar
+experimental/iterator cwctype
+experimental/iterator initializer_list
+experimental/iterator ios
+experimental/iterator iosfwd
+experimental/iterator iterator
+experimental/iterator limits
+experimental/iterator stdexcept
+experimental/iterator streambuf
+experimental/iterator string
+experimental/iterator string_view
+experimental/iterator text_encoding
+experimental/iterator tuple
+experimental/iterator typeinfo
+experimental/iterator variant
+experimental/iterator version
+experimental/memory cstdint
+experimental/memory cstring
+experimental/memory version
+experimental/propagate_const version
+experimental/simd cstdint
+experimental/simd limits
+experimental/simd version
+experimental/type_traits cstdint
+experimental/type_traits initializer_list
+experimental/type_traits type_traits
+experimental/type_traits version
+experimental/utility compare
+experimental/utility cstdint
+experimental/utility cstring
+experimental/utility initializer_list
+experimental/utility limits
+experimental/utility utility
+experimental/utility version
+filesystem cctype
+filesystem cerrno
+filesystem climits
+filesystem clocale
+filesystem compare
+filesystem cstddef
+filesystem cstdint
+filesystem cstdio
+filesystem cstdlib
+filesystem cstring
+filesystem ctime
+filesystem cwchar
+filesystem cwctype
+filesystem initializer_list
+filesystem iomanip
+filesystem ios
+filesystem iosfwd
+filesystem limits
+filesystem ratio
+filesystem stdexcept
+filesystem string
+filesystem string_view
+filesystem text_encoding
+filesystem tuple
+filesystem typeinfo
+filesystem version
+flat_map cctype
+flat_map climits
+flat_map compare
+flat_map cstdint
+flat_map cstring
+flat_map cwchar
+flat_map cwctype
+flat_map initializer_list
+flat_map limits
+flat_map stdexcept
+flat_map tuple
+flat_map version
+flat_set cctype
+flat_set climits
+flat_set compare
+flat_set cstdint
+flat_set cstring
+flat_set cwchar
+flat_set cwctype
+flat_set initializer_list
+flat_set limits
+flat_set stdexcept
+flat_set tuple
+flat_set version
+format array
+format cctype
+format cerrno
+format climits
+format clocale
+format compare
+format cstddef
+format cstdint
+format cstdio
+format cstdlib
+format cstring
+format cwchar
+format cwctype
+format initializer_list
+format ios
+format iosfwd
+format limits
+format stdexcept
+format streambuf
+format string
+format string_view
+format text_encoding
+format tuple
+format typeinfo
+format version
+forward_list cctype
+forward_list compare
+forward_list cstdint
+forward_list cwchar
+forward_list cwctype
+forward_list initializer_list
+forward_list limits
+forward_list tuple
+forward_list version
+fstream bitset
+fstream cctype
+fstream cerrno
+fstream climits
+fstream clocale
+fstream compare
+fstream cstddef
+fstream cstdint
+fstream cstdio
+fstream cstdlib
+fstream cstring
+fstream cwchar
+fstream cwctype
+fstream initializer_list
+fstream iomanip
+fstream ios
+fstream iosfwd
+fstream istream
+fstream limits
+fstream stdexcept
+fstream streambuf
+fstream string
+fstream string_view
+fstream text_encoding
+fstream tuple
+fstream typeinfo
+fstream version
+functional array
+functional cctype
+functional compare
+functional cstdint
+functional cstring
+functional cwchar
+functional cwctype
+functional initializer_list
+functional limits
+functional stdexcept
+functional tuple
+functional typeinfo
+functional unordered_map
+functional version
+future cctype
+future cerrno
+future climits
+future compare
+future cstdint
+future cstdio
+future cstring
+future ctime
+future cwchar
+future cwctype
+future initializer_list
+future iosfwd
+future limits
+future ratio
+future stdexcept
+future string
+future string_view
+future tuple
+future typeinfo
+future version
+initializer_list version
+iomanip cctype
+iomanip cerrno
+iomanip climits
+iomanip clocale
+iomanip compare
+iomanip cstddef
+iomanip cstdint
+iomanip cstdio
+iomanip cstdlib
+iomanip cstring
+iomanip cwchar
+iomanip cwctype
+iomanip initializer_list
+iomanip ios
+iomanip iosfwd
+iomanip limits
+iomanip stdexcept
+iomanip string
+iomanip string_view
+iomanip text_encoding
+iomanip tuple
+iomanip typeinfo
+iomanip version
+ios cctype
+ios cerrno
+ios climits
+ios clocale
+ios compare
+ios cstddef
+ios cstdint
+ios cstdio
+ios cstdlib
+ios cstring
+ios cwchar
+ios cwctype
+ios initializer_list
+ios iosfwd
+ios limits
+ios stdexcept
+ios string
+ios string_view
+ios text_encoding
+ios tuple
+ios typeinfo
+ios version
+iosfwd version
+iostream array
+iostream bitset
+iostream cctype
+iostream cerrno
+iostream climits
+iostream clocale
+iostream compare
+iostream cstddef
+iostream cstdint
+iostream cstdio
+iostream cstdlib
+iostream cstring
+iostream cwchar
+iostream cwctype
+iostream format
+iostream initializer_list
+iostream ios
+iostream iosfwd
+iostream istream
+iostream limits
+iostream ostream
+iostream print
+iostream stdexcept
+iostream streambuf
+iostream string
+iostream string_view
+iostream text_encoding
+iostream tuple
+iostream typeinfo
+iostream version
+istream bitset
+istream cctype
+istream cerrno
+istream climits
+istream clocale
+istream compare
+istream cstddef
+istream cstdint
+istream cstdio
+istream cstdlib
+istream cstring
+istream cwchar
+istream cwctype
+istream initializer_list
+istream ios
+istream iosfwd
+istream limits
+istream stdexcept
+istream streambuf
+istream string
+istream string_view
+istream text_encoding
+istream tuple
+istream typeinfo
+istream version
+iterator cctype
+iterator compare
+iterator concepts
+iterator cstdint
+iterator cstdio
+iterator cstring
+iterator cwchar
+iterator cwctype
+iterator initializer_list
+iterator iosfwd
+iterator limits
+iterator variant
+iterator version
+latch climits
+latch cstdint
+latch cstring
+latch ctime
+latch limits
+latch ratio
+latch version
+limits version
+list cctype
+list compare
+list cstdint
+list cstring
+list cwchar
+list cwctype
+list initializer_list
+list limits
+list tuple
+list version
+locale cctype
+locale cerrno
+locale climits
+locale clocale
+locale compare
+locale cstddef
+locale cstdint
+locale cstdio
+locale cstdlib
+locale cstring
+locale cwchar
+locale cwctype
+locale initializer_list
+locale ios
+locale iosfwd
+locale limits
+locale stdexcept
+locale streambuf
+locale string
+locale string_view
+locale text_encoding
+locale tuple
+locale typeinfo
+locale version
+map cctype
+map compare
+map cstdint
+map cstring
+map cwchar
+map cwctype
+map initializer_list
+map limits
+map stdexcept
+map tuple
+map version
+mdspan array
+mdspan cctype
+mdspan compare
+mdspan concepts
+mdspan cstdint
+mdspan cwchar
+mdspan cwctype
+mdspan initializer_list
+mdspan limits
+mdspan span
+mdspan stdexcept
+mdspan version
+memory cctype
+memory climits
+memory compare
+memory cstdint
+memory cstring
+memory ctime
+memory cwchar
+memory cwctype
+memory initializer_list
+memory limits
+memory ratio
+memory tuple
+memory typeinfo
+memory version
+memory_resource cerrno
+memory_resource climits
+memory_resource compare
+memory_resource cstdint
+memory_resource cstring
+memory_resource ctime
+memory_resource limits
+memory_resource ratio
+memory_resource tuple
+memory_resource version
+mutex cerrno
+mutex climits
+mutex compare
+mutex cstdint
+mutex cstring
+mutex ctime
+mutex limits
+mutex ratio
+mutex tuple
+mutex version
+new version
+numbers version
+numeric cctype
+numeric climits
+numeric compare
+numeric cstdint
+numeric cstring
+numeric ctime
+numeric cwchar
+numeric cwctype
+numeric initializer_list
+numeric limits
+numeric ratio
+numeric tuple
+numeric version
+optional compare
+optional cstdint
+optional cstring
+optional initializer_list
+optional limits
+optional version
+ostream array
+ostream bitset
+ostream cctype
+ostream cerrno
+ostream climits
+ostream clocale
+ostream compare
+ostream cstddef
+ostream cstdint
+ostream cstdio
+ostream cstdlib
+ostream cstring
+ostream cwchar
+ostream cwctype
+ostream format
+ostream initializer_list
+ostream ios
+ostream iosfwd
+ostream limits
+ostream print
+ostream stdexcept
+ostream streambuf
+ostream string
+ostream string_view
+ostream text_encoding
+ostream tuple
+ostream typeinfo
+ostream version
+print array
+print cctype
+print cerrno
+print climits
+print clocale
+print compare
+print cstddef
+print cstdint
+print cstdio
+print cstdlib
+print cstring
+print cwchar
+print cwctype
+print format
+print initializer_list
+print ios
+print iosfwd
+print limits
+print stdexcept
+print streambuf
+print string
+print string_view
+print text_encoding
+print tuple
+print typeinfo
+print version
+queue cctype
+queue climits
+queue compare
+queue cstdint
+queue cstdio
+queue cstring
+queue cwchar
+queue cwctype
+queue deque
+queue initializer_list
+queue iosfwd
+queue limits
+queue stdexcept
+queue string
+queue string_view
+queue tuple
+queue vector
+queue version
+random cctype
+random climits
+random compare
+random cstdint
+random cstdio
+random cstring
+random ctime
+random cwchar
+random cwctype
+random initializer_list
+random iosfwd
+random limits
+random numeric
+random ratio
+random stdexcept
+random string
+random string_view
+random tuple
+random version
+ranges array
+ranges cctype
+ranges compare
+ranges concepts
+ranges cstdint
+ranges cstdio
+ranges cstring
+ranges cwchar
+ranges cwctype
+ranges initializer_list
+ranges iosfwd
+ranges iterator
+ranges limits
+ranges span
+ranges stdexcept
+ranges tuple
+ranges variant
+ranges version
+ratio climits
+ratio cstdint
+ratio version
+regex cctype
+regex climits
+regex clocale
+regex compare
+regex cstddef
+regex cstdint
+regex cstdio
+regex cstdlib
+regex cstring
+regex cwchar
+regex cwctype
+regex deque
+regex initializer_list
+regex iosfwd
+regex limits
+regex stdexcept
+regex string
+regex string_view
+regex text_encoding
+regex tuple
+regex typeinfo
+regex vector
+regex version
+scoped_allocator compare
+scoped_allocator cstdint
+scoped_allocator limits
+scoped_allocator tuple
+scoped_allocator version
+semaphore climits
+semaphore cstdint
+semaphore cstring
+semaphore ctime
+semaphore limits
+semaphore ratio
+semaphore version
+set cctype
+set compare
+set cstdint
+set cstring
+set cwchar
+set cwctype
+set initializer_list
+set limits
+set tuple
+set version
+shared_mutex cerrno
+shared_mutex climits
+shared_mutex cstdint
+shared_mutex cstring
+shared_mutex ctime
+shared_mutex limits
+shared_mutex ratio
+shared_mutex version
+source_location cstdint
+source_location version
+span initializer_list
+span limits
+span stdexcept
+span version
+sstream bitset
+sstream cctype
+sstream cerrno
+sstream climits
+sstream clocale
+sstream compare
+sstream cstddef
+sstream cstdint
+sstream cstdio
+sstream cstdlib
+sstream cstring
+sstream cwchar
+sstream cwctype
+sstream initializer_list
+sstream ios
+sstream iosfwd
+sstream istream
+sstream limits
+sstream stdexcept
+sstream streambuf
+sstream string
+sstream string_view
+sstream text_encoding
+sstream tuple
+sstream typeinfo
+sstream version
+stack cctype
+stack compare
+stack cstdint
+stack cstring
+stack cwchar
+stack cwctype
+stack deque
+stack initializer_list
+stack limits
+stack stdexcept
+stack tuple
+stack version
+stop_token climits
+stop_token cstdint
+stop_token cstring
+stop_token ctime
+stop_token limits
+stop_token ratio
+stop_token version
+streambuf cctype
+streambuf cerrno
+streambuf climits
+streambuf clocale
+streambuf compare
+streambuf cstddef
+streambuf cstdint
+streambuf cstdio
+streambuf cstdlib
+streambuf cstring
+streambuf cwchar
+streambuf cwctype
+streambuf initializer_list
+streambuf ios
+streambuf iosfwd
+streambuf limits
+streambuf stdexcept
+streambuf string
+streambuf string_view
+streambuf text_encoding
+streambuf tuple
+streambuf typeinfo
+streambuf version
+string cctype
+string climits
+string compare
+string cstdint
+string cstdio
+string cstring
+string cwchar
+string cwctype
+string initializer_list
+string iosfwd
+string limits
+string stdexcept
+string string_view
+string tuple
+string version
+string_view cctype
+string_view compare
+string_view cstdint
+string_view cstdio
+string_view cstring
+string_view cwchar
+string_view cwctype
+string_view initializer_list
+string_view iosfwd
+string_view limits
+string_view stdexcept
+string_view version
+strstream bitset
+strstream cctype
+strstream cerrno
+strstream climits
+strstream clocale
+strstream compare
+strstream cstddef
+strstream cstdint
+strstream cstdio
+strstream cstdlib
+strstream cstring
+strstream cwchar
+strstream cwctype
+strstream initializer_list
+strstream ios
+strstream iosfwd
+strstream istream
+strstream limits
+strstream stdexcept
+strstream streambuf
+strstream string
+strstream string_view
+strstream text_encoding
+strstream tuple
+strstream typeinfo
+strstream version
+syncstream array
+syncstream bitset
+syncstream cctype
+syncstream cerrno
+syncstream climits
+syncstream clocale
+syncstream compare
+syncstream cstddef
+syncstream cstdint
+syncstream cstdio
+syncstream cstdlib
+syncstream cstring
+syncstream ctime
+syncstream cwchar
+syncstream cwctype
+syncstream format
+syncstream initializer_list
+syncstream ios
+syncstream iosfwd
+syncstream limits
+syncstream map
+syncstream ostream
+syncstream print
+syncstream ratio
+syncstream shared_mutex
+syncstream stdexcept
+syncstream streambuf
+syncstream string
+syncstream string_view
+syncstream text_encoding
+syncstream tuple
+syncstream typeinfo
+syncstream version
+system_error cctype
+system_error cerrno
+system_error climits
+system_error compare
+system_error cstdint
+system_error cstdio
+system_error cstring
+system_error cwchar
+system_error cwctype
+system_error initializer_list
+system_error iosfwd
+system_error limits
+system_error stdexcept
+system_error string
+system_error string_view
+system_error tuple
+system_error version
+text_encoding cctype
+text_encoding climits
+text_encoding compare
+text_encoding cstdint
+text_encoding cstdio
+text_encoding cstring
+text_encoding cwchar
+text_encoding cwctype
+text_encoding initializer_list
+text_encoding iosfwd
+text_encoding limits
+text_encoding stdexcept
+text_encoding string_view
+text_encoding version
+thread array
+thread cctype
+thread cerrno
+thread climits
+thread clocale
+thread compare
+thread cstddef
+thread cstdint
+thread cstdio
+thread cstdlib
+thread cstring
+thread ctime
+thread cwchar
+thread cwctype
+thread initializer_list
+thread ios
+thread iosfwd
+thread limits
+thread ratio
+thread stdexcept
+thread streambuf
+thread string
+thread string_view
+thread text_encoding
+thread tuple
+thread typeinfo
+thread version
+tuple compare
+tuple cstdint
+tuple limits
+tuple version
+type_traits cstdint
+type_traits version
+typeindex compare
+typeindex cstdint
+typeindex limits
+typeindex typeinfo
+typeindex version
+typeinfo cstdint
+typeinfo version
+unordered_map compare
+unordered_map cstdint
+unordered_map cstring
+unordered_map initializer_list
+unordered_map limits
+unordered_map stdexcept
+unordered_map tuple
+unordered_map version
+unordered_set compare
+unordered_set cstdint
+unordered_set cstring
+unordered_set initializer_list
+unordered_set limits
+unordered_set tuple
+unordered_set version
+utility compare
+utility cstdint
+utility cstring
+utility initializer_list
+utility limits
+utility version
+valarray cmath
+valarray cstdint
+valarray initializer_list
+valarray limits
+valarray version
+variant compare
+variant cstdint
+variant cstring
+variant initializer_list
+variant limits
+variant version
+vector cctype
+vector climits
+vector compare
+vector cstdint
+vector cstdio
+vector cstring
+vector cwchar
+vector cwctype
+vector initializer_list
+vector iosfwd
+vector limits
+vector stdexcept
+vector string
+vector string_view
+vector tuple
+vector version
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
index 657875444c687..133d4bf592f39 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
@@ -375,7 +375,7 @@
 #    error "__cpp_lib_shift should have the value 202202L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_clamp
 #    error "__cpp_lib_clamp should be defined in c++26"
@@ -486,6 +486,117 @@
 #    error "__cpp_lib_shift should have the value 202202L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_clamp
+#    error "__cpp_lib_clamp should be defined in c++29"
+#  endif
+#  if __cpp_lib_clamp != 201603L
+#    error "__cpp_lib_clamp should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_algorithms
+#    error "__cpp_lib_constexpr_algorithms should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_algorithms != 202306L
+#    error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_algorithm
+#      error "__cpp_lib_freestanding_algorithm should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_algorithm != 202311L
+#      error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_algorithm
+#      error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_parallel_algorithm
+#      error "__cpp_lib_parallel_algorithm should be defined in c++29"
+#    endif
+#    if __cpp_lib_parallel_algorithm != 201603L
+#      error "__cpp_lib_parallel_algorithm should have the value 201603L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_parallel_algorithm
+#      error "__cpp_lib_parallel_algorithm 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
+#  if __cpp_lib_ranges != 202406L
+#    error "__cpp_lib_ranges should have the value 202406L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_contains
+#    error "__cpp_lib_ranges_contains should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_contains != 202207L
+#    error "__cpp_lib_ranges_contains should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_find_last
+#    error "__cpp_lib_ranges_find_last should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_find_last != 202207L
+#    error "__cpp_lib_ranges_find_last should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_fold
+#    error "__cpp_lib_ranges_fold should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_fold != 202207L
+#    error "__cpp_lib_ranges_fold should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_starts_ends_with
+#    error "__cpp_lib_ranges_starts_ends_with should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_starts_ends_with != 202106L
+#    error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_robust_nonmodifying_seq_ops
+#    error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++29"
+#  endif
+#  if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
+#    error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_sample
+#    error "__cpp_lib_sample should be defined in c++29"
+#  endif
+#  if __cpp_lib_sample != 201603L
+#    error "__cpp_lib_sample should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_shift
+#    error "__cpp_lib_shift should be defined in c++29"
+#  endif
+#  if __cpp_lib_shift != 202202L
+#    error "__cpp_lib_shift should have the value 202202L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
index fe0e6bd17f94d..6c08175a5285f 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
@@ -57,7 +57,7 @@
 #    error "__cpp_lib_any should have the value 201606L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_any
 #    error "__cpp_lib_any should be defined in c++26"
@@ -66,6 +66,15 @@
 #    error "__cpp_lib_any should have the value 201606L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_any
+#    error "__cpp_lib_any should be defined in c++29"
+#  endif
+#  if __cpp_lib_any != 201606L
+#    error "__cpp_lib_any should have the value 201606L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 30efb61893a1b..5f5dc28e5ba22 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
@@ -132,7 +132,7 @@
 #    error "__cpp_lib_to_array should have the value 201907L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_array_constexpr
 #    error "__cpp_lib_array_constexpr should be defined in c++26"
@@ -168,6 +168,42 @@
 #    error "__cpp_lib_to_array should have the value 201907L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_array_constexpr
+#    error "__cpp_lib_array_constexpr should be defined in c++29"
+#  endif
+#  if __cpp_lib_array_constexpr != 201811L
+#    error "__cpp_lib_array_constexpr should have the value 201811L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_array
+#      error "__cpp_lib_freestanding_array should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_array != 202311L
+#      error "__cpp_lib_freestanding_array should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_array
+#      error "__cpp_lib_freestanding_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
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_to_array
+#    error "__cpp_lib_to_array should be defined in c++29"
+#  endif
+#  if __cpp_lib_to_array != 201907L
+#    error "__cpp_lib_to_array should have the value 201907L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
index aece31d25c249..b9508b784d135 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
@@ -309,7 +309,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_atomic_flag_test
 #    error "__cpp_lib_atomic_flag_test should be defined in c++26"
@@ -393,6 +393,90 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_atomic_flag_test
+#    error "__cpp_lib_atomic_flag_test should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_flag_test != 201907L
+#    error "__cpp_lib_atomic_flag_test should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_float
+#    error "__cpp_lib_atomic_float should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_float != 201711L
+#    error "__cpp_lib_atomic_float should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_is_always_lock_free
+#    error "__cpp_lib_atomic_is_always_lock_free should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_is_always_lock_free != 201603L
+#    error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_lock_free_type_aliases
+#    error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_lock_free_type_aliases != 201907L
+#    error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_min_max
+#    error "__cpp_lib_atomic_min_max should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_min_max != 202403L
+#    error "__cpp_lib_atomic_min_max should have the value 202403L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_ref
+#    error "__cpp_lib_atomic_ref should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_ref != 202603L
+#    error "__cpp_lib_atomic_ref should have the value 202603L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_atomic_shared_ptr
+#      error "__cpp_lib_atomic_shared_ptr should be defined in c++29"
+#    endif
+#    if __cpp_lib_atomic_shared_ptr != 201711L
+#      error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_atomic_shared_ptr
+#      error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_atomic_value_initialization
+#    error "__cpp_lib_atomic_value_initialization should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_value_initialization != 201911L
+#    error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_wait
+#    error "__cpp_lib_atomic_wait should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_wait != 201907L
+#    error "__cpp_lib_atomic_wait should have the value 201907L in c++29"
+#  endif
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
index 01cda62c06a6f..4171deef44c41 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
 #    ifndef __cpp_lib_barrier
@@ -83,6 +83,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_barrier
+#      error "__cpp_lib_barrier should be defined in c++29"
+#    endif
+#    if __cpp_lib_barrier != 201907L
+#      error "__cpp_lib_barrier should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_barrier
+#      error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
index cad025eee3373..39df8f7ed649e 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
@@ -155,7 +155,7 @@
 #    error "__cpp_lib_int_pow2 should have the value 202002L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_bit_cast
 #    error "__cpp_lib_bit_cast should be defined in c++26"
@@ -192,6 +192,43 @@
 #    error "__cpp_lib_int_pow2 should have the value 202002L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_bit_cast
+#    error "__cpp_lib_bit_cast should be defined in c++29"
+#  endif
+#  if __cpp_lib_bit_cast != 201806L
+#    error "__cpp_lib_bit_cast should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bitops
+#    error "__cpp_lib_bitops should be defined in c++29"
+#  endif
+#  if __cpp_lib_bitops != 201907L
+#    error "__cpp_lib_bitops should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_byteswap
+#    error "__cpp_lib_byteswap should be defined in c++29"
+#  endif
+#  if __cpp_lib_byteswap != 202110L
+#    error "__cpp_lib_byteswap should have the value 202110L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_endian
+#    error "__cpp_lib_endian should be defined in c++29"
+#  endif
+#  if __cpp_lib_endian != 201907L
+#    error "__cpp_lib_endian should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_int_pow2
+#    error "__cpp_lib_int_pow2 should be defined in c++29"
+#  endif
+#  if __cpp_lib_int_pow2 != 202002L
+#    error "__cpp_lib_int_pow2 should have the value 202002L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 8799a1f7d14e5..22c4319270521 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
@@ -71,7 +71,7 @@
 #    error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_bitset
 #    error "__cpp_lib_bitset should be defined in c++26"
@@ -87,6 +87,22 @@
 #    error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_bitset
+#    error "__cpp_lib_bitset should be defined in c++29"
+#  endif
+#  if __cpp_lib_bitset != 202306L
+#    error "__cpp_lib_bitset should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_bitset
+#    error "__cpp_lib_constexpr_bitset should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_bitset != 202207L
+#    error "__cpp_lib_constexpr_bitset should have the value 202207L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
index 6ec3037c9ea45..2d1b411492134 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
@@ -98,7 +98,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constexpr_charconv
 #    error "__cpp_lib_constexpr_charconv should be defined in c++26"
@@ -120,6 +120,28 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constexpr_charconv
+#    error "__cpp_lib_constexpr_charconv should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_charconv != 202207L
+#    error "__cpp_lib_constexpr_charconv should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_to_chars
+#      error "__cpp_lib_to_chars should be defined in c++29"
+#    endif
+#    if __cpp_lib_to_chars != 202306L
+#      error "__cpp_lib_to_chars should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_to_chars
+#      error "__cpp_lib_to_chars 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/chrono.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
index d5d7a5da4a64d..cd65a25c408e9 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
@@ -89,7 +89,7 @@
 #    error "__cpp_lib_chrono_udls should have the value 201304L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_chrono
 #    error "__cpp_lib_chrono should be defined in c++26"
@@ -105,6 +105,22 @@
 #    error "__cpp_lib_chrono_udls should have the value 201304L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_chrono
+#    error "__cpp_lib_chrono should be defined in c++29"
+#  endif
+#  if __cpp_lib_chrono != 201611L
+#    error "__cpp_lib_chrono should have the value 201611L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_chrono_udls
+#    error "__cpp_lib_chrono_udls should be defined in c++29"
+#  endif
+#  if __cpp_lib_chrono_udls != 201304L
+#    error "__cpp_lib_chrono_udls should have the value 201304L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
index 26ebe1e3ad6b1..c257f561d39ca 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
@@ -159,7 +159,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_constexpr_cmath
@@ -201,6 +201,48 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_cmath
+#      error "__cpp_lib_constexpr_cmath should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_cmath != 202202L
+#      error "__cpp_lib_constexpr_cmath should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_cmath
+#      error "__cpp_lib_constexpr_cmath 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
+#  if __cpp_lib_hypot != 201603L
+#    error "__cpp_lib_hypot should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_interpolate
+#    error "__cpp_lib_interpolate should be defined in c++29"
+#  endif
+#  if __cpp_lib_interpolate != 201902L
+#    error "__cpp_lib_interpolate should have the value 201902L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_math_special_functions
+#      error "__cpp_lib_math_special_functions should be defined in c++29"
+#    endif
+#    if __cpp_lib_math_special_functions != 201603L
+#      error "__cpp_lib_math_special_functions should have the value 201603L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_math_special_functions
+#      error "__cpp_lib_math_special_functions 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/compare.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
index 907535a087de2..8b0bcbc9e2b3a 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
@@ -54,7 +54,7 @@
 #    error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_three_way_comparison
 #    error "__cpp_lib_three_way_comparison should be defined in c++26"
@@ -63,6 +63,15 @@
 #    error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_three_way_comparison
+#    error "__cpp_lib_three_way_comparison should be defined in c++29"
+#  endif
+#  if __cpp_lib_three_way_comparison != 201907L
+#    error "__cpp_lib_three_way_comparison should have the value 201907L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
index 9a3a644ca5d64..388ecdd90e5d7 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
@@ -86,7 +86,7 @@
 #    error "__cpp_lib_constexpr_complex should have the value 201711L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_complex_udls
 #    error "__cpp_lib_complex_udls should be defined in c++26"
@@ -102,6 +102,22 @@
 #    error "__cpp_lib_constexpr_complex should have the value 201711L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_complex_udls
+#    error "__cpp_lib_complex_udls should be defined in c++29"
+#  endif
+#  if __cpp_lib_complex_udls != 201309L
+#    error "__cpp_lib_complex_udls should have the value 201309L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_complex
+#    error "__cpp_lib_constexpr_complex should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_complex != 201711L
+#    error "__cpp_lib_constexpr_complex should have the value 201711L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
index 15f1d30060ef1..276930078f2e8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
@@ -54,7 +54,7 @@
 #    error "__cpp_lib_concepts should have the value 202207L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_concepts
 #    error "__cpp_lib_concepts should be defined in c++26"
@@ -63,6 +63,15 @@
 #    error "__cpp_lib_concepts should have the value 202207L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_concepts
+#    error "__cpp_lib_concepts should be defined in c++29"
+#  endif
+#  if __cpp_lib_concepts != 202207L
+#    error "__cpp_lib_concepts should have the value 202207L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
index 24a9eca1e2346..ee52ac1a24072 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
@@ -54,7 +54,7 @@
 #    error "__cpp_lib_coroutine should have the value 201902L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_coroutine
 #    error "__cpp_lib_coroutine should be defined in c++26"
@@ -63,6 +63,15 @@
 #    error "__cpp_lib_coroutine should have the value 201902L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_coroutine
+#    error "__cpp_lib_coroutine should be defined in c++29"
+#  endif
+#  if __cpp_lib_coroutine != 201902L
+#    error "__cpp_lib_coroutine should have the value 201902L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
index bc65a7f3cae00..4721ab4b20a3d 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
@@ -57,7 +57,7 @@
 #    error "__cpp_lib_byte should have the value 201603L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_byte
 #    error "__cpp_lib_byte should be defined in c++26"
@@ -66,6 +66,15 @@
 #    error "__cpp_lib_byte should have the value 201603L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_byte
+#    error "__cpp_lib_byte should be defined in c++29"
+#  endif
+#  if __cpp_lib_byte != 201603L
+#    error "__cpp_lib_byte should have the value 201603L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
index 600fa2eb2e4f5..a0166dc12d59e 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
@@ -57,7 +57,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_constexpr_cmath
@@ -72,6 +72,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_cmath
+#      error "__cpp_lib_constexpr_cmath should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_cmath != 202202L
+#      error "__cpp_lib_constexpr_cmath should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_cmath
+#      error "__cpp_lib_constexpr_cmath 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/cstring.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp
index 8445aa3cf0c48..c6b8d335f5363 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp
@@ -48,7 +48,7 @@
 #    error "__cpp_lib_freestanding_cstring should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_freestanding_cstring
@@ -63,6 +63,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_cstring
+#      error "__cpp_lib_freestanding_cstring should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_cstring != 202306L
+#      error "__cpp_lib_freestanding_cstring should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_cstring
+#      error "__cpp_lib_freestanding_cstring 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 b634f3253093e..e8dde05dd7b07 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
@@ -155,7 +155,7 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -198,6 +198,49 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 11d5735007f5b..8d15c9297f0d4 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
@@ -57,7 +57,7 @@
 #    error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_uncaught_exceptions
 #    error "__cpp_lib_uncaught_exceptions should be defined in c++26"
@@ -66,6 +66,15 @@
 #    error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_uncaught_exceptions
+#    error "__cpp_lib_uncaught_exceptions should be defined in c++29"
+#  endif
+#  if __cpp_lib_uncaught_exceptions != 201411L
+#    error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
index 77a6455e23302..da849ec6296d4 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
@@ -95,7 +95,7 @@
 #    error "__cpp_lib_senders should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_execution
@@ -123,6 +123,34 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_execution
+#      error "__cpp_lib_execution should be defined in c++29"
+#    endif
+#    if __cpp_lib_execution != 201902L
+#      error "__cpp_lib_execution should have the value 201902L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_execution
+#      error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_senders
+#      error "__cpp_lib_senders should be defined in c++29"
+#    endif
+#    if __cpp_lib_senders != 202406L
+#      error "__cpp_lib_senders should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_senders
+#      error "__cpp_lib_senders 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/expected.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
index 4ec6c469dce4c..7c25c805a940e 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
@@ -91,7 +91,7 @@
 #    error "__cpp_lib_freestanding_expected should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++26"
@@ -120,6 +120,35 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constrained_equality
+#    error "__cpp_lib_constrained_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_constrained_equality != 202411L
+#    error "__cpp_lib_constrained_equality should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_expected
+#    error "__cpp_lib_expected should be defined in c++29"
+#  endif
+#  if __cpp_lib_expected != 202211L
+#    error "__cpp_lib_expected should have the value 202211L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_expected
+#      error "__cpp_lib_freestanding_expected should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_expected != 202311L
+#      error "__cpp_lib_freestanding_expected should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_expected
+#      error "__cpp_lib_freestanding_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/filesystem.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
index 70ba1800f64f1..de5117a28bdbe 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
@@ -135,7 +135,7 @@
 #    error "__cpp_lib_format_path should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if defined(__cpp_char8_t)
 #    ifndef __cpp_lib_char8_t
@@ -176,6 +176,47 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_FILESYSTEM
+#    ifndef __cpp_lib_filesystem
+#      error "__cpp_lib_filesystem should be defined in c++29"
+#    endif
+#    if __cpp_lib_filesystem != 201703L
+#      error "__cpp_lib_filesystem should have the value 201703L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_filesystem
+#      error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_FILESYSTEM' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_format_path
+#      error "__cpp_lib_format_path should be defined in c++29"
+#    endif
+#    if __cpp_lib_format_path != 202403L
+#      error "__cpp_lib_format_path should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_format_path
+#      error "__cpp_lib_format_path 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/flat_map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp
index 34820de6a53aa..d0489eadb2578 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp
@@ -71,7 +71,7 @@
 #    error "__cpp_lib_flat_map should have the value 202511L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constexpr_flat_map
 #    error "__cpp_lib_constexpr_flat_map should be defined in c++26"
@@ -87,6 +87,22 @@
 #    error "__cpp_lib_flat_map should have the value 202511L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constexpr_flat_map
+#    error "__cpp_lib_constexpr_flat_map should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_flat_map != 202502L
+#    error "__cpp_lib_constexpr_flat_map should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_flat_map
+#    error "__cpp_lib_flat_map should be defined in c++29"
+#  endif
+#  if __cpp_lib_flat_map != 202511L
+#    error "__cpp_lib_flat_map should have the value 202511L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp
index 725e5107c8997..7c1cba1d1d578 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp
@@ -71,7 +71,7 @@
 #    error "__cpp_lib_flat_set should have the value 202511L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constexpr_flat_set
 #    error "__cpp_lib_constexpr_flat_set should be defined in c++26"
@@ -87,6 +87,22 @@
 #    error "__cpp_lib_flat_set should have the value 202511L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constexpr_flat_set
+#    error "__cpp_lib_constexpr_flat_set should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_flat_set != 202502L
+#    error "__cpp_lib_constexpr_flat_set should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_flat_set
+#    error "__cpp_lib_flat_set should be defined in c++29"
+#  endif
+#  if __cpp_lib_flat_set != 202511L
+#    error "__cpp_lib_flat_set should have the value 202511L in c++29"
+#  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 77730f17fd9c6..af6a25c057c2f 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
@@ -115,7 +115,7 @@
 #    error "__cpp_lib_format_uchar should have the value 202311L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
 #    ifndef __cpp_lib_format
@@ -144,6 +144,35 @@
 #    error "__cpp_lib_format_uchar should have the value 202311L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  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"
+#    endif
+#    if __cpp_lib_format != 202110L
+#      error "__cpp_lib_format should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_format
+#      error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_format_ranges
+#    error "__cpp_lib_format_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_format_ranges != 202207L
+#    error "__cpp_lib_format_ranges should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_format_uchar
+#    error "__cpp_lib_format_uchar should be defined in c++29"
+#  endif
+#  if __cpp_lib_format_uchar != 202311L
+#    error "__cpp_lib_format_uchar should have the value 202311L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 d2082946597cb..e2e7c750decd2 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
@@ -230,7 +230,7 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -294,6 +294,70 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_forward_list != 202502L
+#    error "__cpp_lib_constexpr_forward_list should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_incomplete_container_elements
+#    error "__cpp_lib_incomplete_container_elements should be defined in c++29"
+#  endif
+#  if __cpp_lib_incomplete_container_elements != 201505L
+#    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_list_remove_return_type
+#    error "__cpp_lib_list_remove_return_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_list_remove_return_type != 201806L
+#    error "__cpp_lib_list_remove_return_type should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp
index f67adb0de1ded..56a41997c2b35 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp
@@ -50,7 +50,7 @@
 #    error "__cpp_lib_fstream_native_handle should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)
 #    ifndef __cpp_lib_fstream_native_handle
@@ -65,6 +65,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)
+#    ifndef __cpp_lib_fstream_native_handle
+#      error "__cpp_lib_fstream_native_handle should be defined in c++29"
+#    endif
+#    if __cpp_lib_fstream_native_handle != 202306L
+#      error "__cpp_lib_fstream_native_handle should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_fstream_native_handle
+#      error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
index bcc453880c7e1..7aff5cb3def1e 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
@@ -444,7 +444,7 @@
 #    error "__cpp_lib_unwrap_ref should have the value 201811L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_bind_back
 #    error "__cpp_lib_bind_back should be defined in c++26"
@@ -570,6 +570,132 @@
 #    error "__cpp_lib_unwrap_ref should have the value 201811L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_bind_back
+#    error "__cpp_lib_bind_back should be defined in c++29"
+#  endif
+#  if __cpp_lib_bind_back != 202202L
+#    error "__cpp_lib_bind_back should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bind_front
+#    error "__cpp_lib_bind_front should be defined in c++29"
+#  endif
+#  if __cpp_lib_bind_front != 202306L
+#    error "__cpp_lib_bind_front should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_boyer_moore_searcher
+#    error "__cpp_lib_boyer_moore_searcher should be defined in c++29"
+#  endif
+#  if __cpp_lib_boyer_moore_searcher != 201603L
+#    error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_common_reference_wrapper
+#    error "__cpp_lib_common_reference_wrapper should be defined in c++29"
+#  endif
+#  if __cpp_lib_common_reference_wrapper != 202302L
+#    error "__cpp_lib_common_reference_wrapper should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_functional
+#    error "__cpp_lib_constexpr_functional should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_functional != 201907L
+#    error "__cpp_lib_constexpr_functional should have the value 201907L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_copyable_function
+#      error "__cpp_lib_copyable_function should be defined in c++29"
+#    endif
+#    if __cpp_lib_copyable_function != 202306L
+#      error "__cpp_lib_copyable_function should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_copyable_function
+#      error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_function_ref
+#    error "__cpp_lib_function_ref should be defined in c++29"
+#  endif
+#  if __cpp_lib_function_ref != 202603L
+#    error "__cpp_lib_function_ref should have the value 202603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_invoke
+#    error "__cpp_lib_invoke should be defined in c++29"
+#  endif
+#  if __cpp_lib_invoke != 201411L
+#    error "__cpp_lib_invoke should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_invoke_r
+#    error "__cpp_lib_invoke_r should be defined in c++29"
+#  endif
+#  if __cpp_lib_invoke_r != 202106L
+#    error "__cpp_lib_invoke_r should have the value 202106L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_move_only_function
+#      error "__cpp_lib_move_only_function should be defined in c++29"
+#    endif
+#    if __cpp_lib_move_only_function != 202110L
+#      error "__cpp_lib_move_only_function should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_move_only_function
+#      error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_not_fn
+#    error "__cpp_lib_not_fn should be defined in c++29"
+#  endif
+#  if __cpp_lib_not_fn != 202306L
+#    error "__cpp_lib_not_fn should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges
+#    error "__cpp_lib_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges != 202406L
+#    error "__cpp_lib_ranges should have the value 202406L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_reference_wrapper
+#    error "__cpp_lib_reference_wrapper should be defined in c++29"
+#  endif
+#  if __cpp_lib_reference_wrapper != 202403L
+#    error "__cpp_lib_reference_wrapper should have the value 202403L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_result_of_sfinae
+#    error "__cpp_lib_result_of_sfinae should be defined in c++29"
+#  endif
+#  if __cpp_lib_result_of_sfinae != 201210L
+#    error "__cpp_lib_result_of_sfinae should have the value 201210L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_transparent_operators
+#    error "__cpp_lib_transparent_operators should be defined in c++29"
+#  endif
+#  if __cpp_lib_transparent_operators != 201510L
+#    error "__cpp_lib_transparent_operators should have the value 201510L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_unwrap_ref
+#    error "__cpp_lib_unwrap_ref should be defined in c++29"
+#  endif
+#  if __cpp_lib_unwrap_ref != 201811L
+#    error "__cpp_lib_unwrap_ref should have the value 201811L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/initializer_list.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/initializer_list.version.compile.pass.cpp
index 74421975c138a..67fde6572bcf3 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/initializer_list.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/initializer_list.version.compile.pass.cpp
@@ -60,7 +60,7 @@
 #    error "__cpp_lib_initializer_list should have the value 202511L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_initializer_list
 #    error "__cpp_lib_initializer_list should be defined in c++26"
@@ -69,6 +69,15 @@
 #    error "__cpp_lib_initializer_list should have the value 202511L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_initializer_list
+#    error "__cpp_lib_initializer_list should be defined in c++29"
+#  endif
+#  if __cpp_lib_initializer_list != 202511L
+#    error "__cpp_lib_initializer_list should have the value 202511L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
index 4de327cbfa26b..33e11f3d6afa2 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
@@ -86,7 +86,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
 #    ifndef __cpp_lib_quoted_string_io
@@ -101,6 +101,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
+#    ifndef __cpp_lib_quoted_string_io
+#      error "__cpp_lib_quoted_string_io should be defined in c++29"
+#    endif
+#    if __cpp_lib_quoted_string_io != 201304L
+#      error "__cpp_lib_quoted_string_io should have the value 201304L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_quoted_string_io
+#      error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp
index 68816936c55e9..91c5f7c1f5901 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp
@@ -53,7 +53,7 @@
 #    error "__cpp_lib_ios_noreplace should have the value 202207L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_ios_noreplace
 #    error "__cpp_lib_ios_noreplace should be defined in c++26"
@@ -62,6 +62,15 @@
 #    error "__cpp_lib_ios_noreplace should have the value 202207L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_ios_noreplace
+#    error "__cpp_lib_ios_noreplace should be defined in c++29"
+#  endif
+#  if __cpp_lib_ios_noreplace != 202207L
+#    error "__cpp_lib_ios_noreplace should have the value 202207L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
index a1178b22776f1..42e95edb5d7da 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if defined(__cpp_char8_t)
 #    ifndef __cpp_lib_char8_t
@@ -83,6 +83,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 e9805ed4b1542..bb251f001b42a 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
@@ -254,7 +254,7 @@
 #    error "__cpp_lib_ssize should have the value 201902L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_array_constexpr
 #    error "__cpp_lib_array_constexpr should be defined in c++26"
@@ -312,6 +312,64 @@
 #    error "__cpp_lib_ssize should have the value 201902L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_array_constexpr
+#    error "__cpp_lib_array_constexpr should be defined in c++29"
+#  endif
+#  if __cpp_lib_array_constexpr != 201811L
+#    error "__cpp_lib_array_constexpr should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_iterator
+#    error "__cpp_lib_constexpr_iterator should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_iterator != 201811L
+#    error "__cpp_lib_constexpr_iterator should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_make_reverse_iterator
+#    error "__cpp_lib_make_reverse_iterator should be defined in c++29"
+#  endif
+#  if __cpp_lib_make_reverse_iterator != 201402L
+#    error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_move_iterator_concept
+#    error "__cpp_lib_move_iterator_concept should be defined in c++29"
+#  endif
+#  if __cpp_lib_move_iterator_concept != 202207L
+#    error "__cpp_lib_move_iterator_concept should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_null_iterators
+#    error "__cpp_lib_null_iterators should be defined in c++29"
+#  endif
+#  if __cpp_lib_null_iterators != 201304L
+#    error "__cpp_lib_null_iterators should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges
+#    error "__cpp_lib_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges != 202406L
+#    error "__cpp_lib_ranges should have the value 202406L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ssize
+#    error "__cpp_lib_ssize should be defined in c++29"
+#  endif
+#  if __cpp_lib_ssize != 201902L
+#    error "__cpp_lib_ssize should have the value 201902L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
index 8be3c800c9ba8..f593764cd8c85 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
 #    ifndef __cpp_lib_latch
@@ -83,6 +83,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_latch
+#      error "__cpp_lib_latch should be defined in c++29"
+#    endif
+#    if __cpp_lib_latch != 201907L
+#      error "__cpp_lib_latch should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_latch
+#      error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
index f4cc8db0f54cb..fb18e3a88a693 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
@@ -66,7 +66,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if defined(__cpp_char8_t)
 #    ifndef __cpp_lib_char8_t
@@ -81,6 +81,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 1407d74e03aa2..15aa665c0fea0 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
@@ -230,7 +230,7 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -294,6 +294,70 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_list
+#    error "__cpp_lib_constexpr_list should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_list != 202502L
+#    error "__cpp_lib_constexpr_list should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_incomplete_container_elements
+#    error "__cpp_lib_incomplete_container_elements should be defined in c++29"
+#  endif
+#  if __cpp_lib_incomplete_container_elements != 201505L
+#    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_list_remove_return_type
+#    error "__cpp_lib_list_remove_return_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_list_remove_return_type != 201806L
+#    error "__cpp_lib_list_remove_return_type should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
index f516881651b23..2b93c27899adc 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if defined(__cpp_char8_t)
 #    ifndef __cpp_lib_char8_t
@@ -83,6 +83,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
index 794c2ee9ad086..09eb6471c120b 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
@@ -323,7 +323,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -420,6 +420,103 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_erasure != 202110L
+#      error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_insertion != 202306L
+#      error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_constexpr_map
+#    error "__cpp_lib_constexpr_map should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_map != 202502L
+#    error "__cpp_lib_constexpr_map should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_generic_associative_lookup
+#    error "__cpp_lib_generic_associative_lookup should be defined in c++29"
+#  endif
+#  if __cpp_lib_generic_associative_lookup != 201304L
+#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_map_try_emplace
+#    error "__cpp_lib_map_try_emplace should be defined in c++29"
+#  endif
+#  if __cpp_lib_map_try_emplace != 201411L
+#    error "__cpp_lib_map_try_emplace should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_node_extract
+#    error "__cpp_lib_node_extract should be defined in c++29"
+#  endif
+#  if __cpp_lib_node_extract != 201606L
+#    error "__cpp_lib_node_extract should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should be defined in c++29"
+#    endif
+#    if __cpp_lib_tuple_like != 202311L
+#      error "__cpp_lib_tuple_like should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like 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/mdspan.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
index fad0e5b9777dd..051a307d31890 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
@@ -111,7 +111,7 @@
 #    error "__cpp_lib_submdspan should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_aligned_accessor
 #    error "__cpp_lib_aligned_accessor should be defined in c++26"
@@ -153,6 +153,48 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_aligned_accessor
+#    error "__cpp_lib_aligned_accessor should be defined in c++29"
+#  endif
+#  if __cpp_lib_aligned_accessor != 202411L
+#    error "__cpp_lib_aligned_accessor should have the value 202411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_mdspan
+#      error "__cpp_lib_freestanding_mdspan should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_mdspan != 202311L
+#      error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_mdspan
+#      error "__cpp_lib_freestanding_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
+#  if __cpp_lib_mdspan != 202406L
+#    error "__cpp_lib_mdspan should have the value 202406L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_submdspan
+#      error "__cpp_lib_submdspan should be defined in c++29"
+#    endif
+#    if __cpp_lib_submdspan != 202306L
+#      error "__cpp_lib_submdspan should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_submdspan
+#      error "__cpp_lib_submdspan 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/memory.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
index dc14ff766ac5c..1b8e892ffbf67 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
@@ -534,7 +534,7 @@
 #    error "__cpp_lib_transparent_operators should have the value 201510L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_addressof_constexpr
 #    error "__cpp_lib_addressof_constexpr should be defined in c++26"
@@ -669,6 +669,141 @@
 #    error "__cpp_lib_transparent_operators should have the value 201510L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_addressof_constexpr
+#    error "__cpp_lib_addressof_constexpr should be defined in c++29"
+#  endif
+#  if __cpp_lib_addressof_constexpr != 201603L
+#    error "__cpp_lib_addressof_constexpr should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_allocate_at_least
+#    error "__cpp_lib_allocate_at_least should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocate_at_least != 202302L
+#    error "__cpp_lib_allocate_at_least should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_assume_aligned
+#    error "__cpp_lib_assume_aligned should be defined in c++29"
+#  endif
+#  if __cpp_lib_assume_aligned != 201811L
+#    error "__cpp_lib_assume_aligned should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_value_initialization
+#    error "__cpp_lib_atomic_value_initialization should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_value_initialization != 201911L
+#    error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_dynamic_alloc
+#    error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_dynamic_alloc != 201907L
+#    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_memory
+#    error "__cpp_lib_constexpr_memory should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_memory != 202202L
+#    error "__cpp_lib_constexpr_memory should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_enable_shared_from_this
+#    error "__cpp_lib_enable_shared_from_this should be defined in c++29"
+#  endif
+#  if __cpp_lib_enable_shared_from_this != 201603L
+#    error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_sufficiently_aligned
+#    error "__cpp_lib_is_sufficiently_aligned should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_sufficiently_aligned != 202411L
+#    error "__cpp_lib_is_sufficiently_aligned should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_make_unique
+#    error "__cpp_lib_make_unique should be defined in c++29"
+#  endif
+#  if __cpp_lib_make_unique != 201304L
+#    error "__cpp_lib_make_unique should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_out_ptr
+#    error "__cpp_lib_out_ptr should be defined in c++29"
+#  endif
+#  if __cpp_lib_out_ptr != 202311L
+#    error "__cpp_lib_out_ptr should have the value 202311L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges
+#    error "__cpp_lib_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges != 202406L
+#    error "__cpp_lib_ranges should have the value 202406L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_raw_memory_algorithms
+#    error "__cpp_lib_raw_memory_algorithms should be defined in c++29"
+#  endif
+#  if __cpp_lib_raw_memory_algorithms != 202411L
+#    error "__cpp_lib_raw_memory_algorithms should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_shared_ptr_arrays
+#    error "__cpp_lib_shared_ptr_arrays should be defined in c++29"
+#  endif
+#  if __cpp_lib_shared_ptr_arrays != 201707L
+#    error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_shared_ptr_weak_type
+#    error "__cpp_lib_shared_ptr_weak_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_shared_ptr_weak_type != 201606L
+#    error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_smart_ptr_for_overwrite
+#    error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++29"
+#  endif
+#  if __cpp_lib_smart_ptr_for_overwrite != 202002L
+#    error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_smart_ptr_owner_equality
+#    error "__cpp_lib_smart_ptr_owner_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_smart_ptr_owner_equality != 202306L
+#    error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_to_address
+#    error "__cpp_lib_to_address should be defined in c++29"
+#  endif
+#  if __cpp_lib_to_address != 201711L
+#    error "__cpp_lib_to_address should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_transparent_operators
+#    error "__cpp_lib_transparent_operators should be defined in c++29"
+#  endif
+#  if __cpp_lib_transparent_operators != 201510L
+#    error "__cpp_lib_transparent_operators should have the value 201510L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
index dddf473f86a42..045e7c280e049 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
@@ -113,7 +113,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
 #    ifndef __cpp_lib_memory_resource
@@ -141,6 +141,34 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#    ifndef __cpp_lib_memory_resource
+#      error "__cpp_lib_memory_resource should be defined in c++29"
+#    endif
+#    if __cpp_lib_memory_resource != 201603L
+#      error "__cpp_lib_memory_resource should have the value 201603L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_memory_resource
+#      error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#    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"
+#    endif
+#    if __cpp_lib_polymorphic_allocator != 201902L
+#      error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_polymorphic_allocator
+#      error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
index 5ffa5df8841c9..faa8f5b9fe960 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
@@ -77,7 +77,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
 #    ifndef __cpp_lib_scoped_lock
@@ -92,6 +92,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_scoped_lock
+#      error "__cpp_lib_scoped_lock should be defined in c++29"
+#    endif
+#    if __cpp_lib_scoped_lock != 201703L
+#      error "__cpp_lib_scoped_lock should have the value 201703L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_scoped_lock
+#      error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
index fd2332f104f3e..7b6e3b152dd8e 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
@@ -144,7 +144,7 @@
 #    error "__cpp_lib_launder should have the value 201606L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_ABI_VCRUNTIME)
 #    ifndef __cpp_lib_constexpr_new
@@ -186,6 +186,48 @@
 #    error "__cpp_lib_launder should have the value 201606L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_ABI_VCRUNTIME)
+#    ifndef __cpp_lib_constexpr_new
+#      error "__cpp_lib_constexpr_new should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_new != 202406L
+#      error "__cpp_lib_constexpr_new should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_new
+#      error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!"
+#    endif
+#  endif
+
+#  if defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
+#    ifndef __cpp_lib_destroying_delete
+#      error "__cpp_lib_destroying_delete should be defined in c++29"
+#    endif
+#    if __cpp_lib_destroying_delete != 201806L
+#      error "__cpp_lib_destroying_delete should have the value 201806L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_destroying_delete
+#      error "__cpp_lib_destroying_delete should not be defined when the requirement 'defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_hardware_interference_size
+#    error "__cpp_lib_hardware_interference_size should be defined in c++29"
+#  endif
+#  if __cpp_lib_hardware_interference_size != 201703L
+#    error "__cpp_lib_hardware_interference_size should have the value 201703L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_launder
+#    error "__cpp_lib_launder should be defined in c++29"
+#  endif
+#  if __cpp_lib_launder != 201606L
+#    error "__cpp_lib_launder should have the value 201606L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
index 27170d1ea0ce7..8e6bed209fd25 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
@@ -54,7 +54,7 @@
 #    error "__cpp_lib_math_constants should have the value 201907L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_math_constants
 #    error "__cpp_lib_math_constants should be defined in c++26"
@@ -63,6 +63,15 @@
 #    error "__cpp_lib_math_constants should have the value 201907L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_math_constants
+#    error "__cpp_lib_math_constants should be defined in c++29"
+#  endif
+#  if __cpp_lib_math_constants != 201907L
+#    error "__cpp_lib_math_constants should have the value 201907L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
index d629407c9b645..3770febcd5293 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
@@ -199,7 +199,7 @@
 #    error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constexpr_numeric
 #    error "__cpp_lib_constexpr_numeric should be defined in c++26"
@@ -249,6 +249,56 @@
 #    error "__cpp_lib_saturation_arithmetic should have the value 202603L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constexpr_numeric
+#    error "__cpp_lib_constexpr_numeric should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_numeric != 201911L
+#    error "__cpp_lib_constexpr_numeric should have the value 201911L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_gcd_lcm
+#    error "__cpp_lib_gcd_lcm should be defined in c++29"
+#  endif
+#  if __cpp_lib_gcd_lcm != 201606L
+#    error "__cpp_lib_gcd_lcm should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_interpolate
+#    error "__cpp_lib_interpolate should be defined in c++29"
+#  endif
+#  if __cpp_lib_interpolate != 201902L
+#    error "__cpp_lib_interpolate should have the value 201902L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_parallel_algorithm
+#      error "__cpp_lib_parallel_algorithm should be defined in c++29"
+#    endif
+#    if __cpp_lib_parallel_algorithm != 201603L
+#      error "__cpp_lib_parallel_algorithm should have the value 201603L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_parallel_algorithm
+#      error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_ranges_iota
+#    error "__cpp_lib_ranges_iota should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_iota != 202202L
+#    error "__cpp_lib_ranges_iota should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_saturation_arithmetic
+#    error "__cpp_lib_saturation_arithmetic should be defined in c++29"
+#  endif
+#  if __cpp_lib_saturation_arithmetic != 202603L
+#    error "__cpp_lib_saturation_arithmetic should have the value 202603L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 9850c20afec87..63808fd08ed13 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
@@ -117,7 +117,7 @@
 #    error "__cpp_lib_optional_range_support should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++26"
@@ -159,6 +159,48 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constrained_equality
+#    error "__cpp_lib_constrained_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_constrained_equality != 202411L
+#    error "__cpp_lib_constrained_equality should have the value 202411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_optional
+#      error "__cpp_lib_freestanding_optional should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_optional != 202311L
+#      error "__cpp_lib_freestanding_optional should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_optional
+#      error "__cpp_lib_freestanding_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
+#  if __cpp_lib_optional != 202506L
+#    error "__cpp_lib_optional should have the value 202506L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_OPTIONAL_ITERATOR
+#    ifndef __cpp_lib_optional_range_support
+#      error "__cpp_lib_optional_range_support should be defined in c++29"
+#    endif
+#    if __cpp_lib_optional_range_support != 202406L
+#      error "__cpp_lib_optional_range_support should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_optional_range_support
+#      error "__cpp_lib_optional_range_support should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_OPTIONAL_ITERATOR' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
index 163ea5b5514e4..94c4c8c067b75 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
@@ -97,7 +97,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if defined(__cpp_char8_t)
 #    ifndef __cpp_lib_char8_t
@@ -125,6 +125,34 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#    ifndef __cpp_lib_print
+#      error "__cpp_lib_print should be defined in c++29"
+#    endif
+#    if __cpp_lib_print != 202207L
+#      error "__cpp_lib_print should have the value 202207L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_print
+#      error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp
index 0382d93cb40c9..c0bba4f493557 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp
@@ -59,7 +59,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
 #    ifndef __cpp_lib_print
@@ -74,6 +74,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#    ifndef __cpp_lib_print
+#      error "__cpp_lib_print should be defined in c++29"
+#    endif
+#    if __cpp_lib_print != 202207L
+#      error "__cpp_lib_print should have the value 202207L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_print
+#      error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 db32433ff518e..8747e421f84c4 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
@@ -94,7 +94,7 @@
 #    error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_adaptor_iterator_pair_constructor
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26"
@@ -117,6 +117,29 @@
 #    error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_adaptor_iterator_pair_constructor
+#    error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++29"
+#  endif
+#  if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
+#    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"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp
index d0ede1168dfa1..d80581f227ccd 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    error "__cpp_lib_philox_engine should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_generate_random
@@ -96,6 +96,34 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_generate_random
+#      error "__cpp_lib_generate_random should be defined in c++29"
+#    endif
+#    if __cpp_lib_generate_random != 202403L
+#      error "__cpp_lib_generate_random should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_generate_random
+#      error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_philox_engine
+#      error "__cpp_lib_philox_engine should be defined in c++29"
+#    endif
+#    if __cpp_lib_philox_engine != 202406L
+#      error "__cpp_lib_philox_engine should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_philox_engine
+#      error "__cpp_lib_philox_engine 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/ranges.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
index 670b0e664721a..bb59b52b99cb5 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
@@ -385,7 +385,7 @@
 #    error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_default_template_type_for_algorithm_values
@@ -516,6 +516,137 @@
 #    error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values 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
+#  if __cpp_lib_ranges != 202406L
+#    error "__cpp_lib_ranges should have the value 202406L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_const
+#      error "__cpp_lib_ranges_as_const should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_as_const != 202207L
+#      error "__cpp_lib_ranges_as_const should have the value 202207L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_const
+#      error "__cpp_lib_ranges_as_const 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
+#  if __cpp_lib_ranges_as_rvalue != 202207L
+#    error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_chunk
+#      error "__cpp_lib_ranges_chunk should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_chunk != 202202L
+#      error "__cpp_lib_ranges_chunk should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_chunk
+#      error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_ranges_chunk_by
+#    error "__cpp_lib_ranges_chunk_by should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_chunk_by != 202202L
+#    error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_concat
+#    error "__cpp_lib_ranges_concat should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_concat != 202403L
+#    error "__cpp_lib_ranges_concat should have the value 202403L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_enumerate
+#    error "__cpp_lib_ranges_enumerate should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_enumerate != 202302L
+#    error "__cpp_lib_ranges_enumerate should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_indices
+#    error "__cpp_lib_ranges_indices should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_indices != 202506L
+#    error "__cpp_lib_ranges_indices should have the value 202506L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_join_with
+#    error "__cpp_lib_ranges_join_with should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_join_with != 202202L
+#    error "__cpp_lib_ranges_join_with should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_repeat
+#    error "__cpp_lib_ranges_repeat should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_repeat != 202207L
+#    error "__cpp_lib_ranges_repeat should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_slide
+#      error "__cpp_lib_ranges_slide should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_slide != 202202L
+#      error "__cpp_lib_ranges_slide should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_slide
+#      error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_ranges_stride
+#    error "__cpp_lib_ranges_stride should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_stride != 202207L
+#    error "__cpp_lib_ranges_stride should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_to_container
+#    error "__cpp_lib_ranges_to_container should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_to_container != 202202L
+#    error "__cpp_lib_ranges_to_container should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_zip
+#    error "__cpp_lib_ranges_zip should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_zip != 202110L
+#    error "__cpp_lib_ranges_zip should have the value 202110L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp
index b7c08fe0de42c..faf0b608a4a7b 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp
@@ -48,7 +48,7 @@
 #    error "__cpp_lib_ratio should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_ratio
 #    error "__cpp_lib_ratio should be defined in c++26"
@@ -57,6 +57,15 @@
 #    error "__cpp_lib_ratio should have the value 202306L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_ratio
+#    error "__cpp_lib_ratio should be defined in c++29"
+#  endif
+#  if __cpp_lib_ratio != 202306L
+#    error "__cpp_lib_ratio should have the value 202306L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
index dc27dc91851a5..a104ddad5367d 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
@@ -59,7 +59,7 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_nonmember_container_access
 #    error "__cpp_lib_nonmember_container_access should be defined in c++26"
@@ -68,6 +68,15 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
index 9dc2d8b876640..fd627a2b82e29 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
@@ -57,7 +57,7 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -66,6 +66,15 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
index 9912804043c48..97526117370bc 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
 #    ifndef __cpp_lib_semaphore
@@ -83,6 +83,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_semaphore
+#      error "__cpp_lib_semaphore should be defined in c++29"
+#    endif
+#    if __cpp_lib_semaphore != 201907L
+#      error "__cpp_lib_semaphore should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_semaphore
+#      error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
index d1a0570557246..254fd7e29f3d8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
@@ -265,7 +265,7 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -342,6 +342,83 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_erasure != 202110L
+#      error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_insertion != 202306L
+#      error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_constexpr_set
+#    error "__cpp_lib_constexpr_set should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_set != 202502L
+#    error "__cpp_lib_constexpr_set should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_generic_associative_lookup
+#    error "__cpp_lib_generic_associative_lookup should be defined in c++29"
+#  endif
+#  if __cpp_lib_generic_associative_lookup != 201304L
+#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_node_extract
+#    error "__cpp_lib_node_extract should be defined in c++29"
+#  endif
+#  if __cpp_lib_node_extract != 201606L
+#    error "__cpp_lib_node_extract should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
index 51feff2195c3d..8cd96283ad1ac 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
@@ -133,7 +133,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
 #    ifndef __cpp_lib_shared_mutex
@@ -161,6 +161,34 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_shared_mutex
+#      error "__cpp_lib_shared_mutex should be defined in c++29"
+#    endif
+#    if __cpp_lib_shared_mutex != 201505L
+#      error "__cpp_lib_shared_mutex should have the value 201505L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_shared_mutex
+#      error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_shared_timed_mutex
+#      error "__cpp_lib_shared_timed_mutex should be defined in c++29"
+#    endif
+#    if __cpp_lib_shared_timed_mutex != 201402L
+#      error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_shared_timed_mutex
+#      error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
index 9495e319521c1..d89049ce4ad32 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
@@ -54,7 +54,7 @@
 #    error "__cpp_lib_source_location should have the value 201907L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_source_location
 #    error "__cpp_lib_source_location should be defined in c++26"
@@ -63,6 +63,15 @@
 #    error "__cpp_lib_source_location should have the value 201907L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_source_location
+#    error "__cpp_lib_source_location should be defined in c++29"
+#  endif
+#  if __cpp_lib_source_location != 201907L
+#    error "__cpp_lib_source_location should have the value 201907L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 28c54acd0fda2..9fc49192a4f52 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
@@ -74,7 +74,7 @@
 #    error "__cpp_lib_span_at should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_span
 #    error "__cpp_lib_span should be defined in c++26"
@@ -90,6 +90,22 @@
 #    error "__cpp_lib_span_at should have the value 202311L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_span
+#    error "__cpp_lib_span should be defined in c++29"
+#  endif
+#  if __cpp_lib_span != 202002L
+#    error "__cpp_lib_span should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_span_at
+#    error "__cpp_lib_span_at should be defined in c++29"
+#  endif
+#  if __cpp_lib_span_at != 202311L
+#    error "__cpp_lib_span_at should have the value 202311L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp
index 992e31ed602e3..e07860e349da6 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp
@@ -50,7 +50,7 @@
 #    error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_sstream_from_string_view
 #    error "__cpp_lib_sstream_from_string_view should be defined in c++26"
@@ -59,6 +59,15 @@
 #    error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_sstream_from_string_view
+#    error "__cpp_lib_sstream_from_string_view should be defined in c++29"
+#  endif
+#  if __cpp_lib_sstream_from_string_view != 202306L
+#    error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 61c5ed476228c..cc06307be967c 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
@@ -74,7 +74,7 @@
 #    error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_adaptor_iterator_pair_constructor
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26"
@@ -90,6 +90,22 @@
 #    error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_adaptor_iterator_pair_constructor
+#    error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++29"
+#  endif
+#  if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
+#    error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
index c07d935106ea6..15686fdbbeb03 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
@@ -53,7 +53,7 @@
 #    error "__cpp_lib_stdatomic_h should have the value 202011L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_stdatomic_h
 #    error "__cpp_lib_stdatomic_h should be defined in c++26"
@@ -62,6 +62,15 @@
 #    error "__cpp_lib_stdatomic_h should have the value 202011L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_stdatomic_h
+#    error "__cpp_lib_stdatomic_h should be defined in c++29"
+#  endif
+#  if __cpp_lib_stdatomic_h != 202011L
+#    error "__cpp_lib_stdatomic_h should have the value 202011L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp
index 1c240cee3bdcf..6ee50693a00ac 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
 #    ifndef __cpp_lib_jthread
@@ -83,6 +83,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_jthread
+#      error "__cpp_lib_jthread should be defined in c++29"
+#    endif
+#    if __cpp_lib_jthread != 201911L
+#      error "__cpp_lib_jthread should have the value 201911L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_jthread
+#      error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    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 147854eead2cc..bcc78a9a4143d 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
@@ -392,7 +392,7 @@
 #    error "__cpp_lib_to_string should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -510,6 +510,124 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_constexpr_string
+#    error "__cpp_lib_constexpr_string should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_string != 201907L
+#    error "__cpp_lib_constexpr_string should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_starts_ends_with
+#    error "__cpp_lib_starts_ends_with should be defined in c++29"
+#  endif
+#  if __cpp_lib_starts_ends_with != 201711L
+#    error "__cpp_lib_starts_ends_with should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_contains
+#    error "__cpp_lib_string_contains should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_contains != 202011L
+#    error "__cpp_lib_string_contains should have the value 202011L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_resize_and_overwrite
+#    error "__cpp_lib_string_resize_and_overwrite should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_resize_and_overwrite != 202110L
+#    error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_subview
+#    error "__cpp_lib_string_subview should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_subview != 202506L
+#    error "__cpp_lib_string_subview should have the value 202506L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_udls
+#    error "__cpp_lib_string_udls should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_udls != 201304L
+#    error "__cpp_lib_string_udls should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_view
+#    error "__cpp_lib_string_view should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_view != 202403L
+#    error "__cpp_lib_string_view should have the value 202403L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_to_string
+#      error "__cpp_lib_to_string should be defined in c++29"
+#    endif
+#    if __cpp_lib_to_string != 202306L
+#      error "__cpp_lib_to_string should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_to_string
+#      error "__cpp_lib_to_string 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_view.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
index 2c3716111102a..5b3f63883d2e8 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
@@ -210,7 +210,7 @@
 #    error "__cpp_lib_string_view should have the value 201803L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if defined(__cpp_char8_t)
 #    ifndef __cpp_lib_char8_t
@@ -273,6 +273,69 @@
 #    error "__cpp_lib_string_view should have the value 202403L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_constexpr_string_view
+#    error "__cpp_lib_constexpr_string_view should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_string_view != 201811L
+#    error "__cpp_lib_constexpr_string_view should have the value 201811L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_string_view
+#      error "__cpp_lib_freestanding_string_view should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_string_view != 202311L
+#      error "__cpp_lib_freestanding_string_view should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_string_view
+#      error "__cpp_lib_freestanding_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
+#  if __cpp_lib_starts_ends_with != 201711L
+#    error "__cpp_lib_starts_ends_with should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_contains
+#    error "__cpp_lib_string_contains should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_contains != 202011L
+#    error "__cpp_lib_string_contains should have the value 202011L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_subview
+#    error "__cpp_lib_string_subview should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_subview != 202506L
+#    error "__cpp_lib_string_subview should have the value 202506L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_view
+#    error "__cpp_lib_string_view should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_view != 202403L
+#    error "__cpp_lib_string_view should have the value 202403L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp
index 589b9ba5a75df..5b935275fada6 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp
@@ -68,7 +68,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
 #    ifndef __cpp_lib_syncbuf
@@ -83,6 +83,21 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
+#    ifndef __cpp_lib_syncbuf
+#      error "__cpp_lib_syncbuf should be defined in c++29"
+#    endif
+#    if __cpp_lib_syncbuf != 201803L
+#      error "__cpp_lib_syncbuf should have the value 201803L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_syncbuf
+#      error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/text_encoding.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/text_encoding.version.compile.pass.cpp
index 1678e8840af8d..98b6c7c4ec305 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/text_encoding.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/text_encoding.version.compile.pass.cpp
@@ -48,7 +48,7 @@
 #    error "__cpp_lib_text_encoding should not be defined before c++26"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_text_encoding
 #    error "__cpp_lib_text_encoding should be defined in c++26"
@@ -57,6 +57,15 @@
 #    error "__cpp_lib_text_encoding should have the value 202306L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_text_encoding
+#    error "__cpp_lib_text_encoding should be defined in c++29"
+#  endif
+#  if __cpp_lib_text_encoding != 202306L
+#    error "__cpp_lib_text_encoding should have the value 202306L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
index 6b422f28dd792..a34afd4f5c65b 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
@@ -97,7 +97,7 @@
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_formatters
@@ -125,6 +125,34 @@
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_formatters
+#      error "__cpp_lib_formatters should be defined in c++29"
+#    endif
+#    if __cpp_lib_formatters != 202302L
+#      error "__cpp_lib_formatters should have the value 202302L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_formatters
+#      error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_jthread
+#      error "__cpp_lib_jthread should be defined in c++29"
+#    endif
+#    if __cpp_lib_jthread != 201911L
+#      error "__cpp_lib_jthread should have the value 201911L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_jthread
+#      error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
index c0973c03f3273..9f499f074c30a 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
@@ -248,7 +248,7 @@
 #    error "__cpp_lib_tuples_by_type should have the value 201304L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_apply
 #    error "__cpp_lib_apply should be defined in c++26"
@@ -312,6 +312,70 @@
 #    error "__cpp_lib_tuples_by_type should have the value 201304L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_apply
+#    error "__cpp_lib_apply should be defined in c++29"
+#  endif
+#  if __cpp_lib_apply != 201603L
+#    error "__cpp_lib_apply should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_tuple
+#    error "__cpp_lib_constexpr_tuple should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_tuple != 201811L
+#    error "__cpp_lib_constexpr_tuple should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constrained_equality
+#    error "__cpp_lib_constrained_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_constrained_equality != 202411L
+#    error "__cpp_lib_constrained_equality should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_make_from_tuple
+#    error "__cpp_lib_make_from_tuple should be defined in c++29"
+#  endif
+#  if __cpp_lib_make_from_tuple != 201606L
+#    error "__cpp_lib_make_from_tuple should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_zip
+#    error "__cpp_lib_ranges_zip should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_zip != 202110L
+#    error "__cpp_lib_ranges_zip should have the value 202110L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_tuple_element_t
+#    error "__cpp_lib_tuple_element_t should be defined in c++29"
+#  endif
+#  if __cpp_lib_tuple_element_t != 201402L
+#    error "__cpp_lib_tuple_element_t should have the value 201402L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should be defined in c++29"
+#    endif
+#    if __cpp_lib_tuple_like != 202311L
+#      error "__cpp_lib_tuple_like should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_tuples_by_type
+#    error "__cpp_lib_tuples_by_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_tuples_by_type != 201304L
+#    error "__cpp_lib_tuples_by_type should have the value 201304L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
index cb5c008f16bb3..fbceb1410fab8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
@@ -773,7 +773,7 @@
 #    error "__cpp_lib_void_t should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_bool_constant
 #    error "__cpp_lib_bool_constant should be defined in c++26"
@@ -993,6 +993,226 @@
 #    error "__cpp_lib_void_t should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_bool_constant
+#    error "__cpp_lib_bool_constant should be defined in c++29"
+#  endif
+#  if __cpp_lib_bool_constant != 201505L
+#    error "__cpp_lib_bool_constant should have the value 201505L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bounded_array_traits
+#    error "__cpp_lib_bounded_array_traits should be defined in c++29"
+#  endif
+#  if __cpp_lib_bounded_array_traits != 201902L
+#    error "__cpp_lib_bounded_array_traits should have the value 201902L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_common_reference
+#    error "__cpp_lib_common_reference should be defined in c++29"
+#  endif
+#  if __cpp_lib_common_reference != 202302L
+#    error "__cpp_lib_common_reference should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_has_unique_object_representations
+#    error "__cpp_lib_has_unique_object_representations should be defined in c++29"
+#  endif
+#  if __cpp_lib_has_unique_object_representations != 201606L
+#    error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_integral_constant_callable
+#    error "__cpp_lib_integral_constant_callable should be defined in c++29"
+#  endif
+#  if __cpp_lib_integral_constant_callable != 201304L
+#    error "__cpp_lib_integral_constant_callable should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_aggregate
+#    error "__cpp_lib_is_aggregate should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_aggregate != 201703L
+#    error "__cpp_lib_is_aggregate should have the value 201703L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_constant_evaluated
+#    error "__cpp_lib_is_constant_evaluated should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_constant_evaluated != 201811L
+#    error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_final
+#    error "__cpp_lib_is_final should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_final != 201402L
+#    error "__cpp_lib_is_final should have the value 201402L in c++29"
+#  endif
+
+#  if __has_builtin(__builtin_is_implicit_lifetime)
+#    ifndef __cpp_lib_is_implicit_lifetime
+#      error "__cpp_lib_is_implicit_lifetime should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_implicit_lifetime != 202302L
+#      error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_implicit_lifetime
+#      error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_is_invocable
+#    error "__cpp_lib_is_invocable should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_invocable != 201703L
+#    error "__cpp_lib_is_invocable should have the value 201703L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_is_layout_compatible
+#      error "__cpp_lib_is_layout_compatible should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_layout_compatible != 201907L
+#      error "__cpp_lib_is_layout_compatible should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_layout_compatible
+#      error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_is_nothrow_convertible
+#    error "__cpp_lib_is_nothrow_convertible should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_nothrow_convertible != 201806L
+#    error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_null_pointer
+#    error "__cpp_lib_is_null_pointer should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_null_pointer != 201309L
+#    error "__cpp_lib_is_null_pointer should have the value 201309L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_is_pointer_interconvertible
+#      error "__cpp_lib_is_pointer_interconvertible should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_pointer_interconvertible != 201907L
+#      error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_pointer_interconvertible
+#      error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_is_scoped_enum
+#    error "__cpp_lib_is_scoped_enum should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_scoped_enum != 202011L
+#    error "__cpp_lib_is_scoped_enum should have the value 202011L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_swappable
+#    error "__cpp_lib_is_swappable should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_swappable != 201603L
+#    error "__cpp_lib_is_swappable should have the value 201603L in c++29"
+#  endif
+
+#  if __has_builtin(__builtin_is_virtual_base_of)
+#    ifndef __cpp_lib_is_virtual_base_of
+#      error "__cpp_lib_is_virtual_base_of should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_virtual_base_of != 202406L
+#      error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_virtual_base_of
+#      error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!"
+#    endif
+#  endif
+
+#  if __has_builtin(__builtin_is_within_lifetime)
+#    ifndef __cpp_lib_is_within_lifetime
+#      error "__cpp_lib_is_within_lifetime should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_within_lifetime != 202306L
+#      error "__cpp_lib_is_within_lifetime should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_within_lifetime
+#      error "__cpp_lib_is_within_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_within_lifetime)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_logical_traits
+#    error "__cpp_lib_logical_traits should be defined in c++29"
+#  endif
+#  if __cpp_lib_logical_traits != 201510L
+#    error "__cpp_lib_logical_traits should have the value 201510L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_reference_from_temporary
+#      error "__cpp_lib_reference_from_temporary should be defined in c++29"
+#    endif
+#    if __cpp_lib_reference_from_temporary != 202202L
+#      error "__cpp_lib_reference_from_temporary should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_reference_from_temporary
+#      error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_remove_cvref
+#    error "__cpp_lib_remove_cvref should be defined in c++29"
+#  endif
+#  if __cpp_lib_remove_cvref != 201711L
+#    error "__cpp_lib_remove_cvref should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_result_of_sfinae
+#    error "__cpp_lib_result_of_sfinae should be defined in c++29"
+#  endif
+#  if __cpp_lib_result_of_sfinae != 201210L
+#    error "__cpp_lib_result_of_sfinae should have the value 201210L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_transformation_trait_aliases
+#    error "__cpp_lib_transformation_trait_aliases should be defined in c++29"
+#  endif
+#  if __cpp_lib_transformation_trait_aliases != 201304L
+#    error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_type_identity
+#    error "__cpp_lib_type_identity should be defined in c++29"
+#  endif
+#  if __cpp_lib_type_identity != 201806L
+#    error "__cpp_lib_type_identity should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_type_trait_variable_templates
+#    error "__cpp_lib_type_trait_variable_templates should be defined in c++29"
+#  endif
+#  if __cpp_lib_type_trait_variable_templates != 201510L
+#    error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_void_t
+#    error "__cpp_lib_void_t should be defined in c++29"
+#  endif
+#  if __cpp_lib_void_t != 201411L
+#    error "__cpp_lib_void_t should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
index cf29080ea75b4..8d2c45c1709f6 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
@@ -51,7 +51,7 @@
 #    error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constexpr_typeinfo
 #    error "__cpp_lib_constexpr_typeinfo should be defined in c++26"
@@ -60,6 +60,15 @@
 #    error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constexpr_typeinfo
+#    error "__cpp_lib_constexpr_typeinfo should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_typeinfo != 202106L
+#    error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 221d8aaebc14b..8d438527f1b8b 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
@@ -297,7 +297,7 @@
 #    error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -387,6 +387,96 @@
 #    error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_erasure != 202110L
+#      error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_insertion != 202306L
+#      error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion 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
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_generic_unordered_lookup
+#    error "__cpp_lib_generic_unordered_lookup should be defined in c++29"
+#  endif
+#  if __cpp_lib_generic_unordered_lookup != 201811L
+#    error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_node_extract
+#    error "__cpp_lib_node_extract should be defined in c++29"
+#  endif
+#  if __cpp_lib_node_extract != 201606L
+#    error "__cpp_lib_node_extract should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should be defined in c++29"
+#    endif
+#    if __cpp_lib_tuple_like != 202311L
+#      error "__cpp_lib_tuple_like should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_unordered_map_try_emplace
+#    error "__cpp_lib_unordered_map_try_emplace should be defined in c++29"
+#  endif
+#  if __cpp_lib_unordered_map_try_emplace != 201411L
+#    error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 d1c1335df7c80..a4f861ce9ae19 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
@@ -239,7 +239,7 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -309,6 +309,76 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_erasure != 202110L
+#      error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_insertion != 202306L
+#      error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion 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
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_generic_unordered_lookup
+#    error "__cpp_lib_generic_unordered_lookup should be defined in c++29"
+#  endif
+#  if __cpp_lib_generic_unordered_lookup != 201811L
+#    error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_node_extract
+#    error "__cpp_lib_node_extract should be defined in c++29"
+#  endif
+#  if __cpp_lib_node_extract != 201606L
+#    error "__cpp_lib_node_extract should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
index bff6e905e4dee..9d1b7fa3d6333 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
@@ -392,7 +392,7 @@
 #    error "__cpp_lib_unreachable should have the value 202202L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_as_const
 #    error "__cpp_lib_as_const should be defined in c++26"
@@ -498,6 +498,112 @@
 #    error "__cpp_lib_unreachable should have the value 202202L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_as_const
+#    error "__cpp_lib_as_const should be defined in c++29"
+#  endif
+#  if __cpp_lib_as_const != 201510L
+#    error "__cpp_lib_as_const should have the value 201510L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constant_wrapper
+#    error "__cpp_lib_constant_wrapper should be defined in c++29"
+#  endif
+#  if __cpp_lib_constant_wrapper != 202606L
+#    error "__cpp_lib_constant_wrapper should have the value 202606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_algorithms
+#    error "__cpp_lib_constexpr_algorithms should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_algorithms != 202306L
+#    error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_utility
+#    error "__cpp_lib_constexpr_utility should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_utility != 201811L
+#    error "__cpp_lib_constexpr_utility should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constrained_equality
+#    error "__cpp_lib_constrained_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_constrained_equality != 202411L
+#    error "__cpp_lib_constrained_equality should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_exchange_function
+#    error "__cpp_lib_exchange_function should be defined in c++29"
+#  endif
+#  if __cpp_lib_exchange_function != 201304L
+#    error "__cpp_lib_exchange_function should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_forward_like
+#    error "__cpp_lib_forward_like should be defined in c++29"
+#  endif
+#  if __cpp_lib_forward_like != 202207L
+#    error "__cpp_lib_forward_like should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_integer_comparison_functions
+#    error "__cpp_lib_integer_comparison_functions should be defined in c++29"
+#  endif
+#  if __cpp_lib_integer_comparison_functions != 202002L
+#    error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_integer_sequence
+#    error "__cpp_lib_integer_sequence should be defined in c++29"
+#  endif
+#  if __cpp_lib_integer_sequence != 202511L
+#    error "__cpp_lib_integer_sequence should have the value 202511L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_zip
+#    error "__cpp_lib_ranges_zip should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_zip != 202110L
+#    error "__cpp_lib_ranges_zip should have the value 202110L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_to_underlying
+#    error "__cpp_lib_to_underlying should be defined in c++29"
+#  endif
+#  if __cpp_lib_to_underlying != 202102L
+#    error "__cpp_lib_to_underlying should have the value 202102L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should be defined in c++29"
+#    endif
+#    if __cpp_lib_tuple_like != 202311L
+#      error "__cpp_lib_tuple_like should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_tuples_by_type
+#    error "__cpp_lib_tuples_by_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_tuples_by_type != 201304L
+#    error "__cpp_lib_tuples_by_type should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_unreachable
+#    error "__cpp_lib_unreachable should be defined in c++29"
+#  endif
+#  if __cpp_lib_unreachable != 202202L
+#    error "__cpp_lib_unreachable should have the value 202202L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 9f362141491f3..36d84a86901a3 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
@@ -60,7 +60,7 @@
 #    error "__cpp_lib_valarray should have the value 202511L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_valarray
 #    error "__cpp_lib_valarray should be defined in c++26"
@@ -69,6 +69,15 @@
 #    error "__cpp_lib_valarray should have the value 202511L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_valarray
+#    error "__cpp_lib_valarray should be defined in c++29"
+#  endif
+#  if __cpp_lib_valarray != 202511L
+#    error "__cpp_lib_valarray should have the value 202511L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 ed0bb228d7701..1fa89b2a7c3f7 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
@@ -97,7 +97,7 @@
 #    error "__cpp_lib_variant should have the value 202106L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_constrained_equality
 #    error "__cpp_lib_constrained_equality should be defined in c++26"
@@ -126,6 +126,35 @@
 #    error "__cpp_lib_variant should have the value 202306L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_constrained_equality
+#    error "__cpp_lib_constrained_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_constrained_equality != 202411L
+#    error "__cpp_lib_constrained_equality should have the value 202411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_variant
+#      error "__cpp_lib_freestanding_variant should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_variant != 202311L
+#      error "__cpp_lib_freestanding_variant should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_variant
+#      error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_variant
+#    error "__cpp_lib_variant should be defined in c++29"
+#  endif
+#  if __cpp_lib_variant != 202306L
+#    error "__cpp_lib_variant should have the value 202306L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 e34800a89c950..354a5b1fdd4db 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
@@ -210,7 +210,7 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_allocator_traits_is_always_equal
 #    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
@@ -267,6 +267,63 @@
 #    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_vector
+#    error "__cpp_lib_constexpr_vector should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_vector != 201907L
+#    error "__cpp_lib_constexpr_vector should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_incomplete_container_elements
+#    error "__cpp_lib_incomplete_container_elements should be defined in c++29"
+#  endif
+#  if __cpp_lib_incomplete_container_elements != 201505L
+#    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
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 f7a89d4d7f2e6..3a82c4ac85374 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
@@ -6372,7 +6372,7 @@
 #    error "__cpp_lib_void_t should have the value 201411L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_adaptor_iterator_pair_constructor
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26"
@@ -8391,6 +8391,2025 @@
 #    error "__cpp_lib_void_t should have the value 201411L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_adaptor_iterator_pair_constructor
+#    error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++29"
+#  endif
+#  if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
+#    error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_addressof_constexpr
+#    error "__cpp_lib_addressof_constexpr should be defined in c++29"
+#  endif
+#  if __cpp_lib_addressof_constexpr != 201603L
+#    error "__cpp_lib_addressof_constexpr should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_aligned_accessor
+#    error "__cpp_lib_aligned_accessor should be defined in c++29"
+#  endif
+#  if __cpp_lib_aligned_accessor != 202411L
+#    error "__cpp_lib_aligned_accessor should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_allocate_at_least
+#    error "__cpp_lib_allocate_at_least should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocate_at_least != 202302L
+#    error "__cpp_lib_allocate_at_least should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_allocator_traits_is_always_equal
+#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++29"
+#  endif
+#  if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_any
+#    error "__cpp_lib_any should be defined in c++29"
+#  endif
+#  if __cpp_lib_any != 201606L
+#    error "__cpp_lib_any should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_apply
+#    error "__cpp_lib_apply should be defined in c++29"
+#  endif
+#  if __cpp_lib_apply != 201603L
+#    error "__cpp_lib_apply should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_array_constexpr
+#    error "__cpp_lib_array_constexpr should be defined in c++29"
+#  endif
+#  if __cpp_lib_array_constexpr != 201811L
+#    error "__cpp_lib_array_constexpr should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_as_const
+#    error "__cpp_lib_as_const should be defined in c++29"
+#  endif
+#  if __cpp_lib_as_const != 201510L
+#    error "__cpp_lib_as_const should have the value 201510L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_erasure != 202110L
+#      error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_erasure
+#      error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++29"
+#    endif
+#    if __cpp_lib_associative_heterogeneous_insertion != 202306L
+#      error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_associative_heterogeneous_insertion
+#      error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_assume_aligned
+#    error "__cpp_lib_assume_aligned should be defined in c++29"
+#  endif
+#  if __cpp_lib_assume_aligned != 201811L
+#    error "__cpp_lib_assume_aligned should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_flag_test
+#    error "__cpp_lib_atomic_flag_test should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_flag_test != 201907L
+#    error "__cpp_lib_atomic_flag_test should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_float
+#    error "__cpp_lib_atomic_float should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_float != 201711L
+#    error "__cpp_lib_atomic_float should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_is_always_lock_free
+#    error "__cpp_lib_atomic_is_always_lock_free should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_is_always_lock_free != 201603L
+#    error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_lock_free_type_aliases
+#    error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_lock_free_type_aliases != 201907L
+#    error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_min_max
+#    error "__cpp_lib_atomic_min_max should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_min_max != 202403L
+#    error "__cpp_lib_atomic_min_max should have the value 202403L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_ref
+#    error "__cpp_lib_atomic_ref should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_ref != 202603L
+#    error "__cpp_lib_atomic_ref should have the value 202603L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_atomic_shared_ptr
+#      error "__cpp_lib_atomic_shared_ptr should be defined in c++29"
+#    endif
+#    if __cpp_lib_atomic_shared_ptr != 201711L
+#      error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_atomic_shared_ptr
+#      error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_atomic_value_initialization
+#    error "__cpp_lib_atomic_value_initialization should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_value_initialization != 201911L
+#    error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_atomic_wait
+#    error "__cpp_lib_atomic_wait should be defined in c++29"
+#  endif
+#  if __cpp_lib_atomic_wait != 201907L
+#    error "__cpp_lib_atomic_wait should have the value 201907L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_barrier
+#      error "__cpp_lib_barrier should be defined in c++29"
+#    endif
+#    if __cpp_lib_barrier != 201907L
+#      error "__cpp_lib_barrier should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_barrier
+#      error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_bind_back
+#    error "__cpp_lib_bind_back should be defined in c++29"
+#  endif
+#  if __cpp_lib_bind_back != 202202L
+#    error "__cpp_lib_bind_back should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bind_front
+#    error "__cpp_lib_bind_front should be defined in c++29"
+#  endif
+#  if __cpp_lib_bind_front != 202306L
+#    error "__cpp_lib_bind_front should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bit_cast
+#    error "__cpp_lib_bit_cast should be defined in c++29"
+#  endif
+#  if __cpp_lib_bit_cast != 201806L
+#    error "__cpp_lib_bit_cast should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bitops
+#    error "__cpp_lib_bitops should be defined in c++29"
+#  endif
+#  if __cpp_lib_bitops != 201907L
+#    error "__cpp_lib_bitops should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bitset
+#    error "__cpp_lib_bitset should be defined in c++29"
+#  endif
+#  if __cpp_lib_bitset != 202306L
+#    error "__cpp_lib_bitset should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bool_constant
+#    error "__cpp_lib_bool_constant should be defined in c++29"
+#  endif
+#  if __cpp_lib_bool_constant != 201505L
+#    error "__cpp_lib_bool_constant should have the value 201505L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_bounded_array_traits
+#    error "__cpp_lib_bounded_array_traits should be defined in c++29"
+#  endif
+#  if __cpp_lib_bounded_array_traits != 201902L
+#    error "__cpp_lib_bounded_array_traits should have the value 201902L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_boyer_moore_searcher
+#    error "__cpp_lib_boyer_moore_searcher should be defined in c++29"
+#  endif
+#  if __cpp_lib_boyer_moore_searcher != 201603L
+#    error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_byte
+#    error "__cpp_lib_byte should be defined in c++29"
+#  endif
+#  if __cpp_lib_byte != 201603L
+#    error "__cpp_lib_byte should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_byteswap
+#    error "__cpp_lib_byteswap should be defined in c++29"
+#  endif
+#  if __cpp_lib_byteswap != 202110L
+#    error "__cpp_lib_byteswap should have the value 202110L in c++29"
+#  endif
+
+#  if defined(__cpp_char8_t)
+#    ifndef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should be defined in c++29"
+#    endif
+#    if __cpp_lib_char8_t != 201907L
+#      error "__cpp_lib_char8_t should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_char8_t
+#      error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_chrono
+#    error "__cpp_lib_chrono should be defined in c++29"
+#  endif
+#  if __cpp_lib_chrono != 201611L
+#    error "__cpp_lib_chrono should have the value 201611L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_chrono_udls
+#    error "__cpp_lib_chrono_udls should be defined in c++29"
+#  endif
+#  if __cpp_lib_chrono_udls != 201304L
+#    error "__cpp_lib_chrono_udls should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_clamp
+#    error "__cpp_lib_clamp should be defined in c++29"
+#  endif
+#  if __cpp_lib_clamp != 201603L
+#    error "__cpp_lib_clamp should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_common_reference
+#    error "__cpp_lib_common_reference should be defined in c++29"
+#  endif
+#  if __cpp_lib_common_reference != 202302L
+#    error "__cpp_lib_common_reference should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_common_reference_wrapper
+#    error "__cpp_lib_common_reference_wrapper should be defined in c++29"
+#  endif
+#  if __cpp_lib_common_reference_wrapper != 202302L
+#    error "__cpp_lib_common_reference_wrapper should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_complex_udls
+#    error "__cpp_lib_complex_udls should be defined in c++29"
+#  endif
+#  if __cpp_lib_complex_udls != 201309L
+#    error "__cpp_lib_complex_udls should have the value 201309L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_concepts
+#    error "__cpp_lib_concepts should be defined in c++29"
+#  endif
+#  if __cpp_lib_concepts != 202207L
+#    error "__cpp_lib_concepts should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constant_wrapper
+#    error "__cpp_lib_constant_wrapper should be defined in c++29"
+#  endif
+#  if __cpp_lib_constant_wrapper != 202606L
+#    error "__cpp_lib_constant_wrapper should have the value 202606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_algorithms
+#    error "__cpp_lib_constexpr_algorithms should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_algorithms != 202306L
+#    error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_bitset
+#    error "__cpp_lib_constexpr_bitset should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_bitset != 202207L
+#    error "__cpp_lib_constexpr_bitset should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_charconv
+#    error "__cpp_lib_constexpr_charconv should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_charconv != 202207L
+#    error "__cpp_lib_constexpr_charconv should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_constexpr_cmath
+#      error "__cpp_lib_constexpr_cmath should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_cmath != 202202L
+#      error "__cpp_lib_constexpr_cmath should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_cmath
+#      error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_constexpr_complex
+#    error "__cpp_lib_constexpr_complex should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_complex != 201711L
+#    error "__cpp_lib_constexpr_complex should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_dynamic_alloc
+#    error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_dynamic_alloc != 201907L
+#    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_flat_map
+#    error "__cpp_lib_constexpr_flat_map should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_flat_map != 202502L
+#    error "__cpp_lib_constexpr_flat_map should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_flat_set
+#    error "__cpp_lib_constexpr_flat_set should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_flat_set != 202502L
+#    error "__cpp_lib_constexpr_flat_set should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_forward_list != 202502L
+#    error "__cpp_lib_constexpr_forward_list should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_functional
+#    error "__cpp_lib_constexpr_functional should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_functional != 201907L
+#    error "__cpp_lib_constexpr_functional should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_iterator
+#    error "__cpp_lib_constexpr_iterator should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_iterator != 201811L
+#    error "__cpp_lib_constexpr_iterator should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_list
+#    error "__cpp_lib_constexpr_list should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_list != 202502L
+#    error "__cpp_lib_constexpr_list should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_map
+#    error "__cpp_lib_constexpr_map should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_map != 202502L
+#    error "__cpp_lib_constexpr_map should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_memory
+#    error "__cpp_lib_constexpr_memory should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_memory != 202202L
+#    error "__cpp_lib_constexpr_memory should have the value 202202L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_ABI_VCRUNTIME)
+#    ifndef __cpp_lib_constexpr_new
+#      error "__cpp_lib_constexpr_new should be defined in c++29"
+#    endif
+#    if __cpp_lib_constexpr_new != 202406L
+#      error "__cpp_lib_constexpr_new should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_constexpr_new
+#      error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_constexpr_numeric
+#    error "__cpp_lib_constexpr_numeric should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_numeric != 201911L
+#    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"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_set
+#    error "__cpp_lib_constexpr_set should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_set != 202502L
+#    error "__cpp_lib_constexpr_set should have the value 202502L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_string
+#    error "__cpp_lib_constexpr_string should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_string != 201907L
+#    error "__cpp_lib_constexpr_string should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_string_view
+#    error "__cpp_lib_constexpr_string_view should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_string_view != 201811L
+#    error "__cpp_lib_constexpr_string_view should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_tuple
+#    error "__cpp_lib_constexpr_tuple should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_tuple != 201811L
+#    error "__cpp_lib_constexpr_tuple should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_typeinfo
+#    error "__cpp_lib_constexpr_typeinfo should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_typeinfo != 202106L
+#    error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_utility
+#    error "__cpp_lib_constexpr_utility should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_utility != 201811L
+#    error "__cpp_lib_constexpr_utility should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constexpr_vector
+#    error "__cpp_lib_constexpr_vector should be defined in c++29"
+#  endif
+#  if __cpp_lib_constexpr_vector != 201907L
+#    error "__cpp_lib_constexpr_vector should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_constrained_equality
+#    error "__cpp_lib_constrained_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_constrained_equality != 202411L
+#    error "__cpp_lib_constrained_equality should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_containers_ranges
+#    error "__cpp_lib_containers_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_containers_ranges != 202202L
+#    error "__cpp_lib_containers_ranges should have the value 202202L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_copyable_function
+#      error "__cpp_lib_copyable_function should be defined in c++29"
+#    endif
+#    if __cpp_lib_copyable_function != 202306L
+#      error "__cpp_lib_copyable_function should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_copyable_function
+#      error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_coroutine
+#    error "__cpp_lib_coroutine should be defined in c++29"
+#  endif
+#  if __cpp_lib_coroutine != 201902L
+#    error "__cpp_lib_coroutine should have the value 201902L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_debugging
+#      error "__cpp_lib_debugging should be defined in c++29"
+#    endif
+#    if __cpp_lib_debugging != 202311L
+#      error "__cpp_lib_debugging should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_debugging
+#      error "__cpp_lib_debugging should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++29"
+#    endif
+#    if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#      error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_default_template_type_for_algorithm_values
+#      error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
+#    ifndef __cpp_lib_destroying_delete
+#      error "__cpp_lib_destroying_delete should be defined in c++29"
+#    endif
+#    if __cpp_lib_destroying_delete != 201806L
+#      error "__cpp_lib_destroying_delete should have the value 201806L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_destroying_delete
+#      error "__cpp_lib_destroying_delete should not be defined when the requirement 'defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_enable_shared_from_this
+#    error "__cpp_lib_enable_shared_from_this should be defined in c++29"
+#  endif
+#  if __cpp_lib_enable_shared_from_this != 201603L
+#    error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_endian
+#    error "__cpp_lib_endian should be defined in c++29"
+#  endif
+#  if __cpp_lib_endian != 201907L
+#    error "__cpp_lib_endian should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_erase_if
+#    error "__cpp_lib_erase_if should be defined in c++29"
+#  endif
+#  if __cpp_lib_erase_if != 202002L
+#    error "__cpp_lib_erase_if should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_exchange_function
+#    error "__cpp_lib_exchange_function should be defined in c++29"
+#  endif
+#  if __cpp_lib_exchange_function != 201304L
+#    error "__cpp_lib_exchange_function should have the value 201304L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_execution
+#      error "__cpp_lib_execution should be defined in c++29"
+#    endif
+#    if __cpp_lib_execution != 201902L
+#      error "__cpp_lib_execution should have the value 201902L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_execution
+#      error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_expected
+#    error "__cpp_lib_expected should be defined in c++29"
+#  endif
+#  if __cpp_lib_expected != 202211L
+#    error "__cpp_lib_expected should have the value 202211L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_FILESYSTEM
+#    ifndef __cpp_lib_filesystem
+#      error "__cpp_lib_filesystem should be defined in c++29"
+#    endif
+#    if __cpp_lib_filesystem != 201703L
+#      error "__cpp_lib_filesystem should have the value 201703L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_filesystem
+#      error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_FILESYSTEM' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_flat_map
+#    error "__cpp_lib_flat_map should be defined in c++29"
+#  endif
+#  if __cpp_lib_flat_map != 202511L
+#    error "__cpp_lib_flat_map should have the value 202511L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_flat_set
+#    error "__cpp_lib_flat_set should be defined in c++29"
+#  endif
+#  if __cpp_lib_flat_set != 202511L
+#    error "__cpp_lib_flat_set should have the value 202511L in c++29"
+#  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"
+#    endif
+#    if __cpp_lib_format != 202110L
+#      error "__cpp_lib_format should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_format
+#      error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_format_path
+#      error "__cpp_lib_format_path should be defined in c++29"
+#    endif
+#    if __cpp_lib_format_path != 202403L
+#      error "__cpp_lib_format_path should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_format_path
+#      error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_format_ranges
+#    error "__cpp_lib_format_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_format_ranges != 202207L
+#    error "__cpp_lib_format_ranges should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_format_uchar
+#    error "__cpp_lib_format_uchar should be defined in c++29"
+#  endif
+#  if __cpp_lib_format_uchar != 202311L
+#    error "__cpp_lib_format_uchar should have the value 202311L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_formatters
+#      error "__cpp_lib_formatters should be defined in c++29"
+#    endif
+#    if __cpp_lib_formatters != 202302L
+#      error "__cpp_lib_formatters should have the value 202302L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_formatters
+#      error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_forward_like
+#    error "__cpp_lib_forward_like should be defined in c++29"
+#  endif
+#  if __cpp_lib_forward_like != 202207L
+#    error "__cpp_lib_forward_like should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_algorithm
+#      error "__cpp_lib_freestanding_algorithm should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_algorithm != 202311L
+#      error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_algorithm
+#      error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_array
+#      error "__cpp_lib_freestanding_array should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_array != 202311L
+#      error "__cpp_lib_freestanding_array should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_array
+#      error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_cstring
+#      error "__cpp_lib_freestanding_cstring should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_cstring != 202306L
+#      error "__cpp_lib_freestanding_cstring should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_cstring
+#      error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_expected
+#      error "__cpp_lib_freestanding_expected should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_expected != 202311L
+#      error "__cpp_lib_freestanding_expected should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_expected
+#      error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_mdspan
+#      error "__cpp_lib_freestanding_mdspan should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_mdspan != 202311L
+#      error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_mdspan
+#      error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_optional
+#      error "__cpp_lib_freestanding_optional should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_optional != 202311L
+#      error "__cpp_lib_freestanding_optional should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_optional
+#      error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_string_view
+#      error "__cpp_lib_freestanding_string_view should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_string_view != 202311L
+#      error "__cpp_lib_freestanding_string_view should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_string_view
+#      error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_freestanding_variant
+#      error "__cpp_lib_freestanding_variant should be defined in c++29"
+#    endif
+#    if __cpp_lib_freestanding_variant != 202311L
+#      error "__cpp_lib_freestanding_variant should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_freestanding_variant
+#      error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)
+#    ifndef __cpp_lib_fstream_native_handle
+#      error "__cpp_lib_fstream_native_handle should be defined in c++29"
+#    endif
+#    if __cpp_lib_fstream_native_handle != 202306L
+#      error "__cpp_lib_fstream_native_handle should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_fstream_native_handle
+#      error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_function_ref
+#    error "__cpp_lib_function_ref should be defined in c++29"
+#  endif
+#  if __cpp_lib_function_ref != 202603L
+#    error "__cpp_lib_function_ref should have the value 202603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_gcd_lcm
+#    error "__cpp_lib_gcd_lcm should be defined in c++29"
+#  endif
+#  if __cpp_lib_gcd_lcm != 201606L
+#    error "__cpp_lib_gcd_lcm should have the value 201606L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_generate_random
+#      error "__cpp_lib_generate_random should be defined in c++29"
+#    endif
+#    if __cpp_lib_generate_random != 202403L
+#      error "__cpp_lib_generate_random should have the value 202403L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_generate_random
+#      error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_generic_associative_lookup
+#    error "__cpp_lib_generic_associative_lookup should be defined in c++29"
+#  endif
+#  if __cpp_lib_generic_associative_lookup != 201304L
+#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_generic_unordered_lookup
+#    error "__cpp_lib_generic_unordered_lookup should be defined in c++29"
+#  endif
+#  if __cpp_lib_generic_unordered_lookup != 201811L
+#    error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_hardware_interference_size
+#    error "__cpp_lib_hardware_interference_size should be defined in c++29"
+#  endif
+#  if __cpp_lib_hardware_interference_size != 201703L
+#    error "__cpp_lib_hardware_interference_size should have the value 201703L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_has_unique_object_representations
+#    error "__cpp_lib_has_unique_object_representations should be defined in c++29"
+#  endif
+#  if __cpp_lib_has_unique_object_representations != 201606L
+#    error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_hazard_pointer
+#      error "__cpp_lib_hazard_pointer should be defined in c++29"
+#    endif
+#    if __cpp_lib_hazard_pointer != 202306L
+#      error "__cpp_lib_hazard_pointer should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_hazard_pointer
+#      error "__cpp_lib_hazard_pointer 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
+#  if __cpp_lib_hypot != 201603L
+#    error "__cpp_lib_hypot should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_incomplete_container_elements
+#    error "__cpp_lib_incomplete_container_elements should be defined in c++29"
+#  endif
+#  if __cpp_lib_incomplete_container_elements != 201505L
+#    error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_initializer_list
+#    error "__cpp_lib_initializer_list should be defined in c++29"
+#  endif
+#  if __cpp_lib_initializer_list != 202511L
+#    error "__cpp_lib_initializer_list should have the value 202511L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_inplace_vector
+#      error "__cpp_lib_inplace_vector should be defined in c++29"
+#    endif
+#    if __cpp_lib_inplace_vector != 202406L
+#      error "__cpp_lib_inplace_vector should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_inplace_vector
+#      error "__cpp_lib_inplace_vector should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_int_pow2
+#    error "__cpp_lib_int_pow2 should be defined in c++29"
+#  endif
+#  if __cpp_lib_int_pow2 != 202002L
+#    error "__cpp_lib_int_pow2 should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_integer_comparison_functions
+#    error "__cpp_lib_integer_comparison_functions should be defined in c++29"
+#  endif
+#  if __cpp_lib_integer_comparison_functions != 202002L
+#    error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_integer_sequence
+#    error "__cpp_lib_integer_sequence should be defined in c++29"
+#  endif
+#  if __cpp_lib_integer_sequence != 202511L
+#    error "__cpp_lib_integer_sequence should have the value 202511L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_integral_constant_callable
+#    error "__cpp_lib_integral_constant_callable should be defined in c++29"
+#  endif
+#  if __cpp_lib_integral_constant_callable != 201304L
+#    error "__cpp_lib_integral_constant_callable should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_interpolate
+#    error "__cpp_lib_interpolate should be defined in c++29"
+#  endif
+#  if __cpp_lib_interpolate != 201902L
+#    error "__cpp_lib_interpolate should have the value 201902L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_invoke
+#    error "__cpp_lib_invoke should be defined in c++29"
+#  endif
+#  if __cpp_lib_invoke != 201411L
+#    error "__cpp_lib_invoke should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_invoke_r
+#    error "__cpp_lib_invoke_r should be defined in c++29"
+#  endif
+#  if __cpp_lib_invoke_r != 202106L
+#    error "__cpp_lib_invoke_r should have the value 202106L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ios_noreplace
+#    error "__cpp_lib_ios_noreplace should be defined in c++29"
+#  endif
+#  if __cpp_lib_ios_noreplace != 202207L
+#    error "__cpp_lib_ios_noreplace should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_aggregate
+#    error "__cpp_lib_is_aggregate should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_aggregate != 201703L
+#    error "__cpp_lib_is_aggregate should have the value 201703L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_constant_evaluated
+#    error "__cpp_lib_is_constant_evaluated should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_constant_evaluated != 201811L
+#    error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_final
+#    error "__cpp_lib_is_final should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_final != 201402L
+#    error "__cpp_lib_is_final should have the value 201402L in c++29"
+#  endif
+
+#  if __has_builtin(__builtin_is_implicit_lifetime)
+#    ifndef __cpp_lib_is_implicit_lifetime
+#      error "__cpp_lib_is_implicit_lifetime should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_implicit_lifetime != 202302L
+#      error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_implicit_lifetime
+#      error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_is_invocable
+#    error "__cpp_lib_is_invocable should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_invocable != 201703L
+#    error "__cpp_lib_is_invocable should have the value 201703L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_is_layout_compatible
+#      error "__cpp_lib_is_layout_compatible should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_layout_compatible != 201907L
+#      error "__cpp_lib_is_layout_compatible should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_layout_compatible
+#      error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_is_nothrow_convertible
+#    error "__cpp_lib_is_nothrow_convertible should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_nothrow_convertible != 201806L
+#    error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_null_pointer
+#    error "__cpp_lib_is_null_pointer should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_null_pointer != 201309L
+#    error "__cpp_lib_is_null_pointer should have the value 201309L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_is_pointer_interconvertible
+#      error "__cpp_lib_is_pointer_interconvertible should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_pointer_interconvertible != 201907L
+#      error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_pointer_interconvertible
+#      error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_is_scoped_enum
+#    error "__cpp_lib_is_scoped_enum should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_scoped_enum != 202011L
+#    error "__cpp_lib_is_scoped_enum should have the value 202011L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_sufficiently_aligned
+#    error "__cpp_lib_is_sufficiently_aligned should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_sufficiently_aligned != 202411L
+#    error "__cpp_lib_is_sufficiently_aligned should have the value 202411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_is_swappable
+#    error "__cpp_lib_is_swappable should be defined in c++29"
+#  endif
+#  if __cpp_lib_is_swappable != 201603L
+#    error "__cpp_lib_is_swappable should have the value 201603L in c++29"
+#  endif
+
+#  if __has_builtin(__builtin_is_virtual_base_of)
+#    ifndef __cpp_lib_is_virtual_base_of
+#      error "__cpp_lib_is_virtual_base_of should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_virtual_base_of != 202406L
+#      error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_virtual_base_of
+#      error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!"
+#    endif
+#  endif
+
+#  if __has_builtin(__builtin_is_within_lifetime)
+#    ifndef __cpp_lib_is_within_lifetime
+#      error "__cpp_lib_is_within_lifetime should be defined in c++29"
+#    endif
+#    if __cpp_lib_is_within_lifetime != 202306L
+#      error "__cpp_lib_is_within_lifetime should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_is_within_lifetime
+#      error "__cpp_lib_is_within_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_within_lifetime)' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_jthread
+#      error "__cpp_lib_jthread should be defined in c++29"
+#    endif
+#    if __cpp_lib_jthread != 201911L
+#      error "__cpp_lib_jthread should have the value 201911L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_jthread
+#      error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_latch
+#      error "__cpp_lib_latch should be defined in c++29"
+#    endif
+#    if __cpp_lib_latch != 201907L
+#      error "__cpp_lib_latch should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_latch
+#      error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_launder
+#    error "__cpp_lib_launder should be defined in c++29"
+#  endif
+#  if __cpp_lib_launder != 201606L
+#    error "__cpp_lib_launder should have the value 201606L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_linalg
+#      error "__cpp_lib_linalg should be defined in c++29"
+#    endif
+#    if __cpp_lib_linalg != 202311L
+#      error "__cpp_lib_linalg should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_linalg
+#      error "__cpp_lib_linalg should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_list_remove_return_type
+#    error "__cpp_lib_list_remove_return_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_list_remove_return_type != 201806L
+#    error "__cpp_lib_list_remove_return_type should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_logical_traits
+#    error "__cpp_lib_logical_traits should be defined in c++29"
+#  endif
+#  if __cpp_lib_logical_traits != 201510L
+#    error "__cpp_lib_logical_traits should have the value 201510L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_make_from_tuple
+#    error "__cpp_lib_make_from_tuple should be defined in c++29"
+#  endif
+#  if __cpp_lib_make_from_tuple != 201606L
+#    error "__cpp_lib_make_from_tuple should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_make_reverse_iterator
+#    error "__cpp_lib_make_reverse_iterator should be defined in c++29"
+#  endif
+#  if __cpp_lib_make_reverse_iterator != 201402L
+#    error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_make_unique
+#    error "__cpp_lib_make_unique should be defined in c++29"
+#  endif
+#  if __cpp_lib_make_unique != 201304L
+#    error "__cpp_lib_make_unique should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_map_try_emplace
+#    error "__cpp_lib_map_try_emplace should be defined in c++29"
+#  endif
+#  if __cpp_lib_map_try_emplace != 201411L
+#    error "__cpp_lib_map_try_emplace should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_math_constants
+#    error "__cpp_lib_math_constants should be defined in c++29"
+#  endif
+#  if __cpp_lib_math_constants != 201907L
+#    error "__cpp_lib_math_constants should have the value 201907L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_math_special_functions
+#      error "__cpp_lib_math_special_functions should be defined in c++29"
+#    endif
+#    if __cpp_lib_math_special_functions != 201603L
+#      error "__cpp_lib_math_special_functions should have the value 201603L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_math_special_functions
+#      error "__cpp_lib_math_special_functions 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
+#  if __cpp_lib_mdspan != 202406L
+#    error "__cpp_lib_mdspan should have the value 202406L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#    ifndef __cpp_lib_memory_resource
+#      error "__cpp_lib_memory_resource should be defined in c++29"
+#    endif
+#    if __cpp_lib_memory_resource != 201603L
+#      error "__cpp_lib_memory_resource should have the value 201603L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_memory_resource
+#      error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_modules
+#    error "__cpp_lib_modules should be defined in c++29"
+#  endif
+#  if __cpp_lib_modules != 202207L
+#    error "__cpp_lib_modules should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_move_iterator_concept
+#    error "__cpp_lib_move_iterator_concept should be defined in c++29"
+#  endif
+#  if __cpp_lib_move_iterator_concept != 202207L
+#    error "__cpp_lib_move_iterator_concept should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_move_only_function
+#      error "__cpp_lib_move_only_function should be defined in c++29"
+#    endif
+#    if __cpp_lib_move_only_function != 202110L
+#      error "__cpp_lib_move_only_function should have the value 202110L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_move_only_function
+#      error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_node_extract
+#    error "__cpp_lib_node_extract should be defined in c++29"
+#  endif
+#  if __cpp_lib_node_extract != 201606L
+#    error "__cpp_lib_node_extract should have the value 201606L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_nonmember_container_access
+#    error "__cpp_lib_nonmember_container_access should be defined in c++29"
+#  endif
+#  if __cpp_lib_nonmember_container_access != 201411L
+#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_not_fn
+#    error "__cpp_lib_not_fn should be defined in c++29"
+#  endif
+#  if __cpp_lib_not_fn != 202306L
+#    error "__cpp_lib_not_fn should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_null_iterators
+#    error "__cpp_lib_null_iterators should be defined in c++29"
+#  endif
+#  if __cpp_lib_null_iterators != 201304L
+#    error "__cpp_lib_null_iterators should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_optional
+#    error "__cpp_lib_optional should be defined in c++29"
+#  endif
+#  if __cpp_lib_optional != 202506L
+#    error "__cpp_lib_optional should have the value 202506L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_OPTIONAL_ITERATOR
+#    ifndef __cpp_lib_optional_range_support
+#      error "__cpp_lib_optional_range_support should be defined in c++29"
+#    endif
+#    if __cpp_lib_optional_range_support != 202406L
+#      error "__cpp_lib_optional_range_support should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_optional_range_support
+#      error "__cpp_lib_optional_range_support should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_OPTIONAL_ITERATOR' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_out_ptr
+#    error "__cpp_lib_out_ptr should be defined in c++29"
+#  endif
+#  if __cpp_lib_out_ptr != 202311L
+#    error "__cpp_lib_out_ptr should have the value 202311L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_parallel_algorithm
+#      error "__cpp_lib_parallel_algorithm should be defined in c++29"
+#    endif
+#    if __cpp_lib_parallel_algorithm != 201603L
+#      error "__cpp_lib_parallel_algorithm should have the value 201603L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_parallel_algorithm
+#      error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_philox_engine
+#      error "__cpp_lib_philox_engine should be defined in c++29"
+#    endif
+#    if __cpp_lib_philox_engine != 202406L
+#      error "__cpp_lib_philox_engine should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_philox_engine
+#      error "__cpp_lib_philox_engine 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"
+#    endif
+#    if __cpp_lib_polymorphic_allocator != 201902L
+#      error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_polymorphic_allocator
+#      error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#    ifndef __cpp_lib_print
+#      error "__cpp_lib_print should be defined in c++29"
+#    endif
+#    if __cpp_lib_print != 202207L
+#      error "__cpp_lib_print should have the value 202207L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_print
+#      error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
+#    ifndef __cpp_lib_quoted_string_io
+#      error "__cpp_lib_quoted_string_io should be defined in c++29"
+#    endif
+#    if __cpp_lib_quoted_string_io != 201304L
+#      error "__cpp_lib_quoted_string_io should have the value 201304L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_quoted_string_io
+#      error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_ranges
+#    error "__cpp_lib_ranges should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges != 202406L
+#    error "__cpp_lib_ranges should have the value 202406L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_as_const
+#      error "__cpp_lib_ranges_as_const should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_as_const != 202207L
+#      error "__cpp_lib_ranges_as_const should have the value 202207L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_as_const
+#      error "__cpp_lib_ranges_as_const 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
+#  if __cpp_lib_ranges_as_rvalue != 202207L
+#    error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_chunk
+#      error "__cpp_lib_ranges_chunk should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_chunk != 202202L
+#      error "__cpp_lib_ranges_chunk should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_chunk
+#      error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_ranges_chunk_by
+#    error "__cpp_lib_ranges_chunk_by should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_chunk_by != 202202L
+#    error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_concat
+#    error "__cpp_lib_ranges_concat should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_concat != 202403L
+#    error "__cpp_lib_ranges_concat should have the value 202403L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_contains
+#    error "__cpp_lib_ranges_contains should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_contains != 202207L
+#    error "__cpp_lib_ranges_contains should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_enumerate
+#    error "__cpp_lib_ranges_enumerate should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_enumerate != 202302L
+#    error "__cpp_lib_ranges_enumerate should have the value 202302L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_find_last
+#    error "__cpp_lib_ranges_find_last should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_find_last != 202207L
+#    error "__cpp_lib_ranges_find_last should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_fold
+#    error "__cpp_lib_ranges_fold should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_fold != 202207L
+#    error "__cpp_lib_ranges_fold should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_indices
+#    error "__cpp_lib_ranges_indices should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_indices != 202506L
+#    error "__cpp_lib_ranges_indices should have the value 202506L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_iota
+#    error "__cpp_lib_ranges_iota should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_iota != 202202L
+#    error "__cpp_lib_ranges_iota should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_join_with
+#    error "__cpp_lib_ranges_join_with should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_join_with != 202202L
+#    error "__cpp_lib_ranges_join_with should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_repeat
+#    error "__cpp_lib_ranges_repeat should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_repeat != 202207L
+#    error "__cpp_lib_ranges_repeat should have the value 202207L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_ranges_slide
+#      error "__cpp_lib_ranges_slide should be defined in c++29"
+#    endif
+#    if __cpp_lib_ranges_slide != 202202L
+#      error "__cpp_lib_ranges_slide should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_ranges_slide
+#      error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_ranges_starts_ends_with
+#    error "__cpp_lib_ranges_starts_ends_with should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_starts_ends_with != 202106L
+#    error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_stride
+#    error "__cpp_lib_ranges_stride should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_stride != 202207L
+#    error "__cpp_lib_ranges_stride should have the value 202207L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_to_container
+#    error "__cpp_lib_ranges_to_container should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_to_container != 202202L
+#    error "__cpp_lib_ranges_to_container should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ranges_zip
+#    error "__cpp_lib_ranges_zip should be defined in c++29"
+#  endif
+#  if __cpp_lib_ranges_zip != 202110L
+#    error "__cpp_lib_ranges_zip should have the value 202110L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_ratio
+#    error "__cpp_lib_ratio should be defined in c++29"
+#  endif
+#  if __cpp_lib_ratio != 202306L
+#    error "__cpp_lib_ratio should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_raw_memory_algorithms
+#    error "__cpp_lib_raw_memory_algorithms should be defined in c++29"
+#  endif
+#  if __cpp_lib_raw_memory_algorithms != 202411L
+#    error "__cpp_lib_raw_memory_algorithms should have the value 202411L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_rcu
+#      error "__cpp_lib_rcu should be defined in c++29"
+#    endif
+#    if __cpp_lib_rcu != 202306L
+#      error "__cpp_lib_rcu should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_rcu
+#      error "__cpp_lib_rcu should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_reference_from_temporary
+#      error "__cpp_lib_reference_from_temporary should be defined in c++29"
+#    endif
+#    if __cpp_lib_reference_from_temporary != 202202L
+#      error "__cpp_lib_reference_from_temporary should have the value 202202L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_reference_from_temporary
+#      error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_reference_wrapper
+#    error "__cpp_lib_reference_wrapper should be defined in c++29"
+#  endif
+#  if __cpp_lib_reference_wrapper != 202403L
+#    error "__cpp_lib_reference_wrapper should have the value 202403L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_remove_cvref
+#    error "__cpp_lib_remove_cvref should be defined in c++29"
+#  endif
+#  if __cpp_lib_remove_cvref != 201711L
+#    error "__cpp_lib_remove_cvref should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_result_of_sfinae
+#    error "__cpp_lib_result_of_sfinae should be defined in c++29"
+#  endif
+#  if __cpp_lib_result_of_sfinae != 201210L
+#    error "__cpp_lib_result_of_sfinae should have the value 201210L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_robust_nonmodifying_seq_ops
+#    error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++29"
+#  endif
+#  if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
+#    error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_sample
+#    error "__cpp_lib_sample should be defined in c++29"
+#  endif
+#  if __cpp_lib_sample != 201603L
+#    error "__cpp_lib_sample should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_saturation_arithmetic
+#    error "__cpp_lib_saturation_arithmetic should be defined in c++29"
+#  endif
+#  if __cpp_lib_saturation_arithmetic != 202603L
+#    error "__cpp_lib_saturation_arithmetic should have the value 202603L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_scoped_lock
+#      error "__cpp_lib_scoped_lock should be defined in c++29"
+#    endif
+#    if __cpp_lib_scoped_lock != 201703L
+#      error "__cpp_lib_scoped_lock should have the value 201703L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_scoped_lock
+#      error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_semaphore
+#      error "__cpp_lib_semaphore should be defined in c++29"
+#    endif
+#    if __cpp_lib_semaphore != 201907L
+#      error "__cpp_lib_semaphore should have the value 201907L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_semaphore
+#      error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_senders
+#      error "__cpp_lib_senders should be defined in c++29"
+#    endif
+#    if __cpp_lib_senders != 202406L
+#      error "__cpp_lib_senders should have the value 202406L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_senders
+#      error "__cpp_lib_senders should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_shared_mutex
+#      error "__cpp_lib_shared_mutex should be defined in c++29"
+#    endif
+#    if __cpp_lib_shared_mutex != 201505L
+#      error "__cpp_lib_shared_mutex should have the value 201505L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_shared_mutex
+#      error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_shared_ptr_arrays
+#    error "__cpp_lib_shared_ptr_arrays should be defined in c++29"
+#  endif
+#  if __cpp_lib_shared_ptr_arrays != 201707L
+#    error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_shared_ptr_weak_type
+#    error "__cpp_lib_shared_ptr_weak_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_shared_ptr_weak_type != 201606L
+#    error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#    ifndef __cpp_lib_shared_timed_mutex
+#      error "__cpp_lib_shared_timed_mutex should be defined in c++29"
+#    endif
+#    if __cpp_lib_shared_timed_mutex != 201402L
+#      error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_shared_timed_mutex
+#      error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_shift
+#    error "__cpp_lib_shift should be defined in c++29"
+#  endif
+#  if __cpp_lib_shift != 202202L
+#    error "__cpp_lib_shift should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_smart_ptr_for_overwrite
+#    error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++29"
+#  endif
+#  if __cpp_lib_smart_ptr_for_overwrite != 202002L
+#    error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_smart_ptr_owner_equality
+#    error "__cpp_lib_smart_ptr_owner_equality should be defined in c++29"
+#  endif
+#  if __cpp_lib_smart_ptr_owner_equality != 202306L
+#    error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_source_location
+#    error "__cpp_lib_source_location should be defined in c++29"
+#  endif
+#  if __cpp_lib_source_location != 201907L
+#    error "__cpp_lib_source_location should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_span
+#    error "__cpp_lib_span should be defined in c++29"
+#  endif
+#  if __cpp_lib_span != 202002L
+#    error "__cpp_lib_span should have the value 202002L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_span_at
+#    error "__cpp_lib_span_at should be defined in c++29"
+#  endif
+#  if __cpp_lib_span_at != 202311L
+#    error "__cpp_lib_span_at should have the value 202311L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_spanstream
+#      error "__cpp_lib_spanstream should be defined in c++29"
+#    endif
+#    if __cpp_lib_spanstream != 202106L
+#      error "__cpp_lib_spanstream should have the value 202106L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_spanstream
+#      error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_ssize
+#    error "__cpp_lib_ssize should be defined in c++29"
+#  endif
+#  if __cpp_lib_ssize != 201902L
+#    error "__cpp_lib_ssize should have the value 201902L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_sstream_from_string_view
+#    error "__cpp_lib_sstream_from_string_view should be defined in c++29"
+#  endif
+#  if __cpp_lib_sstream_from_string_view != 202306L
+#    error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_stacktrace
+#      error "__cpp_lib_stacktrace should be defined in c++29"
+#    endif
+#    if __cpp_lib_stacktrace != 202011L
+#      error "__cpp_lib_stacktrace should have the value 202011L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_stacktrace
+#      error "__cpp_lib_stacktrace 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
+#  if __cpp_lib_starts_ends_with != 201711L
+#    error "__cpp_lib_starts_ends_with should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_stdatomic_h
+#    error "__cpp_lib_stdatomic_h should be defined in c++29"
+#  endif
+#  if __cpp_lib_stdatomic_h != 202011L
+#    error "__cpp_lib_stdatomic_h should have the value 202011L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_contains
+#    error "__cpp_lib_string_contains should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_contains != 202011L
+#    error "__cpp_lib_string_contains should have the value 202011L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_resize_and_overwrite
+#    error "__cpp_lib_string_resize_and_overwrite should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_resize_and_overwrite != 202110L
+#    error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_subview
+#    error "__cpp_lib_string_subview should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_subview != 202506L
+#    error "__cpp_lib_string_subview should have the value 202506L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_udls
+#    error "__cpp_lib_string_udls should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_udls != 201304L
+#    error "__cpp_lib_string_udls should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_string_view
+#    error "__cpp_lib_string_view should be defined in c++29"
+#  endif
+#  if __cpp_lib_string_view != 202403L
+#    error "__cpp_lib_string_view should have the value 202403L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_submdspan
+#      error "__cpp_lib_submdspan should be defined in c++29"
+#    endif
+#    if __cpp_lib_submdspan != 202306L
+#      error "__cpp_lib_submdspan should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_submdspan
+#      error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
+#    ifndef __cpp_lib_syncbuf
+#      error "__cpp_lib_syncbuf should be defined in c++29"
+#    endif
+#    if __cpp_lib_syncbuf != 201803L
+#      error "__cpp_lib_syncbuf should have the value 201803L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_syncbuf
+#      error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_text_encoding
+#    error "__cpp_lib_text_encoding should be defined in c++29"
+#  endif
+#  if __cpp_lib_text_encoding != 202306L
+#    error "__cpp_lib_text_encoding should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_three_way_comparison
+#    error "__cpp_lib_three_way_comparison should be defined in c++29"
+#  endif
+#  if __cpp_lib_three_way_comparison != 201907L
+#    error "__cpp_lib_three_way_comparison should have the value 201907L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_to_address
+#    error "__cpp_lib_to_address should be defined in c++29"
+#  endif
+#  if __cpp_lib_to_address != 201711L
+#    error "__cpp_lib_to_address should have the value 201711L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_to_array
+#    error "__cpp_lib_to_array should be defined in c++29"
+#  endif
+#  if __cpp_lib_to_array != 201907L
+#    error "__cpp_lib_to_array should have the value 201907L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_to_chars
+#      error "__cpp_lib_to_chars should be defined in c++29"
+#    endif
+#    if __cpp_lib_to_chars != 202306L
+#      error "__cpp_lib_to_chars should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_to_chars
+#      error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_to_string
+#      error "__cpp_lib_to_string should be defined in c++29"
+#    endif
+#    if __cpp_lib_to_string != 202306L
+#      error "__cpp_lib_to_string should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_to_string
+#      error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_to_underlying
+#    error "__cpp_lib_to_underlying should be defined in c++29"
+#  endif
+#  if __cpp_lib_to_underlying != 202102L
+#    error "__cpp_lib_to_underlying should have the value 202102L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_transformation_trait_aliases
+#    error "__cpp_lib_transformation_trait_aliases should be defined in c++29"
+#  endif
+#  if __cpp_lib_transformation_trait_aliases != 201304L
+#    error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_transparent_operators
+#    error "__cpp_lib_transparent_operators should be defined in c++29"
+#  endif
+#  if __cpp_lib_transparent_operators != 201510L
+#    error "__cpp_lib_transparent_operators should have the value 201510L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_tuple_element_t
+#    error "__cpp_lib_tuple_element_t should be defined in c++29"
+#  endif
+#  if __cpp_lib_tuple_element_t != 201402L
+#    error "__cpp_lib_tuple_element_t should have the value 201402L in c++29"
+#  endif
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should be defined in c++29"
+#    endif
+#    if __cpp_lib_tuple_like != 202311L
+#      error "__cpp_lib_tuple_like should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_tuple_like
+#      error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#  ifndef __cpp_lib_tuples_by_type
+#    error "__cpp_lib_tuples_by_type should be defined in c++29"
+#  endif
+#  if __cpp_lib_tuples_by_type != 201304L
+#    error "__cpp_lib_tuples_by_type should have the value 201304L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_type_identity
+#    error "__cpp_lib_type_identity should be defined in c++29"
+#  endif
+#  if __cpp_lib_type_identity != 201806L
+#    error "__cpp_lib_type_identity should have the value 201806L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_type_trait_variable_templates
+#    error "__cpp_lib_type_trait_variable_templates should be defined in c++29"
+#  endif
+#  if __cpp_lib_type_trait_variable_templates != 201510L
+#    error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_uncaught_exceptions
+#    error "__cpp_lib_uncaught_exceptions should be defined in c++29"
+#  endif
+#  if __cpp_lib_uncaught_exceptions != 201411L
+#    error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_unordered_map_try_emplace
+#    error "__cpp_lib_unordered_map_try_emplace should be defined in c++29"
+#  endif
+#  if __cpp_lib_unordered_map_try_emplace != 201411L
+#    error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_unreachable
+#    error "__cpp_lib_unreachable should be defined in c++29"
+#  endif
+#  if __cpp_lib_unreachable != 202202L
+#    error "__cpp_lib_unreachable should have the value 202202L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_unwrap_ref
+#    error "__cpp_lib_unwrap_ref should be defined in c++29"
+#  endif
+#  if __cpp_lib_unwrap_ref != 201811L
+#    error "__cpp_lib_unwrap_ref should have the value 201811L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_valarray
+#    error "__cpp_lib_valarray should be defined in c++29"
+#  endif
+#  if __cpp_lib_valarray != 202511L
+#    error "__cpp_lib_valarray should have the value 202511L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_variant
+#    error "__cpp_lib_variant should be defined in c++29"
+#  endif
+#  if __cpp_lib_variant != 202306L
+#    error "__cpp_lib_variant should have the value 202306L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_void_t
+#    error "__cpp_lib_void_t should be defined in c++29"
+#  endif
+#  if __cpp_lib_void_t != 201411L
+#    error "__cpp_lib_void_t should have the value 201411L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
diff --git a/libcxx/test/support/test_macros.h b/libcxx/test/support/test_macros.h
index de6fa29234106..63f70ac57a0d4 100644
--- a/libcxx/test/support/test_macros.h
+++ b/libcxx/test/support/test_macros.h
@@ -109,6 +109,8 @@
 #    define TEST_STD_VER 20
 #  elif __cplusplus <= 202302L
 #    define TEST_STD_VER 23
+#  elif __cplusplus <= 202603L
+#    define TEST_STD_VER 26
 #  else
 #    define TEST_STD_VER 99 // greater than current standard
 // This is deliberately different than _LIBCPP_STD_VER to discourage matching them up.
diff --git a/libcxx/test/tools/clang_tidy_checks/proper_version_checks.cpp b/libcxx/test/tools/clang_tidy_checks/proper_version_checks.cpp
index ebd0d8892fa94..f79b7e81bbb55 100644
--- a/libcxx/test/tools/clang_tidy_checks/proper_version_checks.cpp
+++ b/libcxx/test/tools/clang_tidy_checks/proper_version_checks.cpp
@@ -53,10 +53,10 @@ class proper_version_checks_callbacks : public clang::PPCallbacks {
       check_.diag(location, "_LIBCPP_STD_VER >= 11 is always true. Did you mean '#ifndef _LIBCPP_CXX03_LANG'?");
 
     else if (condition.starts_with("_LIBCPP_STD_VER >= ") &&
-             std::ranges::none_of(std::array{"14", "17", "20", "23", "26"}, [&](auto val) {
+             std::ranges::none_of(std::array{"14", "17", "20", "23", "26", "29"}, [&](auto val) {
                return condition.find(val) != std::string_view::npos;
              }))
-      check_.diag(location, "Not a valid value for _LIBCPP_STD_VER. Use 14, 17, 20, 23, or 26");
+      check_.diag(location, "Not a valid value for _LIBCPP_STD_VER. Use 14, 17, 20, 23, 26 or 29");
   }
 
   clang::Preprocessor& preprocessor_;
diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index d47061f3e1947..3ff6aabf07cfe 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -402,6 +402,12 @@ generic-cxx26)
     check-runtimes
     check-abi-list
 ;;
+generic-cxx29)
+    clean
+    generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx29.cmake"
+    check-runtimes
+    check-abi-list
+;;
 #
 # Other compiler support
 #
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index 07de473bbc038..efc2769c50ce2 100644
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -1533,6 +1533,14 @@ def add_version_header(tc):
             },
             "headers": ["variant"],
         },
+        {
+            "name": "__cpp_lib_view_interface",
+            "values": {
+                "c++29": 202606,
+            },
+            "headers": ["ranges"],
+            "unimplemented": True,
+        },        
         {
             "name": "__cpp_lib_void_t",
             "values": {"c++17": 201411},
@@ -1579,7 +1587,7 @@ def add_version_header(tc):
 
 
 def get_std_dialects():
-    std_dialects = ["c++14", "c++17", "c++20", "c++23", "c++26"]
+    std_dialects = ["c++14", "c++17", "c++20", "c++23", "c++26", "c++29"]
     return list(std_dialects)
 
 
diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py
index 21c88e4ea667f..ef229903ea4b6 100644
--- a/libcxx/utils/libcxx/test/params.py
+++ b/libcxx/utils/libcxx/test/params.py
@@ -79,12 +79,17 @@
     "-flax-vector-conversions=none",
 ]
 
-_allStandards = ["c++03", "c++11", "c++14", "c++17", "c++20", "c++23", "c++26"]
+_allStandards = ["c++03", "c++11", "c++14", "c++17", "c++20", "c++23", "c++26", "c++29"]
 
 
 def getStdFlag(cfg, std):
     if hasCompileFlag(cfg, "-std=" + std):
         return "-std=" + std
+    fallbacks = {
+        "c++29": "c++2d",
+    }
+    if std in fallbacks and hasCompileFlag(cfg, "-std=" + fallbacks[std]):
+        return "-std=" + fallbacks[std]
     return None
 
 

>From 608452a76cc06af4c94dad5bb98d7b1caa6e918c Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Thu, 20 Aug 2026 23:29:25 +0200
Subject: [PATCH 02/20] tentative: fix fail in
 self.assertEqual(self.ftm.std_dialects, expected)

---
 .../test/libcxx/feature_test_macro/test_data.json   | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/libcxx/test/libcxx/feature_test_macro/test_data.json b/libcxx/test/libcxx/feature_test_macro/test_data.json
index b0122163f714f..39ea7b8e8a08e 100644
--- a/libcxx/test/libcxx/feature_test_macro/test_data.json
+++ b/libcxx/test/libcxx/feature_test_macro/test_data.json
@@ -209,5 +209,18 @@
       }
     },
     "headers": []
+  },
+  {
+    "name": "__cpp_lib_view_interface",
+    "values": {
+       "c++29": {
+          "202606": [
+            {
+              "implemented": false,
+            }
+        ]
+      }
+    },
+    "headers": ["ranges"],
   }
 ]

>From 8411eb3696f35068bc5ee2d4426cfb84367c1bb1 Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Thu, 20 Aug 2026 23:30:50 +0200
Subject: [PATCH 03/20] fix: clang-format

---
 libcxx/utils/generate_feature_test_macro_components.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index efc2769c50ce2..5ee0f885f8330 100644
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -1540,7 +1540,7 @@ def add_version_header(tc):
             },
             "headers": ["ranges"],
             "unimplemented": True,
-        },        
+        },
         {
             "name": "__cpp_lib_void_t",
             "values": {"c++17": 201411},

>From aa2a40af6559057d81e0705c953ca99c4bb8a7fd Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Thu, 20 Aug 2026 23:44:21 +0200
Subject: [PATCH 04/20] tentative: check_generate_files fix

---
 libcxx/docs/FeatureTestMacroTable.rst         |  4 +-
 libcxx/include/version                        |  3 +-
 .../ranges.version.compile.pass.cpp           | 37 +++++++++++++++++++
 .../version.version.compile.pass.cpp          | 37 +++++++++++++++++++
 4 files changed, 79 insertions(+), 2 deletions(-)

diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 6757a2913b862..caf67d012db98 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -553,5 +553,7 @@ Status
     ``__cpp_lib_variant``                                      ``202306L``
     ---------------------------------------------------------- -----------------
     **C++29**
-    ============================================================================
+    ----------------------------------------------------------------------------
+    ``__cpp_lib_view_interface``                               *unimplemented*
+    ========================================================== =================
 
diff --git a/libcxx/include/version b/libcxx/include/version
index 7b906d08394bf..a477e9c2802f6 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -292,6 +292,7 @@ __cpp_lib_valarray                                      202511L <valarray>
 __cpp_lib_variant                                       202306L <variant>
                                                         202106L // C++20
                                                         202102L // C++17
+__cpp_lib_view_interface                                202606L <ranges>
 __cpp_lib_void_t                                        201411L <type_traits>
 
 */
@@ -650,7 +651,7 @@ __cpp_lib_void_t                                        201411L <type_traits>
 #endif
 
 #if _LIBCPP_STD_VER >= 29
-
+// # define __cpp_lib_view_interface                       202606L
 #endif
 
 #endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
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 bb59b52b99cb5..4d6ed07bb5417 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
@@ -80,6 +80,10 @@
 #    error "__cpp_lib_ranges_zip should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #elif TEST_STD_VER == 14
 
 #  ifdef __cpp_lib_default_template_type_for_algorithm_values
@@ -142,6 +146,10 @@
 #    error "__cpp_lib_ranges_zip should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #elif TEST_STD_VER == 17
 
 #  ifdef __cpp_lib_default_template_type_for_algorithm_values
@@ -204,6 +212,10 @@
 #    error "__cpp_lib_ranges_zip should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #elif TEST_STD_VER == 20
 
 #  ifdef __cpp_lib_default_template_type_for_algorithm_values
@@ -269,6 +281,10 @@
 #    error "__cpp_lib_ranges_zip should not be defined before c++23"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #elif TEST_STD_VER == 23
 
 #  ifdef __cpp_lib_default_template_type_for_algorithm_values
@@ -385,6 +401,10 @@
 #    error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
@@ -516,6 +536,10 @@
 #    error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #elif TEST_STD_VER > 26
 
 #  if !defined(_LIBCPP_VERSION)
@@ -647,6 +671,19 @@
 #    error "__cpp_lib_ranges_zip should have the value 202110L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_view_interface
+#      error "__cpp_lib_view_interface should be defined in c++29"
+#    endif
+#    if __cpp_lib_view_interface != 202606L
+#      error "__cpp_lib_view_interface should have the value 202606L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_view_interface
+#      error "__cpp_lib_view_interface 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/version.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
index 3a82c4ac85374..b7ac29dec3a22 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
@@ -956,6 +956,10 @@
 #    error "__cpp_lib_variant should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #  ifdef __cpp_lib_void_t
 #    error "__cpp_lib_void_t should not be defined before c++17"
 #  endif
@@ -1976,6 +1980,10 @@
 #    error "__cpp_lib_variant should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #  ifdef __cpp_lib_void_t
 #    error "__cpp_lib_void_t should not be defined before c++17"
 #  endif
@@ -3185,6 +3193,10 @@
 #    error "__cpp_lib_variant should have the value 202102L in c++17"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #  ifndef __cpp_lib_void_t
 #    error "__cpp_lib_void_t should be defined in c++17"
 #  endif
@@ -4661,6 +4673,10 @@
 #    error "__cpp_lib_variant should have the value 202106L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #  ifndef __cpp_lib_void_t
 #    error "__cpp_lib_void_t should be defined in c++20"
 #  endif
@@ -6365,6 +6381,10 @@
 #    error "__cpp_lib_variant should have the value 202106L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #  ifndef __cpp_lib_void_t
 #    error "__cpp_lib_void_t should be defined in c++23"
 #  endif
@@ -8384,6 +8404,10 @@
 #    error "__cpp_lib_variant should have the value 202306L in c++26"
 #  endif
 
+#  ifdef __cpp_lib_view_interface
+#    error "__cpp_lib_view_interface should not be defined before c++29"
+#  endif
+
 #  ifndef __cpp_lib_void_t
 #    error "__cpp_lib_void_t should be defined in c++26"
 #  endif
@@ -10403,6 +10427,19 @@
 #    error "__cpp_lib_variant should have the value 202306L in c++29"
 #  endif
 
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_view_interface
+#      error "__cpp_lib_view_interface should be defined in c++29"
+#    endif
+#    if __cpp_lib_view_interface != 202606L
+#      error "__cpp_lib_view_interface should have the value 202606L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_view_interface
+#      error "__cpp_lib_view_interface should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
 #  ifndef __cpp_lib_void_t
 #    error "__cpp_lib_void_t should be defined in c++29"
 #  endif

>From 4682c39aeb22463ea505342548e9c8f85a7d18b1 Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Thu, 20 Aug 2026 23:54:53 +0200
Subject: [PATCH 05/20] fix: remove trailing coma. Conformance tests issue

---
 libcxx/test/libcxx/feature_test_macro/test_data.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/test/libcxx/feature_test_macro/test_data.json b/libcxx/test/libcxx/feature_test_macro/test_data.json
index 39ea7b8e8a08e..5cdbf64f93888 100644
--- a/libcxx/test/libcxx/feature_test_macro/test_data.json
+++ b/libcxx/test/libcxx/feature_test_macro/test_data.json
@@ -221,6 +221,6 @@
         ]
       }
     },
-    "headers": ["ranges"],
+    "headers": ["ranges"]
   }
 ]

>From 4b85621982364dc1a8162805d9ff640d82233a65 Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Fri, 21 Aug 2026 11:20:40 +0200
Subject: [PATCH 06/20] Fix JSON formatting in test_data.json

---
 libcxx/test/libcxx/feature_test_macro/test_data.json | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libcxx/test/libcxx/feature_test_macro/test_data.json b/libcxx/test/libcxx/feature_test_macro/test_data.json
index 5cdbf64f93888..73e8fa2db7602 100644
--- a/libcxx/test/libcxx/feature_test_macro/test_data.json
+++ b/libcxx/test/libcxx/feature_test_macro/test_data.json
@@ -216,6 +216,7 @@
        "c++29": {
           "202606": [
             {
+              "title": "",
               "implemented": false,
             }
         ]

>From c9bb89aa20c2e43cb5b20b69c24d77bc4f29bce1 Mon Sep 17 00:00:00 2001
From: Lucas Mellone <github.snugness349 at passinbox.com>
Date: Fri, 21 Aug 2026 11:39:24 +0200
Subject: [PATCH 07/20] Fix formatting in test_data.json

---
 libcxx/test/libcxx/feature_test_macro/test_data.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/test/libcxx/feature_test_macro/test_data.json b/libcxx/test/libcxx/feature_test_macro/test_data.json
index 73e8fa2db7602..67be37bd77fa9 100644
--- a/libcxx/test/libcxx/feature_test_macro/test_data.json
+++ b/libcxx/test/libcxx/feature_test_macro/test_data.json
@@ -217,7 +217,7 @@
           "202606": [
             {
               "title": "",
-              "implemented": false,
+              "implemented": false
             }
         ]
       }

>From 8485e6e6ab27e0cc300dba0fab33441e5b71b8d9 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Fri, 21 Aug 2026 17:53:05 +0300
Subject: [PATCH 08/20] Try to fix FTM test

---
 .../libcxx/feature_test_macro/standard_library_headers.sh.py     | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libcxx/test/libcxx/feature_test_macro/standard_library_headers.sh.py b/libcxx/test/libcxx/feature_test_macro/standard_library_headers.sh.py
index 27a2953a2e321..f93d66f3193b3 100644
--- a/libcxx/test/libcxx/feature_test_macro/standard_library_headers.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/standard_library_headers.sh.py
@@ -35,6 +35,7 @@ def test_implementation(self):
                 "charconv",
                 "format",
                 "numeric",
+                "ranges",
                 "variant",
             ],
         )

>From 1ad1400c1778d4124161c7514563dca35967b78c Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Fri, 21 Aug 2026 18:22:32 +0300
Subject: [PATCH 09/20] Try to fix FTM tests

---
 libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py b/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
index f727f9a2d9e0e..f3fb9d96a3c08 100644
--- a/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
@@ -68,6 +68,12 @@ def test_implementation(self):
                 test_suite_guard=None,
                 libcxx_guard=None,
             ),
+            "__cpp_lib_view_interface": Metadata(
+                headers=["ranges"],
+                available_since="c++29",
+                test_suite_guard=None,
+                libcxx_guard=None
+            ),
             "__cpp_lib_zz_missing_FTM_in_older_standard": Metadata(
                 headers=[],
                 available_since="c++17",

>From 6eb2a6438a63f61eb4ba043ea6b25400cb7395c4 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Fri, 21 Aug 2026 18:28:31 +0300
Subject: [PATCH 10/20] define _LIBCPP_STD_VER 29

---
 libcxx/include/__configuration/language.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libcxx/include/__configuration/language.h b/libcxx/include/__configuration/language.h
index 1205934334852..23e7b3afcd78a 100644
--- a/libcxx/include/__configuration/language.h
+++ b/libcxx/include/__configuration/language.h
@@ -31,9 +31,11 @@
 #    define _LIBCPP_STD_VER 20
 #  elif __cplusplus <= 202302L
 #    define _LIBCPP_STD_VER 23
+#  elif __cplusplus <= 202603L
+#    define _LIBCPP_STD_VER 26
 #  else
 // Expected release year of the next C++ standard
-#    define _LIBCPP_STD_VER 26
+#    define _LIBCPP_STD_VER 29
 #  endif
 #endif // __cplusplus
 // NOLINTEND(libcpp-cpp-version-check)

>From 31e76bc119aea8b6ebecf081b933b935aa25db9f Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 17:04:33 +0300
Subject: [PATCH 11/20] Try to fix CI ftm

---
 .../version_header_implementation.sh.py                | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py b/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
index 6118a65b78357..59aebf3211dce 100644
--- a/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
@@ -154,6 +154,16 @@ def test_implementation(self):
                     ),
                 },
             ],
+            "29": [
+                {
+                    "__cpp_lib_view_interface": VersionHeader(
+                        value="202606L",
+                        implemented=False,
+                        need_undef=False,
+                        condition=None
+                    ),
+                },
+            ],
         }
 
         self.assertEqual(self.ftm.version_header_implementation, expected)

>From 529bc6525c87b0e243defb865d0ea4d24f9d303c Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 17:05:47 +0300
Subject: [PATCH 12/20] Fix formatting

---
 libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py b/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
index f3fb9d96a3c08..b5b3d8562fb1e 100644
--- a/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py
@@ -72,7 +72,7 @@ def test_implementation(self):
                 headers=["ranges"],
                 available_since="c++29",
                 test_suite_guard=None,
-                libcxx_guard=None
+                libcxx_guard=None,
             ),
             "__cpp_lib_zz_missing_FTM_in_older_standard": Metadata(
                 headers=[],

>From 5f5710582fd4f894b9c7aa6a4a7fd1edd9a2448b Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 17:11:33 +0300
Subject: [PATCH 13/20] Fixed formatting

---
 .../feature_test_macro/version_header_implementation.sh.py      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py b/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
index 59aebf3211dce..cda7eb2b605b4 100644
--- a/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py
@@ -160,7 +160,7 @@ def test_implementation(self):
                         value="202606L",
                         implemented=False,
                         need_undef=False,
-                        condition=None
+                        condition=None,
                     ),
                 },
             ],

>From b63dd9801df30891137b043cfe938268f4c9b555 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 17:54:23 +0300
Subject: [PATCH 14/20] Fixed FTM tests

---
 .../generate_header_test.sh.py                | 122 ++++++++++++++++--
 .../feature_test_macro/implemented_ftms.sh.py |   6 +
 .../feature_test_macro/standard_ftms.sh.py    |  11 ++
 .../feature_test_macro/version_header.sh.py   |   4 +
 4 files changed, 129 insertions(+), 14 deletions(-)

diff --git a/libcxx/test/libcxx/feature_test_macro/generate_header_test.sh.py b/libcxx/test/libcxx/feature_test_macro/generate_header_test.sh.py
index 789a0bc25a87b..553e0cba7feaa 100644
--- a/libcxx/test/libcxx/feature_test_macro/generate_header_test.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/generate_header_test.sh.py
@@ -108,7 +108,7 @@ def setUp(self):
 #    error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_clamp
 #    error "__cpp_lib_clamp should be defined in c++26"
@@ -124,7 +124,23 @@ def setUp(self):
 #    error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_clamp
+#    error "__cpp_lib_clamp should be defined in c++29"
+#  endif
+#  if __cpp_lib_clamp != 201603L
+#    error "__cpp_lib_clamp should have the value 201603L in c++29"
+#  endif
+
+#  ifndef __cpp_lib_parallel_algorithm
+#    error "__cpp_lib_parallel_algorithm should be defined in c++29"
+#  endif
+#  if __cpp_lib_parallel_algorithm != 201603L
+#    error "__cpp_lib_parallel_algorithm should have the value 201603L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
 
@@ -183,7 +199,7 @@ def setUp(self):
 #    error "__cpp_lib_any should have the value 201606L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_any
 #    error "__cpp_lib_any should be defined in c++26"
@@ -192,7 +208,16 @@ def setUp(self):
 #    error "__cpp_lib_any should have the value 201606L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_any
+#    error "__cpp_lib_any should be defined in c++29"
+#  endif
+#  if __cpp_lib_any != 201606L
+#    error "__cpp_lib_any should have the value 201606L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
 
@@ -262,7 +287,7 @@ def setUp(self):
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
 #    ifndef __cpp_lib_barrier
@@ -277,7 +302,22 @@ def setUp(self):
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#    ifndef __cpp_lib_barrier
+#      error "__cpp_lib_barrier should be defined in c++29"
+#    endif
+#    if __cpp_lib_barrier != 299900L
+#      error "__cpp_lib_barrier should have the value 299900L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_barrier
+#      error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
 
@@ -356,7 +396,7 @@ def setUp(self):
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_to_chars
@@ -371,7 +411,22 @@ def setUp(self):
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_to_chars
+#      error "__cpp_lib_to_chars should be defined in c++29"
+#    endif
+#    if __cpp_lib_to_chars != 201611L
+#      error "__cpp_lib_to_chars should have the value 201611L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_to_chars
+#      error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
 
@@ -439,7 +494,7 @@ def setUp(self):
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_format
@@ -454,7 +509,22 @@ def setUp(self):
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_format
+#      error "__cpp_lib_format should be defined in c++29"
+#    endif
+#    if __cpp_lib_format != 202311L
+#      error "__cpp_lib_format should have the value 202311L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_format
+#      error "__cpp_lib_format should not be defined because it is unimplemented in libc++!"
+#    endif
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
 
@@ -513,7 +583,7 @@ def setUp(self):
 #    error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  ifndef __cpp_lib_parallel_algorithm
 #    error "__cpp_lib_parallel_algorithm should be defined in c++26"
@@ -522,7 +592,16 @@ def setUp(self):
 #    error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26"
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  ifndef __cpp_lib_parallel_algorithm
+#    error "__cpp_lib_parallel_algorithm should be defined in c++29"
+#  endif
+#  if __cpp_lib_parallel_algorithm != 201603L
+#    error "__cpp_lib_parallel_algorithm should have the value 201603L in c++29"
+#  endif
+
+#endif // TEST_STD_VER > 26
 
 // clang-format on
 
@@ -593,7 +672,7 @@ def setUp(self):
 #    endif
 #  endif
 
-#elif TEST_STD_VER > 23
+#elif TEST_STD_VER == 26
 
 #  if !defined(_LIBCPP_VERSION)
 #    ifndef __cpp_lib_variant
@@ -608,7 +687,22 @@ def setUp(self):
 #    endif
 #  endif
 
-#endif // TEST_STD_VER > 23
+#elif TEST_STD_VER > 26
+
+#  if !defined(_LIBCPP_VERSION)
+#    ifndef __cpp_lib_variant
+#      error "__cpp_lib_variant should be defined in c++29"
+#    endif
+#    if __cpp_lib_variant != 202306L
+#      error "__cpp_lib_variant should have the value 202306L in c++29"
+#    endif
+#  else
+#    ifdef __cpp_lib_variant
+#      error "__cpp_lib_variant 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/libcxx/feature_test_macro/implemented_ftms.sh.py b/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
index 2ca639e95e986..5efaa6da3d46d 100644
--- a/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
@@ -32,17 +32,20 @@ def test_implementation(self):
                 "c++20": "201606L",
                 "c++23": "201606L",
                 "c++26": "201606L",
+                "c++29": "201606L",
             },
             "__cpp_lib_barrier": {
                 "c++20": "201907L",
                 "c++23": "201907L",
                 "c++26": "299900L",
+                "c++29": "299900L",
             },
             "__cpp_lib_clamp": {
                 "c++17": "201603L",
                 "c++20": "201603L",
                 "c++23": "201603L",
                 "c++26": "201603L",
+                "c++29": "201603L",
             },
             "__cpp_lib_format": {},
             "__cpp_lib_parallel_algorithm": {
@@ -50,6 +53,7 @@ def test_implementation(self):
                 "c++20": "201603L",
                 "c++23": "201603L",
                 "c++26": "201603L",
+                "c++29": "201603L",
             },
             "__cpp_lib_to_chars": {},
             "__cpp_lib_variant": {
@@ -57,7 +61,9 @@ def test_implementation(self):
                 "c++20": "202102L",
                 "c++23": "202102L",
                 "c++26": "202102L",
+                "c++29": "202102L",
             },
+            '__cpp_lib_view_interface': {},
             "__cpp_lib_zz_missing_FTM_in_older_standard": {},
         }
 
diff --git a/libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py b/libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
index 1a8d4437faa0a..f4657a749ee3f 100644
--- a/libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py
@@ -31,46 +31,57 @@ def test_implementation(self):
                 "c++20": "201606L",
                 "c++23": "201606L",
                 "c++26": "201606L",
+                "c++29": "201606L",
             },
             "__cpp_lib_barrier": {
                 "c++20": "201907L",
                 "c++23": "201907L",
                 "c++26": "299900L",
+                "c++29": "299900L",
             },
             "__cpp_lib_clamp": {
                 "c++17": "201603L",
                 "c++20": "201603L",
                 "c++23": "201603L",
                 "c++26": "201603L",
+                "c++29": "201603L",
             },
             "__cpp_lib_format": {
                 "c++20": "202110L",
                 "c++23": "202207L",
                 "c++26": "202311L",
+                "c++29": "202311L",
             },
             "__cpp_lib_parallel_algorithm": {
                 "c++17": "201603L",
                 "c++20": "201603L",
                 "c++23": "201603L",
                 "c++26": "201603L",
+                "c++29": "201603L",
             },
             "__cpp_lib_to_chars": {
                 "c++17": "201611L",
                 "c++20": "201611L",
                 "c++23": "201611L",
                 "c++26": "201611L",
+                "c++29": "201611L",
             },
             "__cpp_lib_variant": {
                 "c++17": "202102L",
                 "c++20": "202106L",
                 "c++23": "202106L",
                 "c++26": "202306L",
+                "c++29": "202306L",
+            },
+            "__cpp_lib_view_interface": {
+                "c++29": "202606L",
             },
             "__cpp_lib_zz_missing_FTM_in_older_standard": {
                 "c++17": "2017L",
                 "c++20": "2020L",
                 "c++23": "2020L",
                 "c++26": "2026L",
+                "c++29": "2026L",
             },
         }
 
diff --git a/libcxx/test/libcxx/feature_test_macro/version_header.sh.py b/libcxx/test/libcxx/feature_test_macro/version_header.sh.py
index fa645c735f0bc..8b45755dfb8a4 100644
--- a/libcxx/test/libcxx/feature_test_macro/version_header.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/version_header.sh.py
@@ -75,6 +75,10 @@ def test_implementeation(self):
 // define __cpp_lib_zz_missing_FTM_in_older_standard 2026L
 #endif // _LIBCPP_STD_VER >= 26
 
+#if _LIBCPP_STD_VER >= 29
+// define __cpp_lib_view_interface 202606L
+#endif // _LIBCPP_STD_VER >= 29
+
 #endif // _LIBCPP_VERSIONH
 """
         self.assertEqual(self.ftm.version_header, expected)

>From ab58fc3a73686c7988b0c3e06ef02940afde0f0a Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 17:57:32 +0300
Subject: [PATCH 15/20] Fixed formatting

---
 libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py b/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
index 5efaa6da3d46d..c5d2f9b85ce92 100644
--- a/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
+++ b/libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py
@@ -63,7 +63,7 @@ def test_implementation(self):
                 "c++26": "202102L",
                 "c++29": "202102L",
             },
-            '__cpp_lib_view_interface': {},
+            "__cpp_lib_view_interface": {},
             "__cpp_lib_zz_missing_FTM_in_older_standard": {},
         }
 

>From df55795b7d5e80759e302b41e2cfc4a92a1e5d56 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 19:04:33 +0300
Subject: [PATCH 16/20] Update cxx29.csv

---
 libcxx/test/libcxx/transitive_includes.gen.py    | 2 +-
 libcxx/test/libcxx/transitive_includes/cxx29.csv | 2 --
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/libcxx/test/libcxx/transitive_includes.gen.py b/libcxx/test/libcxx/transitive_includes.gen.py
index 20d5e981ccba4..e4f44f88bf9cd 100644
--- a/libcxx/test/libcxx/transitive_includes.gen.py
+++ b/libcxx/test/libcxx/transitive_includes.gen.py
@@ -54,7 +54,7 @@
 # To re-generate the list of expected headers, temporarily set this to True, and run this test.
 # Note that this needs to be done for all supported language versions of libc++:
 # for std in c++03 c++11 c++14 c++17 c++20 c++23 c++26 c++29; do <build>/bin/llvm-lit --param std=$std libcxx/test/libcxx/transitive_includes.gen.py; done
-regenerate_expected_results = False
+regenerate_expected_results = True
 
 if regenerate_expected_results:
     print(
diff --git a/libcxx/test/libcxx/transitive_includes/cxx29.csv b/libcxx/test/libcxx/transitive_includes/cxx29.csv
index 62b58acd1e58e..bd9227ca685d0 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx29.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx29.csv
@@ -741,7 +741,6 @@ queue initializer_list
 queue iosfwd
 queue limits
 queue stdexcept
-queue string
 queue string_view
 queue tuple
 queue vector
@@ -1114,7 +1113,6 @@ vector initializer_list
 vector iosfwd
 vector limits
 vector stdexcept
-vector string
 vector string_view
 vector tuple
 vector version

>From fc7976aed06e8bb8bcc70c762bdc0015c0f4e201 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 19:22:21 +0300
Subject: [PATCH 17/20] Disable get_info.sys_time.pass.cpp

---
 .../time.zone.members/get_info.sys_time.pass.cpp                | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
index 1924af4bd6718..c592ca68fd0d9 100644
--- a/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
+++ b/libcxx/test/std/time/time.zone/time.zone.timezone/time.zone.members/get_info.sys_time.pass.cpp
@@ -9,7 +9,7 @@
 // TODO TZDB review the test based on review comments in
 // https://github.com/llvm/llvm-project/pull/85619
 
-// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20, c++23, c++26
+// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20, c++23, c++26, c++29
 // UNSUPPORTED: no-filesystem, no-localization, no-tzdb
 
 // XFAIL: libcpp-has-no-experimental-tzdb

>From dfff38c70ab9ef70e336d84794e13a99e9cacb78 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 19:41:44 +0300
Subject: [PATCH 18/20] Updated Github workflows

---
 .github/workflows/libcxx-pr-conformance-tests.yaml | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/libcxx-pr-conformance-tests.yaml b/.github/workflows/libcxx-pr-conformance-tests.yaml
index 57424dc0a4936..993f103acae22 100644
--- a/.github/workflows/libcxx-pr-conformance-tests.yaml
+++ b/.github/workflows/libcxx-pr-conformance-tests.yaml
@@ -45,7 +45,7 @@ jobs:
         config: [
           'frozen-cxx03-headers',
           'generic-cxx03',
-          'generic-cxx26',
+          'generic-cxx29',
           'generic-modules'
         ]
         cc: [  'clang-23' ]
@@ -91,7 +91,8 @@ jobs:
           'generic-cxx14',
           'generic-cxx17',
           'generic-cxx20',
-          'generic-cxx23'
+          'generic-cxx23',
+          'generic-cxx26',
         ]
         cc: [ 'clang-23' ]
         cxx: [ 'clang++-23' ]
@@ -99,10 +100,10 @@ jobs:
           - config: 'generic-gcc-cxx11'
             cc: 'gcc-16'
             cxx: 'g++-16'
-          - config: 'generic-cxx26'
+          - config: 'generic-cxx29'
             cc: 'clang-22'
             cxx: 'clang++-22'
-          - config: 'generic-cxx26'
+          - config: 'generic-cxx29'
             cc: 'clang-21'
             cxx: 'clang++-21'
     steps:

>From 64927dfa1aed95dcd633404eea29b79b3bfda2c1 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 21:13:30 +0300
Subject: [PATCH 19/20] Try to fix CI

---
 libcxx/utils/libcxx/test/params.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py
index ef229903ea4b6..fab2fa6a8e9c3 100644
--- a/libcxx/utils/libcxx/test/params.py
+++ b/libcxx/utils/libcxx/test/params.py
@@ -79,7 +79,7 @@
     "-flax-vector-conversions=none",
 ]
 
-_allStandards = ["c++03", "c++11", "c++14", "c++17", "c++20", "c++23", "c++26", "c++29"]
+_allStandards = ["c++03", "c++11", "c++14", "c++17", "c++20", "c++23", "c++26", "c++2d"]
 
 
 def getStdFlag(cfg, std):

>From 47bcbd6222665b3c8e4380ec1b300ab3e6e74025 Mon Sep 17 00:00:00 2001
From: Hristo Hristov <hghristov.rmm at gmail.com>
Date: Sat, 22 Aug 2026 22:02:33 +0300
Subject: [PATCH 20/20] Try to fix CI

---
 libcxx/cmake/caches/Generic-cxx29.cmake       | 2 +-
 libcxx/test/libcxx/transitive_includes.gen.py | 2 +-
 libcxx/utils/libcxx/test/params.py            | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/libcxx/cmake/caches/Generic-cxx29.cmake b/libcxx/cmake/caches/Generic-cxx29.cmake
index df623288a3eba..9546ec42d9630 100644
--- a/libcxx/cmake/caches/Generic-cxx29.cmake
+++ b/libcxx/cmake/caches/Generic-cxx29.cmake
@@ -1,2 +1,2 @@
-set(LIBCXX_TEST_PARAMS "std=c++2d" CACHE STRING "")
+set(LIBCXX_TEST_PARAMS "std=c++29" CACHE STRING "")
 set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")
diff --git a/libcxx/test/libcxx/transitive_includes.gen.py b/libcxx/test/libcxx/transitive_includes.gen.py
index e4f44f88bf9cd..20d5e981ccba4 100644
--- a/libcxx/test/libcxx/transitive_includes.gen.py
+++ b/libcxx/test/libcxx/transitive_includes.gen.py
@@ -54,7 +54,7 @@
 # To re-generate the list of expected headers, temporarily set this to True, and run this test.
 # Note that this needs to be done for all supported language versions of libc++:
 # for std in c++03 c++11 c++14 c++17 c++20 c++23 c++26 c++29; do <build>/bin/llvm-lit --param std=$std libcxx/test/libcxx/transitive_includes.gen.py; done
-regenerate_expected_results = True
+regenerate_expected_results = False
 
 if regenerate_expected_results:
     print(
diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py
index fab2fa6a8e9c3..ef229903ea4b6 100644
--- a/libcxx/utils/libcxx/test/params.py
+++ b/libcxx/utils/libcxx/test/params.py
@@ -79,7 +79,7 @@
     "-flax-vector-conversions=none",
 ]
 
-_allStandards = ["c++03", "c++11", "c++14", "c++17", "c++20", "c++23", "c++26", "c++2d"]
+_allStandards = ["c++03", "c++11", "c++14", "c++17", "c++20", "c++23", "c++26", "c++29"]
 
 
 def getStdFlag(cfg, std):



More information about the llvm-commits mailing list