diff --git a/libcxx/include/__chrono/duration.h b/libcxx/include/__chrono/duration.h --- a/libcxx/include/__chrono/duration.h +++ b/libcxx/include/__chrono/duration.h @@ -11,9 +11,12 @@ #define _LIBCPP___CHRONO_DURATION_H #include <__config> +#include <__type_traits/common_type.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/is_convertible.h> +#include <__type_traits/is_floating_point.h> #include #include -#include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -612,4 +615,8 @@ _LIBCPP_POP_MACROS +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include +#endif + #endif // _LIBCPP___CHRONO_DURATION_H diff --git a/libcxx/include/__chrono/time_point.h b/libcxx/include/__chrono/time_point.h --- a/libcxx/include/__chrono/time_point.h +++ b/libcxx/include/__chrono/time_point.h @@ -12,8 +12,10 @@ #include <__chrono/duration.h> #include <__config> +#include <__type_traits/common_type.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/is_convertible.h> #include -#include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/atomic b/libcxx/include/atomic --- a/libcxx/include/atomic +++ b/libcxx/include/atomic @@ -524,10 +524,19 @@ #include <__config> #include <__thread/poll_with_backoff.h> #include <__thread/timed_backoff_policy.h> +#include <__type_traits/conditional.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_assignable.h> +#include <__type_traits/is_function.h> +#include <__type_traits/is_nothrow_default_constructible.h> +#include <__type_traits/is_same.h> +#include <__type_traits/is_trivially_copyable.h> +#include <__type_traits/remove_const.h> +#include <__type_traits/remove_pointer.h> +#include <__type_traits/underlying_type.h> #include #include #include -#include #include #ifndef _LIBCPP_HAS_NO_THREADS @@ -2658,6 +2667,7 @@ #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include # include +# include #endif #endif // _LIBCPP_ATOMIC diff --git a/libcxx/include/ratio b/libcxx/include/ratio --- a/libcxx/include/ratio +++ b/libcxx/include/ratio @@ -79,9 +79,9 @@ #include <__assert> // all public C++ headers provide the assertion handler #include <__config> +#include <__type_traits/integral_constant.h> #include #include -#include #include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) @@ -525,4 +525,8 @@ _LIBCPP_POP_MACROS +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include +#endif + #endif // _LIBCPP_RATIO diff --git a/libcxx/test/libcxx/transitive_includes/cxx03.csv b/libcxx/test/libcxx/transitive_includes/cxx03.csv --- a/libcxx/test/libcxx/transitive_includes/cxx03.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx03.csv @@ -722,6 +722,7 @@ scoped_allocator variant scoped_allocator version semaphore atomic +semaphore cstddef semaphore ctime semaphore iosfwd semaphore limits diff --git a/libcxx/test/libcxx/transitive_includes/cxx11.csv b/libcxx/test/libcxx/transitive_includes/cxx11.csv --- a/libcxx/test/libcxx/transitive_includes/cxx11.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx11.csv @@ -723,6 +723,7 @@ scoped_allocator variant scoped_allocator version semaphore atomic +semaphore cstddef semaphore ctime semaphore iosfwd semaphore limits diff --git a/libcxx/test/libcxx/transitive_includes/cxx14.csv b/libcxx/test/libcxx/transitive_includes/cxx14.csv --- a/libcxx/test/libcxx/transitive_includes/cxx14.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx14.csv @@ -725,6 +725,7 @@ scoped_allocator variant scoped_allocator version semaphore atomic +semaphore cstddef semaphore ctime semaphore iosfwd semaphore limits @@ -745,6 +746,7 @@ set tuple set type_traits set version +shared_mutex cstddef shared_mutex ctime shared_mutex iosfwd shared_mutex limits diff --git a/libcxx/test/libcxx/transitive_includes/cxx17.csv b/libcxx/test/libcxx/transitive_includes/cxx17.csv --- a/libcxx/test/libcxx/transitive_includes/cxx17.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx17.csv @@ -725,6 +725,7 @@ scoped_allocator variant scoped_allocator version semaphore atomic +semaphore cstddef semaphore ctime semaphore iosfwd semaphore limits @@ -745,6 +746,7 @@ set tuple set type_traits set version +shared_mutex cstddef shared_mutex ctime shared_mutex iosfwd shared_mutex limits diff --git a/libcxx/test/libcxx/transitive_includes/cxx20.csv b/libcxx/test/libcxx/transitive_includes/cxx20.csv --- a/libcxx/test/libcxx/transitive_includes/cxx20.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx20.csv @@ -732,6 +732,7 @@ scoped_allocator variant scoped_allocator version semaphore atomic +semaphore cstddef semaphore ctime semaphore iosfwd semaphore limits @@ -752,6 +753,7 @@ set tuple set type_traits set version +shared_mutex cstddef shared_mutex ctime shared_mutex iosfwd shared_mutex limits diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b.csv b/libcxx/test/libcxx/transitive_includes/cxx2b.csv --- a/libcxx/test/libcxx/transitive_includes/cxx2b.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx2b.csv @@ -36,7 +36,6 @@ atomic iosfwd atomic limits atomic ratio -atomic type_traits atomic version barrier atomic barrier cstddef @@ -47,7 +46,6 @@ barrier limits barrier new barrier ratio -barrier type_traits bit cstdint bit cstdlib bit limits @@ -333,7 +331,6 @@ future ratio future system_error future thread -future type_traits future version initializer_list cstddef iomanip istream @@ -522,7 +519,6 @@ ranges version ratio climits ratio cstdint -ratio type_traits ratio version regex cctype regex compare @@ -545,11 +541,11 @@ scoped_allocator tuple scoped_allocator version semaphore atomic +semaphore cstddef semaphore ctime semaphore iosfwd semaphore limits semaphore ratio -semaphore type_traits semaphore version set compare set cstddef @@ -562,12 +558,12 @@ set tuple set type_traits set version +shared_mutex cstddef shared_mutex ctime shared_mutex iosfwd shared_mutex limits shared_mutex ratio shared_mutex system_error -shared_mutex type_traits shared_mutex version source_location cstdint source_location version diff --git a/libcxx/test/std/atomics/atomics.types.generic/constexpr_noexcept.compile.pass.cpp b/libcxx/test/std/atomics/atomics.types.generic/constexpr_noexcept.compile.pass.cpp --- a/libcxx/test/std/atomics/atomics.types.generic/constexpr_noexcept.compile.pass.cpp +++ b/libcxx/test/std/atomics/atomics.types.generic/constexpr_noexcept.compile.pass.cpp @@ -9,6 +9,7 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 #include +#include #include "test_macros.h"