[libcxx-commits] [libcxx] [libc++] Remove transitive includes from empty headers (PR #116295)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Nov 14 15:15:37 PST 2024
https://github.com/philnik777 created https://github.com/llvm/llvm-project/pull/116295
This removes transitive includes that are only in a header that is empty in a given C++ version.
>From ff1847504bd5b6440352bfe76e86716c70f35ad4 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Fri, 15 Nov 2024 00:13:12 +0100
Subject: [PATCH] [libc++] Remove transitive includes from empty headers
---
libcxx/include/bit | 4 -
libcxx/include/charconv | 7 --
libcxx/include/compare | 6 -
libcxx/include/expected | 6 -
libcxx/include/mdspan | 9 --
libcxx/include/memory_resource | 9 --
libcxx/include/ranges | 8 --
.../test/libcxx/transitive_includes/cxx03.csv | 107 -----------------
.../test/libcxx/transitive_includes/cxx11.csv | 107 -----------------
.../test/libcxx/transitive_includes/cxx14.csv | 110 ------------------
.../test/libcxx/transitive_includes/cxx17.csv | 77 ------------
.../test/libcxx/transitive_includes/cxx20.csv | 53 ---------
12 files changed, 503 deletions(-)
diff --git a/libcxx/include/bit b/libcxx/include/bit
index 94387d101a398f..092aebca26a31d 100644
--- a/libcxx/include/bit
+++ b/libcxx/include/bit
@@ -87,10 +87,6 @@ namespace std {
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
-# include <cstdint>
-#endif
-
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <cstdlib>
# include <iosfwd>
diff --git a/libcxx/include/charconv b/libcxx/include/charconv
index 8f5e697eec4396..a65b3d35270803 100644
--- a/libcxx/include/charconv
+++ b/libcxx/include/charconv
@@ -101,13 +101,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD
_LIBCPP_END_NAMESPACE_STD
-#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 14
-# include <cerrno>
-# include <cstddef>
-# include <initializer_list>
-# include <new>
-#endif
-
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <cmath>
# include <concepts>
diff --git a/libcxx/include/compare b/libcxx/include/compare
index de0e4c7ec2280c..440d4c4b4dd26d 100644
--- a/libcxx/include/compare
+++ b/libcxx/include/compare
@@ -164,12 +164,6 @@ namespace std {
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
-# include <cstddef>
-# include <cstdint>
-# include <limits>
-#endif
-
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <cmath>
# include <cstddef>
diff --git a/libcxx/include/expected b/libcxx/include/expected
index 6a2f12f2bf3b5d..3c7ef336432a10 100644
--- a/libcxx/include/expected
+++ b/libcxx/include/expected
@@ -53,10 +53,4 @@ namespace std {
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
-# include <cstddef>
-# include <initializer_list>
-# include <new>
-#endif
-
#endif // _LIBCPP_EXPECTED
diff --git a/libcxx/include/mdspan b/libcxx/include/mdspan
index 29190e4a9953ed..d6191a197e15c6 100644
--- a/libcxx/include/mdspan
+++ b/libcxx/include/mdspan
@@ -426,13 +426,4 @@ namespace std {
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
-# include <array>
-# include <cinttypes>
-# include <concepts>
-# include <cstddef>
-# include <limits>
-# include <span>
-#endif
-
#endif // _LIBCPP_MDSPAN
diff --git a/libcxx/include/memory_resource b/libcxx/include/memory_resource
index e98ca20aa058c3..7de69e67b7c062 100644
--- a/libcxx/include/memory_resource
+++ b/libcxx/include/memory_resource
@@ -66,15 +66,6 @@ namespace std::pmr {
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 14
-# include <cstddef>
-# include <cstdint>
-# include <limits>
-# include <mutex>
-# include <new>
-# include <tuple>
-#endif
-
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <stdexcept>
#endif
diff --git a/libcxx/include/ranges b/libcxx/include/ranges
index b17a399e0ed65b..d8ee6f75e8b23c 100644
--- a/libcxx/include/ranges
+++ b/libcxx/include/ranges
@@ -446,14 +446,6 @@ namespace std {
# pragma GCC system_header
#endif
-#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
-# include <cstddef>
-# include <limits>
-# include <optional>
-# include <span>
-# include <tuple>
-#endif
-
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <cstdlib>
# include <iosfwd>
diff --git a/libcxx/test/libcxx/transitive_includes/cxx03.csv b/libcxx/test/libcxx/transitive_includes/cxx03.csv
index d70541290023b2..72fccfd3649325 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx03.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx03.csv
@@ -242,17 +242,14 @@ ccomplex utility
ccomplex variant
ccomplex vector
ccomplex version
-charconv cerrno
charconv cmath
charconv concepts
charconv cstddef
charconv cstdint
charconv cstdlib
charconv cstring
-charconv initializer_list
charconv iosfwd
charconv limits
-charconv new
charconv type_traits
charconv version
chrono algorithm
@@ -571,12 +568,6 @@ exception typeinfo
exception version
execution cstddef
execution version
-expected cstddef
-expected cstdint
-expected cstdlib
-expected initializer_list
-expected new
-expected type_traits
expected version
experimental/iterator algorithm
experimental/iterator atomic
@@ -1340,53 +1331,6 @@ map utility
map variant
map vector
map version
-mdspan algorithm
-mdspan array
-mdspan atomic
-mdspan bit
-mdspan cctype
-mdspan cerrno
-mdspan cinttypes
-mdspan climits
-mdspan clocale
-mdspan cmath
-mdspan compare
-mdspan concepts
-mdspan cstdarg
-mdspan cstddef
-mdspan cstdint
-mdspan cstdio
-mdspan cstdlib
-mdspan cstring
-mdspan ctime
-mdspan cwchar
-mdspan cwctype
-mdspan exception
-mdspan functional
-mdspan initializer_list
-mdspan ios
-mdspan iosfwd
-mdspan iterator
-mdspan limits
-mdspan locale
-mdspan memory
-mdspan mutex
-mdspan new
-mdspan optional
-mdspan ratio
-mdspan span
-mdspan stdexcept
-mdspan streambuf
-mdspan string
-mdspan string_view
-mdspan system_error
-mdspan tuple
-mdspan type_traits
-mdspan typeinfo
-mdspan unordered_map
-mdspan utility
-mdspan variant
-mdspan vector
mdspan version
memory atomic
memory cctype
@@ -1416,42 +1360,15 @@ memory typeinfo
memory utility
memory variant
memory version
-memory_resource algorithm
-memory_resource atomic
-memory_resource bit
-memory_resource cctype
-memory_resource cerrno
-memory_resource climits
-memory_resource cmath
-memory_resource compare
-memory_resource concepts
memory_resource cstddef
memory_resource cstdint
-memory_resource cstdio
memory_resource cstdlib
-memory_resource cstring
-memory_resource ctime
-memory_resource cwchar
-memory_resource cwctype
memory_resource exception
-memory_resource initializer_list
memory_resource iosfwd
-memory_resource iterator
-memory_resource limits
-memory_resource memory
-memory_resource mutex
memory_resource new
-memory_resource optional
-memory_resource ratio
memory_resource stdexcept
-memory_resource string
-memory_resource string_view
-memory_resource system_error
-memory_resource tuple
memory_resource type_traits
memory_resource typeinfo
-memory_resource utility
-memory_resource variant
memory_resource version
mutex algorithm
mutex atomic
@@ -1772,52 +1689,28 @@ random utility
random variant
random vector
random version
-ranges algorithm
-ranges array
-ranges atomic
-ranges bit
ranges cctype
-ranges cerrno
-ranges climits
-ranges clocale
ranges cmath
ranges compare
ranges concepts
-ranges cstdarg
ranges cstddef
ranges cstdint
ranges cstdio
ranges cstdlib
ranges cstring
-ranges ctime
ranges cwchar
ranges cwctype
ranges exception
-ranges functional
ranges initializer_list
-ranges ios
ranges iosfwd
ranges iterator
ranges limits
-ranges locale
-ranges memory
-ranges mutex
ranges new
-ranges optional
-ranges ratio
-ranges span
-ranges stdexcept
-ranges streambuf
-ranges string
-ranges string_view
-ranges system_error
ranges tuple
ranges type_traits
ranges typeinfo
-ranges unordered_map
ranges utility
ranges variant
-ranges vector
ranges version
ratio climits
ratio cstdint
diff --git a/libcxx/test/libcxx/transitive_includes/cxx11.csv b/libcxx/test/libcxx/transitive_includes/cxx11.csv
index d70541290023b2..72fccfd3649325 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx11.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx11.csv
@@ -242,17 +242,14 @@ ccomplex utility
ccomplex variant
ccomplex vector
ccomplex version
-charconv cerrno
charconv cmath
charconv concepts
charconv cstddef
charconv cstdint
charconv cstdlib
charconv cstring
-charconv initializer_list
charconv iosfwd
charconv limits
-charconv new
charconv type_traits
charconv version
chrono algorithm
@@ -571,12 +568,6 @@ exception typeinfo
exception version
execution cstddef
execution version
-expected cstddef
-expected cstdint
-expected cstdlib
-expected initializer_list
-expected new
-expected type_traits
expected version
experimental/iterator algorithm
experimental/iterator atomic
@@ -1340,53 +1331,6 @@ map utility
map variant
map vector
map version
-mdspan algorithm
-mdspan array
-mdspan atomic
-mdspan bit
-mdspan cctype
-mdspan cerrno
-mdspan cinttypes
-mdspan climits
-mdspan clocale
-mdspan cmath
-mdspan compare
-mdspan concepts
-mdspan cstdarg
-mdspan cstddef
-mdspan cstdint
-mdspan cstdio
-mdspan cstdlib
-mdspan cstring
-mdspan ctime
-mdspan cwchar
-mdspan cwctype
-mdspan exception
-mdspan functional
-mdspan initializer_list
-mdspan ios
-mdspan iosfwd
-mdspan iterator
-mdspan limits
-mdspan locale
-mdspan memory
-mdspan mutex
-mdspan new
-mdspan optional
-mdspan ratio
-mdspan span
-mdspan stdexcept
-mdspan streambuf
-mdspan string
-mdspan string_view
-mdspan system_error
-mdspan tuple
-mdspan type_traits
-mdspan typeinfo
-mdspan unordered_map
-mdspan utility
-mdspan variant
-mdspan vector
mdspan version
memory atomic
memory cctype
@@ -1416,42 +1360,15 @@ memory typeinfo
memory utility
memory variant
memory version
-memory_resource algorithm
-memory_resource atomic
-memory_resource bit
-memory_resource cctype
-memory_resource cerrno
-memory_resource climits
-memory_resource cmath
-memory_resource compare
-memory_resource concepts
memory_resource cstddef
memory_resource cstdint
-memory_resource cstdio
memory_resource cstdlib
-memory_resource cstring
-memory_resource ctime
-memory_resource cwchar
-memory_resource cwctype
memory_resource exception
-memory_resource initializer_list
memory_resource iosfwd
-memory_resource iterator
-memory_resource limits
-memory_resource memory
-memory_resource mutex
memory_resource new
-memory_resource optional
-memory_resource ratio
memory_resource stdexcept
-memory_resource string
-memory_resource string_view
-memory_resource system_error
-memory_resource tuple
memory_resource type_traits
memory_resource typeinfo
-memory_resource utility
-memory_resource variant
memory_resource version
mutex algorithm
mutex atomic
@@ -1772,52 +1689,28 @@ random utility
random variant
random vector
random version
-ranges algorithm
-ranges array
-ranges atomic
-ranges bit
ranges cctype
-ranges cerrno
-ranges climits
-ranges clocale
ranges cmath
ranges compare
ranges concepts
-ranges cstdarg
ranges cstddef
ranges cstdint
ranges cstdio
ranges cstdlib
ranges cstring
-ranges ctime
ranges cwchar
ranges cwctype
ranges exception
-ranges functional
ranges initializer_list
-ranges ios
ranges iosfwd
ranges iterator
ranges limits
-ranges locale
-ranges memory
-ranges mutex
ranges new
-ranges optional
-ranges ratio
-ranges span
-ranges stdexcept
-ranges streambuf
-ranges string
-ranges string_view
-ranges system_error
ranges tuple
ranges type_traits
ranges typeinfo
-ranges unordered_map
ranges utility
ranges variant
-ranges vector
ranges version
ratio climits
ratio cstdint
diff --git a/libcxx/test/libcxx/transitive_includes/cxx14.csv b/libcxx/test/libcxx/transitive_includes/cxx14.csv
index 90bff887eb2781..fd36dace19c76c 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx14.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx14.csv
@@ -247,17 +247,14 @@ ccomplex utility
ccomplex variant
ccomplex vector
ccomplex version
-charconv cerrno
charconv cmath
charconv concepts
charconv cstddef
charconv cstdint
charconv cstdlib
charconv cstring
-charconv initializer_list
charconv iosfwd
charconv limits
-charconv new
charconv type_traits
charconv version
chrono algorithm
@@ -582,12 +579,6 @@ exception typeinfo
exception version
execution cstddef
execution version
-expected cstddef
-expected cstdint
-expected cstdlib
-expected initializer_list
-expected new
-expected type_traits
expected version
experimental/iterator algorithm
experimental/iterator atomic
@@ -1370,54 +1361,6 @@ map utility
map variant
map vector
map version
-mdspan algorithm
-mdspan array
-mdspan atomic
-mdspan bit
-mdspan cctype
-mdspan cerrno
-mdspan cinttypes
-mdspan climits
-mdspan clocale
-mdspan cmath
-mdspan compare
-mdspan concepts
-mdspan cstdarg
-mdspan cstddef
-mdspan cstdint
-mdspan cstdio
-mdspan cstdlib
-mdspan cstring
-mdspan ctime
-mdspan cwchar
-mdspan cwctype
-mdspan exception
-mdspan execution
-mdspan functional
-mdspan initializer_list
-mdspan ios
-mdspan iosfwd
-mdspan iterator
-mdspan limits
-mdspan locale
-mdspan memory
-mdspan mutex
-mdspan new
-mdspan optional
-mdspan ratio
-mdspan span
-mdspan stdexcept
-mdspan streambuf
-mdspan string
-mdspan string_view
-mdspan system_error
-mdspan tuple
-mdspan type_traits
-mdspan typeinfo
-mdspan unordered_map
-mdspan utility
-mdspan variant
-mdspan vector
mdspan version
memory atomic
memory cctype
@@ -1447,43 +1390,15 @@ memory typeinfo
memory utility
memory variant
memory version
-memory_resource algorithm
-memory_resource atomic
-memory_resource bit
-memory_resource cctype
-memory_resource cerrno
-memory_resource climits
-memory_resource cmath
-memory_resource compare
-memory_resource concepts
memory_resource cstddef
memory_resource cstdint
-memory_resource cstdio
memory_resource cstdlib
-memory_resource cstring
-memory_resource ctime
-memory_resource cwchar
-memory_resource cwctype
memory_resource exception
-memory_resource execution
-memory_resource initializer_list
memory_resource iosfwd
-memory_resource iterator
-memory_resource limits
-memory_resource memory
-memory_resource mutex
memory_resource new
-memory_resource optional
-memory_resource ratio
memory_resource stdexcept
-memory_resource string
-memory_resource string_view
-memory_resource system_error
-memory_resource tuple
memory_resource type_traits
memory_resource typeinfo
-memory_resource utility
-memory_resource variant
memory_resource version
mutex algorithm
mutex atomic
@@ -1808,53 +1723,28 @@ random utility
random variant
random vector
random version
-ranges algorithm
-ranges array
-ranges atomic
-ranges bit
ranges cctype
-ranges cerrno
-ranges climits
-ranges clocale
ranges cmath
ranges compare
ranges concepts
-ranges cstdarg
ranges cstddef
ranges cstdint
ranges cstdio
ranges cstdlib
ranges cstring
-ranges ctime
ranges cwchar
ranges cwctype
ranges exception
-ranges execution
-ranges functional
ranges initializer_list
-ranges ios
ranges iosfwd
ranges iterator
ranges limits
-ranges locale
-ranges memory
-ranges mutex
ranges new
-ranges optional
-ranges ratio
-ranges span
-ranges stdexcept
-ranges streambuf
-ranges string
-ranges string_view
-ranges system_error
ranges tuple
ranges type_traits
ranges typeinfo
-ranges unordered_map
ranges utility
ranges variant
-ranges vector
ranges version
ratio climits
ratio cstdint
diff --git a/libcxx/test/libcxx/transitive_includes/cxx17.csv b/libcxx/test/libcxx/transitive_includes/cxx17.csv
index 2f908e7f78ec15..eaec25f81e5821 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx17.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx17.csv
@@ -571,12 +571,6 @@ exception typeinfo
exception version
execution cstddef
execution version
-expected cstddef
-expected cstdint
-expected cstdlib
-expected initializer_list
-expected new
-expected type_traits
expected version
experimental/iterator algorithm
experimental/iterator atomic
@@ -1364,53 +1358,6 @@ map utility
map variant
map vector
map version
-mdspan algorithm
-mdspan array
-mdspan atomic
-mdspan bit
-mdspan cctype
-mdspan cerrno
-mdspan cinttypes
-mdspan climits
-mdspan clocale
-mdspan cmath
-mdspan compare
-mdspan concepts
-mdspan cstdarg
-mdspan cstddef
-mdspan cstdint
-mdspan cstdio
-mdspan cstdlib
-mdspan cstring
-mdspan ctime
-mdspan cwchar
-mdspan cwctype
-mdspan exception
-mdspan functional
-mdspan initializer_list
-mdspan ios
-mdspan iosfwd
-mdspan iterator
-mdspan limits
-mdspan locale
-mdspan memory
-mdspan mutex
-mdspan new
-mdspan optional
-mdspan ratio
-mdspan span
-mdspan stdexcept
-mdspan streambuf
-mdspan string
-mdspan string_view
-mdspan system_error
-mdspan tuple
-mdspan type_traits
-mdspan typeinfo
-mdspan unordered_map
-mdspan utility
-mdspan variant
-mdspan vector
mdspan version
memory atomic
memory cctype
@@ -1796,52 +1743,28 @@ random utility
random variant
random vector
random version
-ranges algorithm
-ranges array
-ranges atomic
-ranges bit
ranges cctype
-ranges cerrno
-ranges climits
-ranges clocale
ranges cmath
ranges compare
ranges concepts
-ranges cstdarg
ranges cstddef
ranges cstdint
ranges cstdio
ranges cstdlib
ranges cstring
-ranges ctime
ranges cwchar
ranges cwctype
ranges exception
-ranges functional
ranges initializer_list
-ranges ios
ranges iosfwd
ranges iterator
ranges limits
-ranges locale
-ranges memory
-ranges mutex
ranges new
-ranges optional
-ranges ratio
-ranges span
-ranges stdexcept
-ranges streambuf
-ranges string
-ranges string_view
-ranges system_error
ranges tuple
ranges type_traits
ranges typeinfo
-ranges unordered_map
ranges utility
ranges variant
-ranges vector
ranges version
ratio climits
ratio cstdint
diff --git a/libcxx/test/libcxx/transitive_includes/cxx20.csv b/libcxx/test/libcxx/transitive_includes/cxx20.csv
index 1a198aa4562fdd..89c28e49d6c9de 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx20.csv
@@ -567,12 +567,6 @@ exception typeinfo
exception version
execution cstddef
execution version
-expected cstddef
-expected cstdint
-expected cstdlib
-expected initializer_list
-expected new
-expected type_traits
expected version
experimental/iterator algorithm
experimental/iterator atomic
@@ -1358,53 +1352,6 @@ map utility
map variant
map vector
map version
-mdspan algorithm
-mdspan array
-mdspan atomic
-mdspan bit
-mdspan cctype
-mdspan cerrno
-mdspan cinttypes
-mdspan climits
-mdspan clocale
-mdspan cmath
-mdspan compare
-mdspan concepts
-mdspan cstdarg
-mdspan cstddef
-mdspan cstdint
-mdspan cstdio
-mdspan cstdlib
-mdspan cstring
-mdspan ctime
-mdspan cwchar
-mdspan cwctype
-mdspan exception
-mdspan functional
-mdspan initializer_list
-mdspan ios
-mdspan iosfwd
-mdspan iterator
-mdspan limits
-mdspan locale
-mdspan memory
-mdspan mutex
-mdspan new
-mdspan optional
-mdspan ratio
-mdspan span
-mdspan stdexcept
-mdspan streambuf
-mdspan string
-mdspan string_view
-mdspan system_error
-mdspan tuple
-mdspan type_traits
-mdspan typeinfo
-mdspan unordered_map
-mdspan utility
-mdspan variant
-mdspan vector
mdspan version
memory atomic
memory cctype
More information about the libcxx-commits
mailing list