[libcxx-commits] [libcxx] [libc++] Remove opt-out of the LLVM 23 transitive includes removal (PR #213245)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Jul 31 04:00:31 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Nikolas Klauser (philnik777)
<details>
<summary>Changes</summary>
We've removed transitive includes by default in LLVM 23, but added an opt-in to keep the transitive includes for the release. Now that we've branched we can remove the transitive includes unconditionally.
---
Patch is 296.71 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/213245.diff
88 Files Affected:
- (modified) libcxx/docs/ReleaseNotes/24.rst (+1-2)
- (modified) libcxx/include/algorithm (-17)
- (modified) libcxx/include/any (-20)
- (modified) libcxx/include/array (-10)
- (modified) libcxx/include/atomic (-8)
- (modified) libcxx/include/barrier (-8)
- (modified) libcxx/include/bit (-6)
- (modified) libcxx/include/bitset (-6)
- (modified) libcxx/include/charconv (-12)
- (modified) libcxx/include/chrono (-23)
- (modified) libcxx/include/cmath (-3)
- (modified) libcxx/include/codecvt (-16)
- (modified) libcxx/include/compare (-5)
- (modified) libcxx/include/complex (-5)
- (modified) libcxx/include/concepts (-5)
- (modified) libcxx/include/condition_variable (-18)
- (modified) libcxx/include/coroutine (-6)
- (modified) libcxx/include/cwchar (-3)
- (modified) libcxx/include/deque (-11)
- (modified) libcxx/include/exception (-9)
- (modified) libcxx/include/execution (-3)
- (modified) libcxx/include/experimental/iterator (-11)
- (modified) libcxx/include/experimental/memory (-4)
- (modified) libcxx/include/experimental/propagate_const (-4)
- (modified) libcxx/include/experimental/simd (-3)
- (modified) libcxx/include/experimental/type_traits (-4)
- (modified) libcxx/include/experimental/utility (-3)
- (modified) libcxx/include/ext/hash_map (-5)
- (modified) libcxx/include/ext/hash_set (-5)
- (modified) libcxx/include/filesystem (-8)
- (modified) libcxx/include/format (-29)
- (modified) libcxx/include/forward_list (-14)
- (modified) libcxx/include/fstream (-15)
- (modified) libcxx/include/functional (-29)
- (modified) libcxx/include/future (-17)
- (modified) libcxx/include/initializer_list (-3)
- (modified) libcxx/include/iomanip (-19)
- (modified) libcxx/include/ios (-21)
- (modified) libcxx/include/istream (-11)
- (modified) libcxx/include/iterator (-13)
- (modified) libcxx/include/latch (-4)
- (modified) libcxx/include/limits (-3)
- (modified) libcxx/include/list (-13)
- (modified) libcxx/include/locale (-11)
- (modified) libcxx/include/map (-8)
- (modified) libcxx/include/memory (-16)
- (modified) libcxx/include/memory_resource (-7)
- (modified) libcxx/include/mutex (-18)
- (modified) libcxx/include/new (-5)
- (modified) libcxx/include/numbers (-5)
- (modified) libcxx/include/numeric (-17)
- (modified) libcxx/include/optional (-16)
- (modified) libcxx/include/ostream (-17)
- (modified) libcxx/include/queue (-6)
- (modified) libcxx/include/random (-15)
- (modified) libcxx/include/ranges (-5)
- (modified) libcxx/include/ratio (-3)
- (modified) libcxx/include/regex (-12)
- (modified) libcxx/include/scoped_allocator (-13)
- (modified) libcxx/include/semaphore (-4)
- (modified) libcxx/include/set (-8)
- (modified) libcxx/include/shared_mutex (-4)
- (modified) libcxx/include/span (-7)
- (modified) libcxx/include/sstream (-4)
- (modified) libcxx/include/stack (-5)
- (modified) libcxx/include/stdexcept (-7)
- (modified) libcxx/include/stop_token (-8)
- (modified) libcxx/include/streambuf (-4)
- (modified) libcxx/include/string (-11)
- (modified) libcxx/include/string_view (-8)
- (modified) libcxx/include/system_error (-7)
- (modified) libcxx/include/thread (-17)
- (modified) libcxx/include/tuple (-9)
- (modified) libcxx/include/typeindex (-6)
- (modified) libcxx/include/typeinfo (-5)
- (modified) libcxx/include/unordered_map (-9)
- (modified) libcxx/include/unordered_set (-9)
- (modified) libcxx/include/utility (-7)
- (modified) libcxx/include/valarray (-9)
- (modified) libcxx/include/variant (-8)
- (modified) libcxx/include/vector (-26)
- (modified) libcxx/test/libcxx/transitive_includes.gen.py (+3-3)
- (modified) libcxx/test/libcxx/transitive_includes/cxx03.csv (-1723)
- (modified) libcxx/test/libcxx/transitive_includes/cxx11.csv (-1720)
- (modified) libcxx/test/libcxx/transitive_includes/cxx14.csv (-1767)
- (modified) libcxx/test/libcxx/transitive_includes/cxx17.csv (-1703)
- (modified) libcxx/test/libcxx/transitive_includes/cxx20.csv (-1637)
- (modified) libcxx/test/libcxx/transitive_includes/cxx23.csv (-89)
``````````diff
diff --git a/libcxx/docs/ReleaseNotes/24.rst b/libcxx/docs/ReleaseNotes/24.rst
index 6c0b837074ea2..f42b5621e9fb5 100644
--- a/libcxx/docs/ReleaseNotes/24.rst
+++ b/libcxx/docs/ReleaseNotes/24.rst
@@ -59,7 +59,7 @@ Deprecations and Removals
Potentially breaking changes
----------------------------
-- TODO: In LLVM 23, libc++ dropped a lot of transitive includes in all language modes. This improves compile time significantly,
+- In LLVM 23, libc++ dropped a lot of transitive includes in all language modes. This improves compile time significantly,
but causes programs which rely on these includes to not compile anymore. The ``_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23``
macro that was provided in LLVM 23 to ease the transition has been removed in this release.
@@ -79,4 +79,3 @@ ABI Affecting Changes
Build System Changes
--------------------
-
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm
index a0c632edbcbda..9543c6b3b3239 100644
--- a/libcxx/include/algorithm
+++ b/libcxx/include/algorithm
@@ -2104,23 +2104,6 @@ template <class BidirectionalIterator, class Compare>
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER == 14
-# include <execution>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <atomic>
-# include <bit>
-# include <concepts>
-# include <cstdlib>
-# include <cstring>
-# include <iterator>
-# include <memory>
-# include <optional>
-# include <stdexcept>
-# include <type_traits>
-# include <utility>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_ALGORITHM
diff --git a/libcxx/include/any b/libcxx/include/any
index 670b7512e5699..893ac2451f3fc 100644
--- a/libcxx/include/any
+++ b/libcxx/include/any
@@ -558,26 +558,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 17
-# include <chrono>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <atomic>
-# include <concepts>
-# include <cstdlib>
-# include <iosfwd>
-# include <iterator>
-# include <memory>
-# include <stdexcept>
-# include <type_traits>
-# include <variant>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 23
-# include <cstring>
-# include <limits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_ANY
diff --git a/libcxx/include/array b/libcxx/include/array
index 2522537227b88..2374806856e3f 100644
--- a/libcxx/include/array
+++ b/libcxx/include/array
@@ -594,16 +594,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <algorithm>
-# include <concepts>
-# include <cstdlib>
-# include <iterator>
-# include <new>
-# include <optional>
-# include <type_traits>
-# include <utility>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_ARRAY
diff --git a/libcxx/include/atomic b/libcxx/include/atomic
index a89987ebd36e6..0c3a6700811d3 100644
--- a/libcxx/include/atomic
+++ b/libcxx/include/atomic
@@ -654,14 +654,6 @@ template <class T>
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cmath>
-# include <compare>
-# include <cstddef>
-# include <cstdlib>
-# include <cstring>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_ATOMIC
diff --git a/libcxx/include/barrier b/libcxx/include/barrier
index 7fda4c8e06179..f4f48f02ae2cb 100644
--- a/libcxx/include/barrier
+++ b/libcxx/include/barrier
@@ -192,14 +192,6 @@ _LIBCPP_POP_MACROS
# endif // _LIBCPP_HAS_THREADS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <atomic>
-# include <concepts>
-# include <iterator>
-# include <memory>
-# include <stdexcept>
-# include <variant>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_BARRIER
diff --git a/libcxx/include/bit b/libcxx/include/bit
index c483f4e003f62..40fcda27856bb 100644
--- a/libcxx/include/bit
+++ b/libcxx/include/bit
@@ -90,12 +90,6 @@ namespace std {
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstdlib>
-# include <iosfwd>
-# include <limits>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_BIT
diff --git a/libcxx/include/bitset b/libcxx/include/bitset
index 3897a792d9a69..5e100a9c25439 100644
--- a/libcxx/include/bitset
+++ b/libcxx/include/bitset
@@ -971,12 +971,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <concepts>
-# include <cstdlib>
-# include <optional>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_BITSET
diff --git a/libcxx/include/charconv b/libcxx/include/charconv
index b7d8cccd7ad73..512a91cd515f6 100644
--- a/libcxx/include/charconv
+++ b/libcxx/include/charconv
@@ -100,18 +100,6 @@ namespace std {
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cmath>
-# include <concepts>
-# include <cstddef>
-# include <cstdint>
-# include <cstdlib>
-# include <cstring>
-# include <iosfwd>
-# include <limits>
-# include <new>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_CHARCONV
diff --git a/libcxx/include/chrono b/libcxx/include/chrono
index 8cc6b9bb883b9..59e9813afafd8 100644
--- a/libcxx/include/chrono
+++ b/libcxx/include/chrono
@@ -1149,29 +1149,6 @@ namespace std {
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 17
-# include <cstdint>
-# include <stdexcept>
-# include <string_view>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <bit>
-# include <concepts>
-# include <cstring>
-# include <forward_list>
-# include <string>
-# include <tuple>
-# include <vector>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER == 20
-# include <charconv>
-# if _LIBCPP_HAS_LOCALIZATION
-# include <locale>
-# include <ostream>
-# endif
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_CHRONO
diff --git a/libcxx/include/cmath b/libcxx/include/cmath
index 27698a09fd75f..e9a4105cfad59 100644
--- a/libcxx/include/cmath
+++ b/libcxx/include/cmath
@@ -612,9 +612,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_CMATH
diff --git a/libcxx/include/codecvt b/libcxx/include/codecvt
index ea7c0f876f61a..6c3ac727e3f7f 100644
--- a/libcxx/include/codecvt
+++ b/libcxx/include/codecvt
@@ -587,22 +587,6 @@ _LIBCPP_END_NAMESPACE_STD
# endif // _LIBCPP_HAS_LOCALIZATION
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <atomic>
-# include <concepts>
-# include <cstddef>
-# include <cstdlib>
-# include <cstring>
-# include <initializer_list>
-# include <iosfwd>
-# include <limits>
-# include <mutex>
-# include <new>
-# include <optional>
-# include <stdexcept>
-# include <type_traits>
-# include <typeinfo>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_CODECVT
diff --git a/libcxx/include/compare b/libcxx/include/compare
index 094603dd9933a..de1f845271a48 100644
--- a/libcxx/include/compare
+++ b/libcxx/include/compare
@@ -167,11 +167,6 @@ namespace std {
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cmath>
-# include <cstddef>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_COMPARE
diff --git a/libcxx/include/complex b/libcxx/include/complex
index f1ba85eb9624e..03c3bb4686e81 100644
--- a/libcxx/include/complex
+++ b/libcxx/include/complex
@@ -1484,11 +1484,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <iosfwd>
-# include <stdexcept>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_COMPLEX
diff --git a/libcxx/include/concepts b/libcxx/include/concepts
index cee3db23c06f5..71cf5ce217d68 100644
--- a/libcxx/include/concepts
+++ b/libcxx/include/concepts
@@ -161,11 +161,6 @@ namespace std {
# include <version>
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# include <type_traits>
-# endif
-
# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
# endif
diff --git a/libcxx/include/condition_variable b/libcxx/include/condition_variable
index 0018b89f362af..cefb3ffff879f 100644
--- a/libcxx/include/condition_variable
+++ b/libcxx/include/condition_variable
@@ -350,24 +350,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 23
-# include <atomic>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <concepts>
-# include <cstdint>
-# include <cstdlib>
-# include <cstring>
-# include <initializer_list>
-# include <iosfwd>
-# include <new>
-# include <optional>
-# include <stdexcept>
-# include <system_error>
-# include <type_traits>
-# include <typeinfo>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_CONDITION_VARIABLE
diff --git a/libcxx/include/coroutine b/libcxx/include/coroutine
index ffd12eec7819d..b6d45f5f345f0 100644
--- a/libcxx/include/coroutine
+++ b/libcxx/include/coroutine
@@ -61,12 +61,6 @@ struct suspend_always;
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# include <iosfwd>
-# include <limits>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_COROUTINE
diff --git a/libcxx/include/cwchar b/libcxx/include/cwchar
index e2534977a7a3c..770b6f2a31d88 100644
--- a/libcxx/include/cwchar
+++ b/libcxx/include/cwchar
@@ -258,9 +258,6 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp* __constexpr_wmemchr(_Tp
_LIBCPP_END_NAMESPACE_STD
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_CWCHAR
diff --git a/libcxx/include/deque b/libcxx/include/deque
index 5a4de99c7f143..0bb710b29e581 100644
--- a/libcxx/include/deque
+++ b/libcxx/include/deque
@@ -2546,17 +2546,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <algorithm>
-# include <atomic>
-# include <concepts>
-# include <cstdlib>
-# include <functional>
-# include <iosfwd>
-# include <iterator>
-# include <type_traits>
-# include <typeinfo>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_DEQUE
diff --git a/libcxx/include/exception b/libcxx/include/exception
index 4f2135e8f5d28..69199c8dfdd40 100644
--- a/libcxx/include/exception
+++ b/libcxx/include/exception
@@ -91,15 +91,6 @@ template <class E> void rethrow_if_nested(const E& e);
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# include <new>
-# include <type_traits>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 23
-# include <cstdlib>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_EXCEPTION
diff --git a/libcxx/include/execution b/libcxx/include/execution
index 355d3e3c99d4e..49a901282fd9b 100644
--- a/libcxx/include/execution
+++ b/libcxx/include/execution
@@ -155,9 +155,6 @@ _LIBCPP_END_NAMESPACE_STD
# endif // _LIBCPP_HAS_EXPERIMENTAL_PSTL && _LIBCPP_STD_VER >= 17
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_EXECUTION
diff --git a/libcxx/include/experimental/iterator b/libcxx/include/experimental/iterator
index fd320dcc7d170..0511386b409d6 100644
--- a/libcxx/include/experimental/iterator
+++ b/libcxx/include/experimental/iterator
@@ -124,17 +124,6 @@ _LIBCPP_END_NAMESPACE_LFTS
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# include <iosfwd>
-# include <optional>
-# include <type_traits>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 23
-# include <locale>
-# endif
-
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_EXPERIMENTAL_ITERATOR
diff --git a/libcxx/include/experimental/memory b/libcxx/include/experimental/memory
index b7a499956170d..8dbea6202afa3 100644
--- a/libcxx/include/experimental/memory
+++ b/libcxx/include/experimental/memory
@@ -194,10 +194,6 @@ _LIBCPP_END_NAMESPACE_STD
# endif // _LIBCPP_ENABLE_EXPERIMENTAL
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# include <limits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif /* _LIBCPP_EXPERIMENTAL_MEMORY */
diff --git a/libcxx/include/experimental/propagate_const b/libcxx/include/experimental/propagate_const
index f6a99cda1a07f..3c9610a8afb83 100644
--- a/libcxx/include/experimental/propagate_const
+++ b/libcxx/include/experimental/propagate_const
@@ -488,10 +488,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST
diff --git a/libcxx/include/experimental/simd b/libcxx/include/experimental/simd
index 3c57fa4699118..9b321f6f7e275 100644
--- a/libcxx/include/experimental/simd
+++ b/libcxx/include/experimental/simd
@@ -88,9 +88,6 @@ inline namespace parallelism_v2 {
# include <experimental/__simd/traits.h>
# include <experimental/__simd/vec_ext.h>
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif /* _LIBCPP_EXPERIMENTAL_SIMD */
diff --git a/libcxx/include/experimental/type_traits b/libcxx/include/experimental/type_traits
index 6f0d52010e030..63bbf2542705d 100644
--- a/libcxx/include/experimental/type_traits
+++ b/libcxx/include/experimental/type_traits
@@ -151,10 +151,6 @@ constexpr bool is_detected_convertible_v = is_detected_convertible<_To, _Op, _Ar
_LIBCPP_END_NAMESPACE_LFTS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# endif
-
# endif /* _LIBCPP_STD_VER >= 14 */
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
diff --git a/libcxx/include/experimental/utility b/libcxx/include/experimental/utility
index 30b733a058e3f..39ec796fed0e0 100644
--- a/libcxx/include/experimental/utility
+++ b/libcxx/include/experimental/utility
@@ -46,9 +46,6 @@ struct erased_type {};
_LIBCPP_END_NAMESPACE_LFTS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif /* _LIBCPP_EXPERIMENTAL_UTILITY */
diff --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map
index 3ffb87755ded6..b35090d1142f1 100644
--- a/libcxx/include/ext/hash_map
+++ b/libcxx/include/ext/hash_map
@@ -825,11 +825,6 @@ inline _LIBCPP_HIDE_FROM_ABI bool operator!=(const hash_multimap<_Key, _Tp, _Has
} // namespace __gnu_cxx
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <concepts>
-# include <iterator>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_HASH_MAP
diff --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set
index 412f2f34992e5..2c8a87cc8c3d8 100644
--- a/libcxx/include/ext/hash_set
+++ b/libcxx/include/ext/hash_set
@@ -572,11 +572,6 @@ inline _LIBCPP_HIDE_FROM_ABI bool operator!=(const hash_multiset<_Value, _Hash,
} // namespace __gnu_cxx
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <concepts>
-# include <iterator>
-# include <type_traits>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_HASH_SET
diff --git a/libcxx/include/filesystem b/libcxx/include/filesystem
index 876e39385bf01..fc030b358a423 100644
--- a/libcxx/include/filesystem
+++ b/libcxx/include/filesystem
@@ -568,14 +568,6 @@ inline constexpr bool std::ranges::enable_view<std::filesystem::recursive_direct
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <concepts>
-# include <cstdlib>
-# include <cstring>
-# include <iosfwd>
-# include <new>
-# include <system_error>
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_FILESYSTEM
diff --git a/libcxx/include/format b/libcxx/include/format
index fcfb70d78c2a1..f6d74596314a0 100644
--- a/libcxx/include/format
+++ b/libcxx/include/format
@@ -233,35 +233,6 @@ namespace std {
# pragma GCC system_header
# endif
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 23
-# include <cmath>
-# endif
-
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <= 20
-# include <array>
-# include <cctype>
-# include <cerrno>
-# include <clocale>
-# include <cstddef>
-# include <cstdint>
-# include <cstdlib>
-# include <cstring>
-# include <initializer_list>
-# include <limits>
-# include <locale>
-# include <new>
-# include <optional>
-# include <queue>
-# include <stack>
-# include <stdexcept>
-# include <string>
-# include <string_view>
-# include <tuple>
-
-# if _LIBCPP_HAS_WIDE_CHARACTERS
-# include <cwchar>
-# endif
-# endif
#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)
#endif // _LIBCPP_FORMAT
diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index d963fea6084ca..dbbf8314c9e28 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -1599,20 +1599,6 @@ _LIBCPP_END_NAMESPACE_STD
_LIBCPP_POP_MACROS
-# if defined(_LIBCPP_KEEP_TRANSITIVE_INCLUDES_LLVM23) && _LIBCPP_STD_VER <...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/213245
More information about the libcxx-commits
mailing list