[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