diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt --- a/libcxx/include/CMakeLists.txt +++ b/libcxx/include/CMakeLists.txt @@ -555,7 +555,6 @@ __ranges/views.h __ranges/zip_view.h __split_buffer - __std_stream __string/char_traits.h __string/constexpr_c_functions.h __string/extern_template_lists.h diff --git a/libcxx/include/libcxx.imp b/libcxx/include/libcxx.imp --- a/libcxx/include/libcxx.imp +++ b/libcxx/include/libcxx.imp @@ -8,7 +8,6 @@ { include: [ "<__node_handle>", "private", "", "public" ] }, { include: [ "<__split_buffer>", "private", "", "public" ] }, { include: [ "<__split_buffer>", "private", "", "public" ] }, - { include: [ "<__std_stream>", "private", "", "public" ] }, { include: [ "<__threading_support>", "private", "", "public" ] }, { include: [ "<__threading_support>", "private", "", "public" ] }, { include: [ "<__threading_support>", "private", "", "public" ] }, diff --git a/libcxx/include/memory b/libcxx/include/memory --- a/libcxx/include/memory +++ b/libcxx/include/memory @@ -881,6 +881,7 @@ #include <__config> #include <__memory/addressof.h> #include <__memory/align.h> +#include <__memory/aligned_alloc.h> #include <__memory/allocate_at_least.h> #include <__memory/allocation_guard.h> #include <__memory/allocator.h> diff --git a/libcxx/include/module.modulemap.in b/libcxx/include/module.modulemap.in --- a/libcxx/include/module.modulemap.in +++ b/libcxx/include/module.modulemap.in @@ -1675,10 +1675,6 @@ module __mutex_base { private header "__mutex_base" export * } module __node_handle { private header "__node_handle" export * } module __split_buffer { private header "__split_buffer" export * } - module __std_stream { - @requires_LIBCXX_ENABLE_LOCALIZATION@ - private header "__std_stream" export * - } module __threading_support { header "__threading_support" export * } module __tree { header "__tree" export * } module __undef_macros { header "__undef_macros" export * } diff --git a/libcxx/src/filesystem/operations.cpp b/libcxx/src/filesystem/operations.cpp --- a/libcxx/src/filesystem/operations.cpp +++ b/libcxx/src/filesystem/operations.cpp @@ -7,7 +7,6 @@ //===----------------------------------------------------------------------===// #include <__assert> -#include <__utility/unreachable.h> #include #include #include @@ -15,6 +14,7 @@ #include #include #include +#include #include #include "filesystem_common.h" diff --git a/libcxx/src/include/ryu/digit_table.h b/libcxx/src/include/ryu/digit_table.h --- a/libcxx/src/include/ryu/digit_table.h +++ b/libcxx/src/include/ryu/digit_table.h @@ -39,8 +39,8 @@ #ifndef _LIBCPP_SRC_INCLUDE_RYU_DIGIT_TABLE_H #define _LIBCPP_SRC_INCLUDE_RYU_DIGIT_TABLE_H -#include <__charconv/tables.h> #include <__config> +#include _LIBCPP_BEGIN_NAMESPACE_STD diff --git a/libcxx/src/include/ryu/ryu.h b/libcxx/src/include/ryu/ryu.h --- a/libcxx/src/include/ryu/ryu.h +++ b/libcxx/src/include/ryu/ryu.h @@ -44,13 +44,12 @@ // Avoid formatting to keep the changes with the original code minimal. // clang-format off -#include <__charconv/chars_format.h> -#include <__charconv/to_chars_result.h> #include <__config> #include <__debug> -#include <__errc> +#include #include #include +#include #include #include "include/ryu/f2s.h" diff --git a/libcxx/include/__std_stream b/libcxx/src/include/std_stream.h rename from libcxx/include/__std_stream rename to libcxx/src/include/std_stream.h diff --git a/libcxx/src/include/to_chars_floating_point.h b/libcxx/src/include/to_chars_floating_point.h --- a/libcxx/src/include/to_chars_floating_point.h +++ b/libcxx/src/include/to_chars_floating_point.h @@ -17,18 +17,14 @@ // Avoid formatting to keep the changes with the original code minimal. // clang-format off -#include <__algorithm/find.h> -#include <__algorithm/find_if.h> -#include <__algorithm/lower_bound.h> -#include <__algorithm/min.h> +#include #include <__assert> #include <__config> -#include <__functional/operations.h> -#include <__iterator/access.h> -#include <__iterator/size.h> #include #include #include +#include +#include #include "include/ryu/ryu.h" diff --git a/libcxx/src/ios.cpp b/libcxx/src/ios.cpp --- a/libcxx/src/ios.cpp +++ b/libcxx/src/ios.cpp @@ -7,7 +7,6 @@ //===----------------------------------------------------------------------===// #include <__config> -#include <__locale> #include #include #include diff --git a/libcxx/src/iostream.cpp b/libcxx/src/iostream.cpp --- a/libcxx/src/iostream.cpp +++ b/libcxx/src/iostream.cpp @@ -6,11 +6,11 @@ // //===----------------------------------------------------------------------===// -#include <__locale> -#include <__std_stream> #include #include +#include "include/std_stream.h" + #define _str(s) #s #define str(s) _str(s) #define _LIBCPP_ABI_NAMESPACE_STR str(_LIBCPP_ABI_NAMESPACE) diff --git a/libcxx/src/legacy_pointer_safety.cpp b/libcxx/src/legacy_pointer_safety.cpp --- a/libcxx/src/legacy_pointer_safety.cpp +++ b/libcxx/src/legacy_pointer_safety.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// #include <__config> +#include #include // Support for garbage collection was removed in C++23 by https://wg21.link/P2186R2. Libc++ implements diff --git a/libcxx/src/locale.cpp b/libcxx/src/locale.cpp --- a/libcxx/src/locale.cpp +++ b/libcxx/src/locale.cpp @@ -12,7 +12,7 @@ #define _LCONV_C99 #endif -#include <__utility/unreachable.h> +#include #include #include #include diff --git a/libcxx/src/memory.cpp b/libcxx/src/memory.cpp --- a/libcxx/src/memory.cpp +++ b/libcxx/src/memory.cpp @@ -12,6 +12,7 @@ #endif #include +#include #ifndef _LIBCPP_HAS_NO_THREADS # include diff --git a/libcxx/src/new.cpp b/libcxx/src/new.cpp --- a/libcxx/src/new.cpp +++ b/libcxx/src/new.cpp @@ -6,7 +6,7 @@ // //===----------------------------------------------------------------------===// -#include <__memory/aligned_alloc.h> +#include #include #include diff --git a/libcxx/src/optional.cpp b/libcxx/src/optional.cpp --- a/libcxx/src/optional.cpp +++ b/libcxx/src/optional.cpp @@ -6,7 +6,6 @@ // //===----------------------------------------------------------------------===// -#include <__availability> #include namespace std diff --git a/libcxx/src/strstream.cpp b/libcxx/src/strstream.cpp --- a/libcxx/src/strstream.cpp +++ b/libcxx/src/strstream.cpp @@ -7,12 +7,12 @@ //===----------------------------------------------------------------------===// #include <__assert> -#include <__utility/unreachable.h> #include #include #include #include #include +#include _LIBCPP_PUSH_MACROS #include <__undef_macros> diff --git a/libcxx/test/libcxx/private_headers.verify.cpp b/libcxx/test/libcxx/private_headers.verify.cpp --- a/libcxx/test/libcxx/private_headers.verify.cpp +++ b/libcxx/test/libcxx/private_headers.verify.cpp @@ -586,7 +586,6 @@ #include <__ranges/views.h> // expected-error@*:* {{use of private header from outside its module: '__ranges/views.h'}} #include <__ranges/zip_view.h> // expected-error@*:* {{use of private header from outside its module: '__ranges/zip_view.h'}} #include <__split_buffer> // expected-error@*:* {{use of private header from outside its module: '__split_buffer'}} -#include <__std_stream> // expected-error@*:* {{use of private header from outside its module: '__std_stream'}} #include <__string/char_traits.h> // expected-error@*:* {{use of private header from outside its module: '__string/char_traits.h'}} #include <__string/constexpr_c_functions.h> // expected-error@*:* {{use of private header from outside its module: '__string/constexpr_c_functions.h'}} #include <__string/extern_template_lists.h> // expected-error@*:* {{use of private header from outside its module: '__string/extern_template_lists.h'}} 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 @@ -162,10 +162,19 @@ expected initializer_list expected new expected version +experimental/algorithm algorithm +experimental/algorithm cstddef +experimental/algorithm type_traits experimental/deque deque experimental/deque experimental/memory_resource experimental/forward_list experimental/memory_resource experimental/forward_list forward_list +experimental/functional array +experimental/functional cstddef +experimental/functional functional +experimental/functional type_traits +experimental/functional unordered_map +experimental/functional vector experimental/iterator cstddef experimental/iterator iosfwd experimental/iterator iterator diff --git a/libcxx/utils/data/ignore_format.txt b/libcxx/utils/data/ignore_format.txt --- a/libcxx/utils/data/ignore_format.txt +++ b/libcxx/utils/data/ignore_format.txt @@ -603,7 +603,6 @@ libcxx/include/stdint.h libcxx/include/stdio.h libcxx/include/stdlib.h -libcxx/include/__std_stream libcxx/include/streambuf libcxx/include/string libcxx/include/__string/char_traits.h diff --git a/libcxx/utils/generate_iwyu_mapping.py b/libcxx/utils/generate_iwyu_mapping.py --- a/libcxx/utils/generate_iwyu_mapping.py +++ b/libcxx/utils/generate_iwyu_mapping.py @@ -53,7 +53,6 @@ elif i == '__mutex_base': continue elif i == '__node_handle': public = ['map', 'set', 'unordered_map', 'unordered_set'] elif i == '__split_buffer': public = ['deque', 'vector'] - elif i == '__std_stream': public = ['iostream'] elif i == '__threading_support': public = ['atomic', 'mutex', 'semaphore', 'thread'] elif i == '__tree': public = ['map', 'set'] elif i == '__undef_macros': continue diff --git a/libcxxabi/src/cxa_default_handlers.cpp b/libcxxabi/src/cxa_default_handlers.cpp --- a/libcxxabi/src/cxa_default_handlers.cpp +++ b/libcxxabi/src/cxa_default_handlers.cpp @@ -11,6 +11,7 @@ #include #include +#include #include #include "abort_message.h" #include "cxxabi.h" diff --git a/libcxxabi/src/fallback_malloc.cpp b/libcxxabi/src/fallback_malloc.cpp --- a/libcxxabi/src/fallback_malloc.cpp +++ b/libcxxabi/src/fallback_malloc.cpp @@ -15,8 +15,9 @@ #endif #endif -#include <__memory/aligned_alloc.h> #include +#include +#include #include // for malloc, calloc, free #include // for memset