aboutsummaryrefslogtreecommitdiff
path: root/libcxx
diff options
context:
space:
mode:
authorNikolas Klauser <nikolasklauser@berlin.de>2022-12-23 00:23:30 +0100
committerNikolas Klauser <nikolasklauser@berlin.de>2023-01-21 15:09:21 +0100
commitfafed06b2ea985324b844fa1a90b50553c34914b (patch)
treeee0ddce41fed6b3d805d6fb930697b3b83ae2e50 /libcxx
parent987f08fe229c2d857b28f08b3b1ba149e1b16851 (diff)
downloadllvm-fafed06b2ea985324b844fa1a90b50553c34914b.zip
llvm-fafed06b2ea985324b844fa1a90b50553c34914b.tar.gz
llvm-fafed06b2ea985324b844fa1a90b50553c34914b.tar.bz2
[libc++] Granularize <type_traits> includes in <bit>, <numbers> and <coroutine>
`<coroutine>` seems to be new enough to not be a huge problem. Reviewed By: Mordante, #libc Spies: libcxx-commits, ChuanqiXu Differential Revision: https://reviews.llvm.org/D140600
Diffstat (limited to 'libcxx')
-rw-r--r--libcxx/include/__coroutine/coroutine_handle.h3
-rw-r--r--libcxx/include/__coroutine/coroutine_traits.h2
-rw-r--r--libcxx/include/__numeric/gcd_lcm.h6
-rw-r--r--libcxx/include/__numeric/midpoint.h12
-rw-r--r--libcxx/include/coroutine1
-rw-r--r--libcxx/include/numbers2
-rw-r--r--libcxx/include/numeric1
-rw-r--r--libcxx/test/libcxx/transitive_includes/cxx2b.csv3
-rw-r--r--libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.fail.cpp2
9 files changed, 22 insertions, 10 deletions
diff --git a/libcxx/include/__coroutine/coroutine_handle.h b/libcxx/include/__coroutine/coroutine_handle.h
index 8f7ed2e..0a6cc1c 100644
--- a/libcxx/include/__coroutine/coroutine_handle.h
+++ b/libcxx/include/__coroutine/coroutine_handle.h
@@ -13,8 +13,9 @@
#include <__config>
#include <__functional/hash.h>
#include <__memory/addressof.h>
+#include <__type_traits/remove_cv.h>
#include <compare>
-#include <type_traits>
+#include <cstddef>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__coroutine/coroutine_traits.h b/libcxx/include/__coroutine/coroutine_traits.h
index 87eb218..d513075 100644
--- a/libcxx/include/__coroutine/coroutine_traits.h
+++ b/libcxx/include/__coroutine/coroutine_traits.h
@@ -10,7 +10,7 @@
#define _LIBCPP___COROUTINE_COROUTINE_TRAITS_H
#include <__config>
-#include <type_traits>
+#include <__type_traits/void_t.h>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__numeric/gcd_lcm.h b/libcxx/include/__numeric/gcd_lcm.h
index b3d776b..5a3f81b 100644
--- a/libcxx/include/__numeric/gcd_lcm.h
+++ b/libcxx/include/__numeric/gcd_lcm.h
@@ -12,8 +12,12 @@
#include <__assert>
#include <__config>
+#include <__type_traits/common_type.h>
+#include <__type_traits/is_integral.h>
+#include <__type_traits/is_same.h>
+#include <__type_traits/is_signed.h>
+#include <__type_traits/make_unsigned.h>
#include <limits>
-#include <type_traits>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/__numeric/midpoint.h b/libcxx/include/__numeric/midpoint.h
index ada6adf..bac3642 100644
--- a/libcxx/include/__numeric/midpoint.h
+++ b/libcxx/include/__numeric/midpoint.h
@@ -11,8 +11,18 @@
#define _LIBCPP___NUMERIC_MIDPOINT_H
#include <__config>
+#include <__type_traits/enable_if.h>
+#include <__type_traits/is_floating_point.h>
+#include <__type_traits/is_integral.h>
+#include <__type_traits/is_null_pointer.h>
+#include <__type_traits/is_object.h>
+#include <__type_traits/is_pointer.h>
+#include <__type_traits/is_same.h>
+#include <__type_traits/is_void.h>
+#include <__type_traits/make_unsigned.h>
+#include <__type_traits/remove_pointer.h>
+#include <cstddef>
#include <limits>
-#include <type_traits>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/libcxx/include/coroutine b/libcxx/include/coroutine
index e0ce323..f264570 100644
--- a/libcxx/include/coroutine
+++ b/libcxx/include/coroutine
@@ -57,6 +57,7 @@ struct suspend_always;
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <iosfwd>
+# include <type_traits>
#endif
#endif // _LIBCPP_COROUTINE
diff --git a/libcxx/include/numbers b/libcxx/include/numbers
index 1d9b6b0..72034a6 100644
--- a/libcxx/include/numbers
+++ b/libcxx/include/numbers
@@ -61,7 +61,6 @@ namespace std::numbers {
#include <__assert> // all public C++ headers provide the assertion handler
#include <__concepts/arithmetic.h>
#include <__config>
-#include <type_traits>
#include <version>
#if _LIBCPP_STD_VER > 17
@@ -133,6 +132,7 @@ _LIBCPP_END_NAMESPACE_STD
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
# include <concepts>
+# include <type_traits>
#endif
#endif // _LIBCPP_NUMBERS
diff --git a/libcxx/include/numeric b/libcxx/include/numeric
index 2fb6f9e..100dbe1 100644
--- a/libcxx/include/numeric
+++ b/libcxx/include/numeric
@@ -175,6 +175,7 @@ template<class T>
# include <concepts>
# include <functional>
# include <iterator>
+# include <type_traits>
#endif
#endif // _LIBCPP_NUMERIC
diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b.csv b/libcxx/test/libcxx/transitive_includes/cxx2b.csv
index 186d0b4..23cc6d7 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b.csv
@@ -138,7 +138,6 @@ coroutine cstddef
coroutine cstdint
coroutine cstring
coroutine limits
-coroutine type_traits
coroutine version
cstddef version
ctgmath ccomplex
@@ -452,12 +451,10 @@ new cstddef
new cstdlib
new exception
new version
-numbers type_traits
numbers version
numeric cmath
numeric cstddef
numeric limits
-numeric type_traits
numeric version
optional compare
optional cstddef
diff --git a/libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.fail.cpp b/libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.fail.cpp
index 962291d..fab7d78 100644
--- a/libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.fail.cpp
+++ b/libcxx/test/std/numerics/bit/bit.pow.two/bit_ceil.fail.cpp
@@ -20,8 +20,6 @@
#include <cstdint>
#include <limits>
-#include "test_macros.h"
-
class A{};
enum E1 : unsigned char { rEd };
enum class E2 : unsigned char { red };