From f00136016c245d43aec97a2770a6dc2c263d0467 Mon Sep 17 00:00:00 2001 From: Nikolas Klauser Date: Sat, 24 Feb 2024 14:47:48 +0100 Subject: [PATCH] [libc++] Remove unnecessary includes from --- libcxx/include/__atomic/aliases.h | 1 - libcxx/include/__config | 5 +++++ libcxx/include/__thread/support/pthread.h | 5 ++++- libcxx/include/atomic | 1 + libcxx/test/libcxx/transitive_includes/cxx23.csv | 1 - libcxx/test/libcxx/transitive_includes/cxx26.csv | 1 - 6 files changed, 10 insertions(+), 4 deletions(-) diff --git a/libcxx/include/__atomic/aliases.h b/libcxx/include/__atomic/aliases.h index 0fa289de54b0f1..a87099802737aa 100644 --- a/libcxx/include/__atomic/aliases.h +++ b/libcxx/include/__atomic/aliases.h @@ -18,7 +18,6 @@ #include <__type_traits/make_unsigned.h> #include #include -#include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__config b/libcxx/include/__config index 0797880cb2f5da..2035bb1ca61840 100644 --- a/libcxx/include/__config +++ b/libcxx/include/__config @@ -460,6 +460,11 @@ _LIBCPP_HARDENING_MODE_DEBUG # define __has_constexpr_builtin(x) 0 # endif +// This checks wheter a Clang module is built +# ifndef __building_module +# define __building_module(...) 0 +# endif + // '__is_identifier' returns '0' if '__x' is a reserved identifier provided by // the compiler and '1' otherwise. # ifndef __is_identifier diff --git a/libcxx/include/__thread/support/pthread.h b/libcxx/include/__thread/support/pthread.h index d0b8367e448f48..d8e3f938ddf629 100644 --- a/libcxx/include/__thread/support/pthread.h +++ b/libcxx/include/__thread/support/pthread.h @@ -30,7 +30,10 @@ // so libc++'s usually absorbs atomic_wide_counter.h into the // module with and makes atomic_wide_counter.h invisible. // Include here to work around that. -#include +// This checks wheter a Clang module is built +#if __building_module(std) +# include +#endif #ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER # pragma GCC system_header diff --git a/libcxx/include/atomic b/libcxx/include/atomic index 2e8f5b521a55eb..2dac69377b77f0 100644 --- a/libcxx/include/atomic +++ b/libcxx/include/atomic @@ -620,6 +620,7 @@ template #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include +# include # include # include #endif diff --git a/libcxx/test/libcxx/transitive_includes/cxx23.csv b/libcxx/test/libcxx/transitive_includes/cxx23.csv index 44b5f78beea48b..49b3ac265487d7 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx23.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx23.csv @@ -30,7 +30,6 @@ array stdexcept array version atomic cstddef atomic cstdint -atomic cstdlib atomic cstring atomic ctime atomic limits diff --git a/libcxx/test/libcxx/transitive_includes/cxx26.csv b/libcxx/test/libcxx/transitive_includes/cxx26.csv index 44b5f78beea48b..49b3ac265487d7 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx26.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx26.csv @@ -30,7 +30,6 @@ array stdexcept array version atomic cstddef atomic cstdint -atomic cstdlib atomic cstring atomic ctime atomic limits