aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcxx/docs/DesignDocs/HeaderRemovalPolicy.rst74
-rw-r--r--libcxx/docs/ReleaseNotes.rst18
-rw-r--r--libcxx/docs/index.rst1
-rw-r--r--libcxx/include/algorithm7
-rw-r--r--libcxx/include/any4
-rw-r--r--libcxx/include/array2
-rw-r--r--libcxx/include/atomic9
-rw-r--r--libcxx/include/bit2
-rw-r--r--libcxx/include/charconv2
-rw-r--r--libcxx/include/coroutine2
-rw-r--r--libcxx/include/deque2
-rw-r--r--libcxx/include/experimental/simd2
-rw-r--r--libcxx/include/experimental/unordered_map2
-rw-r--r--libcxx/include/ext/hash_map2
-rw-r--r--libcxx/include/ext/hash_set2
-rw-r--r--libcxx/include/forward_list2
-rw-r--r--libcxx/include/functional2
-rw-r--r--libcxx/include/future4
-rw-r--r--libcxx/include/iterator2
-rw-r--r--libcxx/include/list2
-rw-r--r--libcxx/include/locale2
-rw-r--r--libcxx/include/map2
-rw-r--r--libcxx/include/memory2
-rw-r--r--libcxx/include/mutex2
-rw-r--r--libcxx/include/numeric2
-rw-r--r--libcxx/include/optional7
-rw-r--r--libcxx/include/ostream2
-rw-r--r--libcxx/include/random2
-rw-r--r--libcxx/include/regex2
-rw-r--r--libcxx/include/set2
-rw-r--r--libcxx/include/span2
-rw-r--r--libcxx/include/stack2
-rw-r--r--libcxx/include/string2
-rw-r--r--libcxx/include/string_view2
-rw-r--r--libcxx/include/thread7
-rw-r--r--libcxx/include/tuple2
-rw-r--r--libcxx/include/typeindex2
-rw-r--r--libcxx/include/unordered_map2
-rw-r--r--libcxx/include/unordered_set2
-rw-r--r--libcxx/include/utility2
-rw-r--r--libcxx/include/valarray2
-rw-r--r--libcxx/include/variant2
-rw-r--r--libcxx/include/vector2
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.any1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.array1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.complex1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.deque1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.format1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.functional1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.future1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.ios1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.istream1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.latch1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.list1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.locale1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.map1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.memory1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.optional1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.queue1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.random1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.regex1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.set1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.span1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.stack1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.string1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.thread1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx20/expected.vector1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.any4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.array15
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic3
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional6
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator2
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map9
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource3
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex9
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set9
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd18
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map8
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set9
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector5
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.format8
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional6
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.future11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator2
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch3
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.list11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.map10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric26
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional12
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue6
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.random9
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges13
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore3
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.set10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.span19
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.string11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view19
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread11
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple7
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex4
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map6
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set10
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray19
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant3
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector6
-rwxr-xr-xlibcxx/utils/graph_header_deps.py10
192 files changed, 162 insertions, 801 deletions
diff --git a/libcxx/docs/DesignDocs/HeaderRemovalPolicy.rst b/libcxx/docs/DesignDocs/HeaderRemovalPolicy.rst
new file mode 100644
index 0000000..7694708
--- /dev/null
+++ b/libcxx/docs/DesignDocs/HeaderRemovalPolicy.rst
@@ -0,0 +1,74 @@
+=====================
+Header Removal Policy
+=====================
+
+Policy
+------
+
+Libc++ is in the process of splitting larger headers into smaller modular
+headers. This makes it possible to remove these large headers from other
+headers. For example, instead of including ``<algorithm>`` entirely it is
+possible to only include the headers for the algorithms used. When the
+Standard indirectly adds additional header includes, using the smaller headers
+aids reducing the growth of top-level headers. For example ``<atomic>`` uses
+``std::chrono::nanoseconds`` and included ``<chrono>``. In C++20 ``<chrono>``
+requires ``<format>`` which adds several other headers (like ``<string>``,
+``<optional>``, ``<tuple>``) which are not needed in ``<atomic>``.
+
+The benefit of using minimal headers is that the size of libc++'s top-level
+headers becomes smaller. This improves the compilation time when users include
+a top-level header. It also avoids header inclusion cycles and makes it easier
+to port headers to platforms with reduced functionality.
+
+A disadvantage is that users unknowingly depend on these transitive includes.
+Thus removing an include might break their build after upgrading a newer
+version of libc++. For example, ``<algorithm>`` is often forgotten but using
+algorithms will still work through those transitive includes. This problem is
+solved by modules, however in practice most people do not use modules (yet).
+
+To ease the removal of transitive includes in libc++, libc++ will remove
+unnecessary transitive includes in newly supported C++ versions. This means
+that users will have to fix their missing includes in order to upgrade to a
+newer version of the Standard. Libc++ also reserves the right to remove
+transitive includes at any other time, however new language versions will be
+used as a convenient way to perform bulk removals of transitive includes.
+
+For libc++ developers, this means that any transitive include removal must be
+guarded by something of the form:
+
+.. code-block:: cpp
+
+ #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+ # include <algorithm>
+ # include <iterator>
+ # include <utility>
+ #endif
+
+When users define ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES``, libc++ will not
+include transitive headers, regardless of the language version. This can be
+useful for users to aid the transition to a newer language version, or by users
+who simply want to make sure they include what they use in their code.
+
+One of the issues for libc++ with transitive includes is that these includes
+may create dependency cycles and cause the validation script
+``libcxx/utils/graph_header_deps.py`` to have false positives. To ignore an
+include from the validation script, add a comment containing ``IGNORE-CYCLE``.
+This should only be used when there is a cycle and it has been verified it is a
+false positive.
+
+.. code-block:: cpp
+
+ #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+ # include <chrono> // IGNORE-CYCLE due to <format>
+ #endif
+
+
+Rationale
+---------
+
+Removing headers is not only an issue for software developers, but also for
+vendors. When a vendor updates libc++ several of their upstream packages might
+fail to compile, forcing them to fix these packages or file a bug with their
+upstream packages. Usually upgrading software to a new language standard is
+done explicitly by software developers. This means they most likely will
+discover and fix the missing includes, lessening the burden for the vendors.
diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index a89d4cd..fda4b69 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -45,6 +45,24 @@ Improvements and New Features
Deprecations and Removals
-------------------------
+- Several incidental transitive includes have been removed from libc++. Those
+ includes are removed based on the language version used. Incidental transitive
+ inclusions of the following headers have been removed:
+
+ - C++20: ``chrono``
+ - C++2b: ``algorithm``, ``array``, ``atomic``, ``bit``, ``chrono``,
+ ``climits``, ``cmath``, ``compare``, ``concepts``, ``cstdlib``,
+ ``cstring``, ``ctime``, ``exception``, ``functional``,
+ ``initializer_list``, ``iosfwd``, ``iterator``, ``memory``, ``new``,
+ ``optional``, ``ratio``, ``stdexcept``, ``tuple``, ``typeinfo``,
+ ``unordered_map``, ``utility``, ``variant``, ``vector``.
+
+ Users can also remove all incidental transitive includes by defining
+ ``_LIBCPP_REMOVE_TRANSITIVE_INCLUDES`` regardless of the language version
+ in use. Note that in the future, libc++ reserves the right to remove
+ incidental transitive includes more aggressively, in particular regardless
+ of the language version in use.
+
Upcoming Deprecations and Removals
----------------------------------
diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index 71674e7..4964d13 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -175,6 +175,7 @@ Design Documents
DesignDocs/ExtendedCXX03Support
DesignDocs/FeatureTestMacros
DesignDocs/FileTimeType
+ DesignDocs/HeaderRemovalPolicy
DesignDocs/NoexceptPolicy
DesignDocs/ThreadingSupportAPI
DesignDocs/UniquePtrTrivialAbi
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm
index 69ada03..0b54fb9 100644
--- a/libcxx/include/algorithm
+++ b/libcxx/include/algorithm
@@ -1899,8 +1899,11 @@ template <class BidirectionalIterator, class Compare>
#include <__algorithm/unwrap_iter.h>
#include <__algorithm/upper_bound.h>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
-# include <chrono>
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+# include <chrono> // IGNORE-CYCLE due to <format>
+#endif
+
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iterator>
# include <utility>
#endif
diff --git a/libcxx/include/any b/libcxx/include/any
index b256630..cd704a9 100644
--- a/libcxx/include/any
+++ b/libcxx/include/any
@@ -94,8 +94,8 @@ namespace std {
#include <typeinfo>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
-# include <chrono>
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+# include <chrono> // IGNORE-CYCLE due to <format>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/array b/libcxx/include/array
index 309ae8b..415ac16 100644
--- a/libcxx/include/array
+++ b/libcxx/include/array
@@ -123,7 +123,7 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <iterator>
# include <utility>
diff --git a/libcxx/include/atomic b/libcxx/include/atomic
index 892b28a..2e92088 100644
--- a/libcxx/include/atomic
+++ b/libcxx/include/atomic
@@ -534,8 +534,13 @@ template <class T>
# include <__threading_support>
#endif
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
-# include <chrono>
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+# include <chrono> // IGNORE-CYCLE due to <format>
+#endif
+
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+# include <cmath>
+# include <compare>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/bit b/libcxx/include/bit
index c899458..1505c9b 100644
--- a/libcxx/include/bit
+++ b/libcxx/include/bit
@@ -71,7 +71,7 @@ namespace std {
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iosfwd>
#endif
diff --git a/libcxx/include/charconv b/libcxx/include/charconv
index 4f00755..d77cf3a 100644
--- a/libcxx/include/charconv
+++ b/libcxx/include/charconv
@@ -97,7 +97,7 @@ namespace std {
#include <limits>
#include <type_traits>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iosfwd>
#endif
diff --git a/libcxx/include/coroutine b/libcxx/include/coroutine
index 6582f55..d7ed44e 100644
--- a/libcxx/include/coroutine
+++ b/libcxx/include/coroutine
@@ -46,7 +46,7 @@ struct suspend_always;
#include <__coroutine/trivial_awaitables.h>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iosfwd>
#endif
diff --git a/libcxx/include/deque b/libcxx/include/deque
index 4a5136b..c38b544 100644
--- a/libcxx/include/deque
+++ b/libcxx/include/deque
@@ -185,7 +185,7 @@ template <class T, class Allocator, class Predicate>
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <functional>
# include <iterator>
diff --git a/libcxx/include/experimental/simd b/libcxx/include/experimental/simd
index c474292..532bc64 100644
--- a/libcxx/include/experimental/simd
+++ b/libcxx/include/experimental/simd
@@ -656,7 +656,7 @@ public:
#include <experimental/__config>
#include <tuple>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <functional>
#endif
diff --git a/libcxx/include/experimental/unordered_map b/libcxx/include/experimental/unordered_map
index a5627e7..db114dc 100644
--- a/libcxx/include/experimental/unordered_map
+++ b/libcxx/include/experimental/unordered_map
@@ -45,7 +45,7 @@ namespace pmr {
#include <experimental/memory_resource>
#include <unordered_map>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <array>
# include <bit>
diff --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map
index a91716d..ab5a896 100644
--- a/libcxx/include/ext/hash_map
+++ b/libcxx/include/ext/hash_map
@@ -210,7 +210,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
#include <stdexcept>
#include <type_traits>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iterator>
#endif
diff --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set
index 1c9b5e7..332d609 100644
--- a/libcxx/include/ext/hash_set
+++ b/libcxx/include/ext/hash_set
@@ -199,7 +199,7 @@ template <class Value, class Hash, class Pred, class Alloc>
#include <ext/__hash>
#include <functional>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iterator>
#endif
diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index f35aa85..c9fc20b 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -195,7 +195,7 @@ template <class T, class Allocator, class Predicate>
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <functional>
# include <iterator>
diff --git a/libcxx/include/functional b/libcxx/include/functional
index de02059..c969d7f 100644
--- a/libcxx/include/functional
+++ b/libcxx/include/functional
@@ -539,7 +539,7 @@ POLICY: For non-variadic implementations, the number of arguments is limited
#include <typeinfo>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <utility>
#endif
diff --git a/libcxx/include/future b/libcxx/include/future
index 5c29b28f..643600a 100644
--- a/libcxx/include/future
+++ b/libcxx/include/future
@@ -378,8 +378,8 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
#include <thread>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
-# include <chrono>
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+# include <chrono> // IGNORE-CYCLE due to <format>
#endif
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/include/iterator b/libcxx/include/iterator
index 225ae81..6555b6d 100644
--- a/libcxx/include/iterator
+++ b/libcxx/include/iterator
@@ -724,7 +724,7 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <exception>
# include <new>
# include <typeinfo>
diff --git a/libcxx/include/list b/libcxx/include/list
index 5fcbd67..668875b 100644
--- a/libcxx/include/list
+++ b/libcxx/include/list
@@ -203,7 +203,7 @@ template <class T, class Allocator, class Predicate>
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <functional>
# include <iterator>
diff --git a/libcxx/include/locale b/libcxx/include/locale
index ff12f66..c7da783 100644
--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -211,7 +211,7 @@ template <class charT> class messages_byname;
#include <streambuf>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iterator>
#endif
diff --git a/libcxx/include/map b/libcxx/include/map
index e1d5fa8..8b21f48 100644
--- a/libcxx/include/map
+++ b/libcxx/include/map
@@ -546,7 +546,7 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
# include <iterator>
# include <utility>
diff --git a/libcxx/include/memory b/libcxx/include/memory
index 83046f6..47134a0 100644
--- a/libcxx/include/memory
+++ b/libcxx/include/memory
@@ -887,7 +887,7 @@ template<size_t N, class T>
#include <typeinfo>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iterator>
# include <utility>
#endif
diff --git a/libcxx/include/mutex b/libcxx/include/mutex
index 23007b1..a8334ba3 100644
--- a/libcxx/include/mutex
+++ b/libcxx/include/mutex
@@ -198,7 +198,7 @@ template<class Callable, class ...Args>
#endif
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
#endif
diff --git a/libcxx/include/numeric b/libcxx/include/numeric
index 057faf5..ba030aa 100644
--- a/libcxx/include/numeric
+++ b/libcxx/include/numeric
@@ -163,7 +163,7 @@ template<class T>
#include <__numeric/transform_inclusive_scan.h>
#include <__numeric/transform_reduce.h>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
# include <iterator>
#endif
diff --git a/libcxx/include/optional b/libcxx/include/optional
index 865a717..d75b1fe 100644
--- a/libcxx/include/optional
+++ b/libcxx/include/optional
@@ -177,9 +177,12 @@ template<class T>
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+# include <chrono> // IGNORE-CYCLE due to <format>
+#endif
+
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <atomic>
-# include <chrono>
# include <climits>
# include <concepts>
# include <ctime>
diff --git a/libcxx/include/ostream b/libcxx/include/ostream
index 59f7de6..216e583 100644
--- a/libcxx/include/ostream
+++ b/libcxx/include/ostream
@@ -171,7 +171,7 @@ basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, cons
#include <streambuf>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iterator>
#endif
diff --git a/libcxx/include/random b/libcxx/include/random
index 41ee4d8..1193d0d 100644
--- a/libcxx/include/random
+++ b/libcxx/include/random
@@ -1718,7 +1718,7 @@ class piecewise_linear_distribution
#include <__random/weibull_distribution.h>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
#endif
diff --git a/libcxx/include/regex b/libcxx/include/regex
index 8361b41..3899892 100644
--- a/libcxx/include/regex
+++ b/libcxx/include/regex
@@ -778,7 +778,7 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
#include <vector>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iterator>
# include <utility>
#endif
diff --git a/libcxx/include/set b/libcxx/include/set
index da62f6f..f97ae2a 100644
--- a/libcxx/include/set
+++ b/libcxx/include/set
@@ -485,7 +485,7 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred); // C++20
#include <__utility/forward.h>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
# include <iterator>
#endif
diff --git a/libcxx/include/span b/libcxx/include/span
index 0f4e0c5..190c441 100644
--- a/libcxx/include/span
+++ b/libcxx/include/span
@@ -148,7 +148,7 @@ template<class R>
#include <type_traits> // for remove_cv, etc
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
# include <iterator>
#endif
diff --git a/libcxx/include/stack b/libcxx/include/stack
index 86435c4..a4a76e5 100644
--- a/libcxx/include/stack
+++ b/libcxx/include/stack
@@ -107,7 +107,7 @@ template <class T, class Container>
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
#endif
diff --git a/libcxx/include/string b/libcxx/include/string
index 2180f86..1ee0cdc 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -569,7 +569,7 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len );
# include <cwchar>
#endif
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <functional>
# include <iterator>
diff --git a/libcxx/include/string_view b/libcxx/include/string_view
index d0c70a2..a964f13 100644
--- a/libcxx/include/string_view
+++ b/libcxx/include/string_view
@@ -224,7 +224,7 @@ namespace std {
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <functional>
# include <iterator>
diff --git a/libcxx/include/thread b/libcxx/include/thread
index 8b86992..85a845c 100644
--- a/libcxx/include/thread
+++ b/libcxx/include/thread
@@ -99,8 +99,11 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
-# include <chrono>
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
+# include <chrono> // IGNORE-CYCLE due to <format>
+#endif
+
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
#endif
diff --git a/libcxx/include/tuple b/libcxx/include/tuple
index 2c72945..01c59b3 100644
--- a/libcxx/include/tuple
+++ b/libcxx/include/tuple
@@ -220,7 +220,7 @@ template <class... Types>
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <exception>
# include <iosfwd>
# include <new>
diff --git a/libcxx/include/typeindex b/libcxx/include/typeindex
index 6b2a78e..d1b750d 100644
--- a/libcxx/include/typeindex
+++ b/libcxx/include/typeindex
@@ -51,7 +51,7 @@ struct hash<type_index>
#include <typeinfo>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iosfwd>
# include <new>
# include <utility>
diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map
index ebe2180..0731245 100644
--- a/libcxx/include/unordered_map
+++ b/libcxx/include/unordered_map
@@ -531,7 +531,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
#include <tuple>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <bit>
# include <iterator>
diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set
index c3a3bc8..e294885 100644
--- a/libcxx/include/unordered_set
+++ b/libcxx/include/unordered_set
@@ -474,7 +474,7 @@ template <class Value, class Hash, class Pred, class Alloc>
#include <__utility/forward.h>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <functional>
# include <iterator>
#endif
diff --git a/libcxx/include/utility b/libcxx/include/utility
index 7a1a45e..9462b83 100644
--- a/libcxx/include/utility
+++ b/libcxx/include/utility
@@ -243,7 +243,7 @@ template <class T>
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iosfwd>
#endif
diff --git a/libcxx/include/valarray b/libcxx/include/valarray
index 6f8a3b8..b47807c 100644
--- a/libcxx/include/valarray
+++ b/libcxx/include/valarray
@@ -360,7 +360,7 @@ template <class T> unspecified2 end(const valarray<T>& v);
#include <new>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <functional>
#endif
diff --git a/libcxx/include/variant b/libcxx/include/variant
index e6988f3..7f8bb41 100644
--- a/libcxx/include/variant
+++ b/libcxx/include/variant
@@ -228,7 +228,7 @@ namespace std {
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <typeinfo>
# include <utility>
#endif
diff --git a/libcxx/include/vector b/libcxx/include/vector
index 87eb56c..0786a51 100644
--- a/libcxx/include/vector
+++ b/libcxx/include/vector
@@ -307,7 +307,7 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
#include <type_traits>
#include <version>
-#ifndef _LIBCPP_REMOVE_TRANSITIVE_INCLUDES
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <algorithm>
# include <typeinfo>
# include <utility>
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm
index 944a3ee..f8ccff4 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.algorithm
@@ -1,7 +1,6 @@
algorithm
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.any b/libcxx/test/libcxx/transitive_includes/cxx20/expected.any
index 8600918..54d3883 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.any
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.any
@@ -1,6 +1,5 @@
any
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.array b/libcxx/test/libcxx/transitive_includes/cxx20/expected.array
index 7145642..ce009142 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.array
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.array
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic b/libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic
index 3e9917b..a211832 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.atomic
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier
index c2865c8..883919a 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.barrier
@@ -1,6 +1,5 @@
atomic
barrier
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset
index 3cf3e8d..a85bd53 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.bitset
@@ -4,7 +4,6 @@ atomic
bit
bitset
cctype
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex
index 98bf9a8..498d5a1f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ccomplex
@@ -6,7 +6,6 @@ bitset
ccomplex
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt b/libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt
index 0931ca1..5c7efd5 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.codecvt
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
codecvt
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.complex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.complex
index 64161c1..7b2a43f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.complex
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.complex
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable
index 968007a..c3a60ae 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.condition_variable
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath
index 7467a5a..7275913 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ctgmath
@@ -6,7 +6,6 @@ bitset
ccomplex
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx20/expected.deque
index c26bdc7..e314455 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.deque
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.deque
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm
index 8a5cd7d..dfebf48 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_algorithm
@@ -1,7 +1,6 @@
algorithm
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine
index 682f0fa..b7344ec 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_coroutine
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque
index bd86d15..961599b 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_deque
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list
index c43fab0..fe3c906 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_forward_list
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional
index 87cee2d..689ccf1 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_functional
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list
index ac80065..5adfb13 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_list
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map
index d132098..880a23b 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_map
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource
index 94d9abd..b5ff253 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_memory_resource
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex
index 8a49aac..f91eef1 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_regex
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set
index f1d2953..5558bc6 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_set
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd
index f06f6e9..74f77f6 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_simd
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string
index 367a9ed..bb7e551 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_string
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map
index 16753ae..3614946 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_map
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set
index 1aafa61..0a77898 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_unordered_set
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector
index 1c56962..ffd37e1 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.experimental_vector
@@ -1,7 +1,6 @@
algorithm
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map
index 4595362..e199190 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_map
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set
index 160335a..2a3d11e 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ext_hash_set
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem b/libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem
index 22e80bc..02157ec 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.filesystem
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.format b/libcxx/test/libcxx/transitive_includes/cxx20/expected.format
index 08d46d2..595b589 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.format
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.format
@@ -5,7 +5,6 @@ bit
cctype
cerrno
charconv
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list
index 33afc74..dde7fba 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.forward_list
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream
index 7a892e1..7b14b7c 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.fstream
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.functional b/libcxx/test/libcxx/transitive_includes/cxx20/expected.functional
index 7625982..243ba6b 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.functional
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.functional
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.future b/libcxx/test/libcxx/transitive_includes/cxx20/expected.future
index 92bd4e0..148b1ea 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.future
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.future
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip
index 3982908..fd99214 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iomanip
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ios b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ios
index 6e7e5b2..b2eec45 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ios
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ios
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream
index 580aeaf..c743a03 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.iostream
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.istream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.istream
index fd0c4b4..cd2a2f4 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.istream
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.istream
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.latch b/libcxx/test/libcxx/transitive_includes/cxx20/expected.latch
index a7a6bbc..ad8a92a 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.latch
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.latch
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.list b/libcxx/test/libcxx/transitive_includes/cxx20/expected.list
index b596079..e13c604 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.list
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.list
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.locale b/libcxx/test/libcxx/transitive_includes/cxx20/expected.locale
index 2971936..456f5a2 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.locale
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.locale
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.map
index c871579..bc84d66 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.map
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.map
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx20/expected.memory
index f36910f..db28f1f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.memory
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.memory
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex
index 4d101cb..dcaffb6 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.mutex
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric b/libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric
index 558b324..2597d54 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.numeric
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.optional b/libcxx/test/libcxx/transitive_includes/cxx20/expected.optional
index 993ce23..6b236d3 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.optional
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.optional
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream
index 762d13c..c5cea41 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ostream
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx20/expected.queue
index 5861852..a9915f6 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.queue
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.queue
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.random b/libcxx/test/libcxx/transitive_includes/cxx20/expected.random
index 96a956a..f61748b 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.random
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.random
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges
index 3dbb13b..228747c 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.ranges
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.regex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.regex
index 76df207..7dfb8e6 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.regex
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.regex
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator
index 22dcb31..22b72aa 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.scoped_allocator
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore b/libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore
index d6802e2..5d6f0da 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.semaphore
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.set
index 849e873..f41727f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.set
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.set
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex
index fdea61e..1372d40 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.shared_mutex
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.span b/libcxx/test/libcxx/transitive_includes/cxx20/expected.span
index a46c30d..96d6346 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.span
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.span
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream
index 1724fbd..00e0758 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.sstream
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx20/expected.stack
index 1a7d18c..21de647 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.stack
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.stack
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf b/libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf
index a3001ce..fa7e9ba 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.streambuf
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.string b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string
index 0dacf73..b90a8c8 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.string
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view
index e814351..8b80b5b 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.string_view
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream b/libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream
index 782153b..9ebf526 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.strstream
@@ -5,7 +5,6 @@ bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error
index 4101ee5..1afa1e3 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.system_error
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.thread b/libcxx/test/libcxx/transitive_includes/cxx20/expected.thread
index ab8c3c7..e314e55 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.thread
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.thread
@@ -4,7 +4,6 @@ atomic
bit
cctype
cerrno
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map
index 2250cf9..0d22614 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_map
@@ -1,7 +1,6 @@
algorithm
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set
index 9352f0b..44f4fd5 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.unordered_set
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray b/libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray
index a069f37..445b715 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.valarray
@@ -2,7 +2,6 @@ algorithm
array
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx20/expected.vector
index 5fb9d7d..9fbca5e 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20/expected.vector
+++ b/libcxx/test/libcxx/transitive_includes/cxx20/expected.vector
@@ -1,7 +1,6 @@
algorithm
atomic
bit
-chrono
climits
cmath
compare
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
index 944a3ee..8e539be 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.algorithm
@@ -1,7 +1,6 @@
algorithm
atomic
bit
-chrono
climits
cmath
compare
@@ -14,7 +13,6 @@ ctime
exception
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -23,6 +21,4 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
index 8600918..4f3cff5 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.any
@@ -1,6 +1,5 @@
any
atomic
-chrono
climits
cmath
compare
@@ -13,7 +12,6 @@ ctime
exception
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -22,6 +20,4 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.array b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.array
index 7145642..0fb1b67 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.array
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.array
@@ -1,29 +1,14 @@
-algorithm
array
-atomic
-bit
-chrono
-climits
cmath
compare
concepts
cstddef
cstdint
cstdlib
-cstring
-ctime
exception
initializer_list
iosfwd
-iterator
limits
-memory
-new
-ratio
stdexcept
-tuple
type_traits
-typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic
index 3e9917b..42e3c19 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.atomic
@@ -1,8 +1,5 @@
atomic
-chrono
climits
-cmath
-compare
cstddef
cstdint
cstring
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
index c2865c8..cb7845f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.barrier
@@ -1,6 +1,5 @@
atomic
barrier
-chrono
climits
cmath
compare
@@ -13,7 +12,6 @@ ctime
exception
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -22,6 +20,4 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit
index 4fb5285..3f58643 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bit
@@ -2,7 +2,6 @@ bit
cstddef
cstdint
cstdlib
-iosfwd
limits
type_traits
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
index 3cf3e8d..d3ee4af 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.bitset
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
bitset
cctype
-chrono
climits
cmath
compare
@@ -18,14 +14,11 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
string
@@ -33,8 +26,4 @@ string_view
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex
index 98bf9a8..cfc2d04 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ccomplex
@@ -1,12 +1,8 @@
-algorithm
-array
atomic
-bit
bitset
ccomplex
cctype
cerrno
-chrono
climits
cmath
compare
@@ -22,18 +18,15 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
sstream
@@ -45,8 +38,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv
index 1ab0e5d..448fc06 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.charconv
@@ -7,7 +7,6 @@ cstdint
cstdlib
cstring
initializer_list
-iosfwd
limits
type_traits
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt
index 0931ca1..f846715 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.codecvt
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
codecvt
@@ -19,15 +15,12 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
mutex
new
-optional
ratio
stdexcept
string
@@ -36,8 +29,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex
index 64161c1..eb5fe7c 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.complex
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -21,18 +17,15 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
sstream
@@ -44,8 +37,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
index 968007a..081849d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.condition_variable
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -19,14 +15,11 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
string
@@ -35,8 +28,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine
index 8dd332d..1f31012 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.coroutine
@@ -4,7 +4,6 @@ coroutine
cstddef
cstdint
cstring
-iosfwd
limits
type_traits
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath
index 7467a5a..ac37b74 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ctgmath
@@ -1,12 +1,8 @@
-algorithm
-array
atomic
-bit
bitset
ccomplex
cctype
cerrno
-chrono
climits
cmath
compare
@@ -23,18 +19,15 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
sstream
@@ -46,8 +39,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
index c26bdc7..aa51131 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.deque
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -14,21 +10,14 @@ cstring
ctime
deque
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
index 8a5cd7d..7e30791 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_algorithm
@@ -1,7 +1,6 @@
algorithm
atomic
bit
-chrono
climits
cmath
compare
@@ -15,7 +14,6 @@ exception
experimental/algorithm
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -24,6 +22,4 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine
index 682f0fa..89fc3ed 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_coroutine
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
@@ -13,7 +12,6 @@ exception
experimental/coroutine
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -22,6 +20,4 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque
index bd86d15..e1677c7 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_deque
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -17,21 +13,15 @@ exception
experimental/deque
experimental/memory_resource
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
tuple
type_traits
typeinfo
-unordered_map
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list
index c43fab0..af433ce 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_forward_list
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -17,21 +13,15 @@ experimental/forward_list
experimental/memory_resource
experimental/utility
forward_list
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
tuple
type_traits
typeinfo
-unordered_map
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional
index 87cee2d..ce502b5 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_functional
@@ -1,8 +1,5 @@
-algorithm
array
atomic
-bit
-chrono
climits
cmath
compare
@@ -17,7 +14,6 @@ experimental/functional
functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -28,7 +24,5 @@ tuple
type_traits
typeinfo
unordered_map
-utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator
index 14d31c2..83a9b8d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_iterator
@@ -14,7 +14,5 @@ limits
new
tuple
type_traits
-typeinfo
-utility
variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list
index ac80065..aae9f23 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_list
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -16,22 +12,16 @@ exception
experimental/list
experimental/memory_resource
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
list
memory
new
-optional
ratio
stdexcept
tuple
type_traits
typeinfo
-unordered_map
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map
index d132098..cb76c76 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_map
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -16,10 +12,8 @@ exception
experimental/map
experimental/memory_resource
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
map
memory
@@ -30,8 +24,5 @@ stdexcept
tuple
type_traits
typeinfo
-unordered_map
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource
index 94d9abd..67d2441 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_memory_resource
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
@@ -14,7 +13,6 @@ experimental/memory_resource
experimental/utility
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -24,5 +22,4 @@ tuple
type_traits
typeinfo
utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex
index 8a49aac..6490adb 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_regex
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -23,15 +19,12 @@ experimental/memory_resource
experimental/regex
experimental/string
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
memory
mutex
new
-optional
ratio
regex
stdexcept
@@ -41,8 +34,6 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set
index f1d2953..03a09af 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_set
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -16,10 +12,8 @@ exception
experimental/memory_resource
experimental/set
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -30,8 +24,5 @@ stdexcept
tuple
type_traits
typeinfo
-unordered_map
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd
index f06f6e9..999b0aa 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_simd
@@ -1,34 +1,16 @@
-algorithm
array
-atomic
-bit
-chrono
-climits
cmath
compare
concepts
cstddef
cstdint
cstdlib
-cstring
-ctime
exception
experimental/simd
-functional
initializer_list
iosfwd
-iterator
limits
-memory
-new
-optional
-ratio
stdexcept
tuple
type_traits
-typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string
index 367a9ed..4fb0539 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_string
@@ -1,9 +1,5 @@
-algorithm
-array
atomic
-bit
cctype
-chrono
climits
cmath
compare
@@ -20,14 +16,11 @@ exception
experimental/memory_resource
experimental/string
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
string
@@ -35,8 +28,5 @@ string_view
tuple
type_traits
typeinfo
-unordered_map
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map
index 16753ae..04efa33 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_map
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -16,10 +12,8 @@ exception
experimental/memory_resource
experimental/unordered_map
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -31,6 +25,4 @@ type_traits
typeinfo
unordered_map
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set
index 1aafa61..798b920 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_unordered_set
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -16,10 +12,8 @@ exception
experimental/memory_resource
experimental/unordered_set
experimental/utility
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -29,9 +23,6 @@ stdexcept
tuple
type_traits
typeinfo
-unordered_map
unordered_set
utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility
index a399b3e..788283f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_utility
@@ -5,7 +5,6 @@ cstdint
cstdlib
experimental/utility
initializer_list
-iosfwd
limits
type_traits
utility
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector
index 1c56962..35355e4 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.experimental_vector
@@ -1,7 +1,4 @@
-algorithm
atomic
-bit
-chrono
climits
cmath
compare
@@ -17,7 +14,6 @@ experimental/utility
experimental/vector
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -27,6 +23,5 @@ tuple
type_traits
typeinfo
utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map
index 4595362..238ba8f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_map
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
@@ -21,7 +20,6 @@ ext/hash_map
functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -34,7 +32,5 @@ tuple
type_traits
typeinfo
unordered_map
-utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set
index 160335a..5e58c46 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ext_hash_set
@@ -3,7 +3,6 @@ array
atomic
bit
cctype
-chrono
climits
cmath
compare
@@ -21,7 +20,6 @@ ext/hash_set
functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -34,7 +32,5 @@ tuple
type_traits
typeinfo
unordered_map
-utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem
index 22e80bc..adc5812 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.filesystem
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -21,19 +17,16 @@ cwchar
cwctype
exception
filesystem
-functional
initializer_list
iomanip
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
stdexcept
@@ -44,8 +37,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.format b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.format
index 08d46d2..d88f3f6 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.format
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.format
@@ -1,11 +1,9 @@
-algorithm
array
atomic
bit
cctype
cerrno
charconv
-chrono
climits
cmath
compare
@@ -21,11 +19,9 @@ cwchar
cwctype
exception
format
-functional
initializer_list
ios
iosfwd
-iterator
limits
locale
memory
@@ -41,8 +37,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
index 33afc74..de184d3 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.forward_list
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -14,21 +10,14 @@ cstring
ctime
exception
forward_list
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream
index 7a892e1..31ef4da 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.fstream
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -22,19 +18,16 @@ cwctype
exception
filesystem
fstream
-functional
initializer_list
iomanip
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
stdexcept
@@ -45,8 +38,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional
index 7625982..944f5a2 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.functional
@@ -1,8 +1,5 @@
-algorithm
array
atomic
-bit
-chrono
climits
cmath
compare
@@ -16,7 +13,6 @@ exception
functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -27,7 +23,5 @@ tuple
type_traits
typeinfo
unordered_map
-utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.future b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.future
index 92bd4e0..978baba 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.future
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.future
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -18,16 +14,13 @@ ctime
cwchar
cwctype
exception
-functional
future
initializer_list
iosfwd
-iterator
limits
memory
mutex
new
-optional
ratio
stdexcept
string
@@ -37,8 +30,4 @@ thread
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip
index 3982908..86446ab 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iomanip
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -20,19 +16,16 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iomanip
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
stdexcept
@@ -43,8 +36,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios
index 6e7e5b2..3ecae93 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ios
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -18,16 +14,13 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
-iterator
limits
memory
mutex
new
-optional
ratio
stdexcept
string
@@ -36,8 +29,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream
index 580aeaf..2e4e74c 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iostream
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -20,19 +16,16 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
iostream
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
stdexcept
@@ -43,8 +36,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream
index fd0c4b4..cbd4a87 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.istream
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -20,18 +16,15 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
stdexcept
@@ -42,8 +35,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator
index 447087a..698f6cf 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.iterator
@@ -13,7 +13,5 @@ limits
new
tuple
type_traits
-typeinfo
-utility
variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch
index a7a6bbc..3d00941 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.latch
@@ -1,8 +1,5 @@
atomic
-chrono
climits
-cmath
-compare
cstddef
cstdint
cstring
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
index b596079..96d4f33 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.list
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -13,22 +9,15 @@ cstdlib
cstring
ctime
exception
-functional
initializer_list
iosfwd
-iterator
limits
list
memory
new
-optional
ratio
stdexcept
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale
index 2971936..cdd6609 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.locale
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -19,17 +15,14 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
-iterator
limits
locale
memory
mutex
new
-optional
ratio
stdexcept
streambuf
@@ -39,8 +32,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.map
index c871579..a689628 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.map
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.map
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -13,10 +9,8 @@ cstdlib
cstring
ctime
exception
-functional
initializer_list
iosfwd
-iterator
limits
map
memory
@@ -27,8 +21,4 @@ stdexcept
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
index f36910f..3b7a13d 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.memory
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
@@ -12,7 +11,6 @@ ctime
exception
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -21,6 +19,4 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex
index 4d101cb..1aa71f5 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.mutex
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -18,15 +14,12 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
mutex
new
-optional
ratio
stdexcept
string
@@ -35,8 +28,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric
index 558b324..8435829 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.numeric
@@ -1,34 +1,8 @@
-algorithm
-array
-atomic
-bit
-chrono
-climits
cmath
-compare
concepts
cstddef
cstdint
-cstdlib
-cstring
-ctime
-exception
-functional
-initializer_list
-iosfwd
-iterator
limits
-memory
-new
numeric
-optional
-ratio
-stdexcept
-tuple
type_traits
-typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional
index 993ce23..e888c8f 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.optional
@@ -1,27 +1,15 @@
-atomic
-chrono
-climits
cmath
compare
-concepts
cstddef
cstdint
cstdlib
cstring
-ctime
exception
initializer_list
iosfwd
-iterator
limits
-memory
new
optional
-ratio
stdexcept
-tuple
type_traits
-typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream
index 762d13c..1d7da3e 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ostream
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -20,17 +16,14 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
stdexcept
@@ -41,8 +34,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
index 5861852..85fd646 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.queue
@@ -1,8 +1,5 @@
-algorithm
array
atomic
-bit
-chrono
climits
cmath
compare
@@ -17,7 +14,6 @@ exception
functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -29,7 +25,5 @@ tuple
type_traits
typeinfo
unordered_map
-utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
index 96a956a..c8060db 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.random
@@ -1,9 +1,6 @@
-algorithm
-array
atomic
bit
cctype
-chrono
climits
cmath
compare
@@ -17,15 +14,12 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
numeric
-optional
random
ratio
stdexcept
@@ -34,8 +28,5 @@ string_view
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges
index 3dbb13b..f16d5e5 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.ranges
@@ -1,9 +1,4 @@
-algorithm
array
-atomic
-bit
-chrono
-climits
cmath
compare
concepts
@@ -11,25 +6,17 @@ cstddef
cstdint
cstdlib
cstring
-ctime
exception
-functional
initializer_list
iosfwd
iterator
limits
-memory
new
optional
ranges
-ratio
span
stdexcept
tuple
type_traits
-typeinfo
-unordered_map
-utility
variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex
index 76df207..447e318 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.regex
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -19,15 +15,12 @@ cwchar
cwctype
deque
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
mutex
new
-optional
ratio
regex
stdexcept
@@ -37,8 +30,5 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator
index 22dcb31..f4345de 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.scoped_allocator
@@ -1,5 +1,4 @@
atomic
-chrono
climits
cmath
compare
@@ -12,7 +11,6 @@ ctime
exception
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -22,6 +20,4 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore
index d6802e2..6893d09 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.semaphore
@@ -1,8 +1,5 @@
atomic
-chrono
climits
-cmath
-compare
cstddef
cstdint
cstring
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
index 849e873..9b0f3cb 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.set
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -13,10 +9,8 @@ cstdlib
cstring
ctime
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -27,8 +21,4 @@ stdexcept
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
index fdea61e..2bd4140 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.shared_mutex
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -18,14 +14,11 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
shared_mutex
stdexcept
@@ -35,8 +28,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.span b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.span
index a46c30d..4ec9847 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.span
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.span
@@ -1,34 +1,15 @@
-algorithm
array
-atomic
-bit
-chrono
-climits
cmath
compare
concepts
cstddef
cstdint
cstdlib
-cstring
-ctime
exception
-functional
initializer_list
iosfwd
-iterator
limits
-memory
-new
-optional
-ratio
span
stdexcept
-tuple
type_traits
-typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream
index 1724fbd..1acc28a 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.sstream
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -20,18 +16,15 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
sstream
@@ -43,8 +36,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
index 1a7d18c..17c8d99 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.stack
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -14,22 +10,15 @@ cstring
ctime
deque
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stack
stdexcept
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf
index a3001ce..5e8e278 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.streambuf
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -18,16 +14,13 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
-iterator
limits
memory
mutex
new
-optional
ratio
stdexcept
streambuf
@@ -37,8 +30,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
index 0dacf73..9607070 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string
@@ -1,9 +1,5 @@
-algorithm
-array
atomic
-bit
cctype
-chrono
climits
cmath
compare
@@ -17,14 +13,11 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
string
@@ -32,8 +25,4 @@ string_view
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view
index e814351..6bb7edf 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.string_view
@@ -1,10 +1,4 @@
-algorithm
-array
-atomic
-bit
cctype
-chrono
-climits
cmath
compare
concepts
@@ -13,26 +7,13 @@ cstdint
cstdio
cstdlib
cstring
-ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
-memory
-new
-optional
-ratio
stdexcept
string_view
-tuple
type_traits
-typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream
index 782153b..ed208f4 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.strstream
@@ -1,11 +1,7 @@
-algorithm
-array
atomic
-bit
bitset
cctype
cerrno
-chrono
climits
cmath
compare
@@ -20,18 +16,15 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
ios
iosfwd
istream
-iterator
limits
locale
memory
mutex
new
-optional
ostream
ratio
stdexcept
@@ -43,8 +36,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
index 4101ee5..30ca93c 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.system_error
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -18,14 +14,11 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
string
@@ -34,8 +27,4 @@ system_error
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread
index ab8c3c7..102ca58 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.thread
@@ -1,10 +1,6 @@
-algorithm
-array
atomic
-bit
cctype
cerrno
-chrono
climits
cmath
compare
@@ -18,14 +14,11 @@ ctime
cwchar
cwctype
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
-optional
ratio
stdexcept
string
@@ -35,8 +28,4 @@ thread
tuple
type_traits
typeinfo
-unordered_map
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple
index 69858dc..2a4e44c 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.tuple
@@ -2,14 +2,7 @@ cmath
compare
cstddef
cstdint
-cstdlib
-exception
-initializer_list
-iosfwd
limits
-new
tuple
type_traits
-typeinfo
-utility
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex
index 8f1c652..8ed5790 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.typeindex
@@ -4,12 +4,8 @@ cstddef
cstdint
cstdlib
exception
-initializer_list
-iosfwd
limits
-new
type_traits
typeindex
typeinfo
-utility
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map
index 2250cf9..4f2f2ff 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_map
@@ -1,7 +1,4 @@
-algorithm
atomic
-bit
-chrono
climits
cmath
compare
@@ -14,7 +11,6 @@ ctime
exception
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -25,6 +21,4 @@ tuple
type_traits
typeinfo
unordered_map
-utility
-variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
index 9352f0b..2c825fb 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.unordered_set
@@ -1,8 +1,4 @@
-algorithm
-array
atomic
-bit
-chrono
climits
cmath
compare
@@ -13,10 +9,8 @@ cstdlib
cstring
ctime
exception
-functional
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -26,9 +20,5 @@ stdexcept
tuple
type_traits
typeinfo
-unordered_map
unordered_set
-utility
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility
index 799a147..30781ff 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.utility
@@ -4,7 +4,6 @@ cstddef
cstdint
cstdlib
initializer_list
-iosfwd
limits
type_traits
utility
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray
index a069f37..b5543ea 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.valarray
@@ -1,34 +1,15 @@
-algorithm
-array
-atomic
-bit
-chrono
-climits
cmath
-compare
concepts
cstddef
cstdint
cstdlib
cstring
-ctime
exception
-functional
initializer_list
iosfwd
-iterator
limits
-memory
new
-optional
-ratio
stdexcept
-tuple
type_traits
-typeinfo
-unordered_map
-utility
valarray
-variant
-vector
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant
index d94d729..44553c7 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.variant
@@ -6,12 +6,9 @@ cstdlib
cstring
exception
initializer_list
-iosfwd
limits
new
tuple
type_traits
-typeinfo
-utility
variant
version
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
index 5fb9d7d..9553eb0 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b/expected.vector
@@ -1,7 +1,4 @@
-algorithm
atomic
-bit
-chrono
climits
cmath
compare
@@ -14,7 +11,6 @@ ctime
exception
initializer_list
iosfwd
-iterator
limits
memory
new
@@ -23,7 +19,5 @@ stdexcept
tuple
type_traits
typeinfo
-utility
-variant
vector
version
diff --git a/libcxx/utils/graph_header_deps.py b/libcxx/utils/graph_header_deps.py
index 1fe0fcc..871a9d6 100755
--- a/libcxx/utils/graph_header_deps.py
+++ b/libcxx/utils/graph_header_deps.py
@@ -69,7 +69,15 @@ def build_file_entry(fname, options):
local_includes.append(m.group(1))
m = re.match(r'\s*#\s*include\s+<([^>]*)>', line)
if m is not None:
- system_includes.append(m.group(1))
+ # Since libc++ keeps transitive includes guarded by the
+ # language version some cycles can be ignored. For example
+ # before C++20 several headers included <chrono> without using
+ # it. In C++20 <chrono> conditionally includes <format> in
+ # C++20. This causes multiple cycles in this script that can't
+ # happen in practice. Since the script uses a regex instead of
+ # a parser use a magic word.
+ if re.search(r'IGNORE-CYCLE', line) is None:
+ system_includes.append(m.group(1))
fully_qualified_includes = [
locate_header_file(h, options.search_dirs)