From 156ab8750056c3ff440af0937806d8cdb2623816 Mon Sep 17 00:00:00 2001 From: Alex Rønne Petersen Date: Wed, 5 Feb 2025 10:50:09 +0100 Subject: libcxx: Update to Clang 20. See: * https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc/77319 * https://discourse.llvm.org/t/rfc-project-hand-in-hand-llvm-libc-libc-code-sharing/77701 We're dropping support for C++03 for Zig due to the first change; it would be insane to ship 1018 duplicate header files just for this outdated use case. As a result of the second change, I had to bring in a subset of the headers from llvm-libc since libc++ now depends on these. Hopefully we can continue to get away with not copying the entirety of llvm-libc. --- lib/libcxx/include/iterator | 139 +++++++++++++++++++++++--------------------- 1 file changed, 72 insertions(+), 67 deletions(-) (limited to 'lib/libcxx/include/iterator') diff --git a/lib/libcxx/include/iterator b/lib/libcxx/include/iterator index fca75f0a19..74ee712b94 100644 --- a/lib/libcxx/include/iterator +++ b/lib/libcxx/include/iterator @@ -679,76 +679,81 @@ template constexpr const E* data(initializer_list il) noexcept; */ -#include <__config> -#include <__iterator/access.h> -#include <__iterator/advance.h> -#include <__iterator/back_insert_iterator.h> -#include <__iterator/distance.h> -#include <__iterator/front_insert_iterator.h> -#include <__iterator/insert_iterator.h> -#include <__iterator/istream_iterator.h> -#include <__iterator/istreambuf_iterator.h> -#include <__iterator/iterator.h> -#include <__iterator/iterator_traits.h> -#include <__iterator/move_iterator.h> -#include <__iterator/next.h> -#include <__iterator/ostream_iterator.h> -#include <__iterator/ostreambuf_iterator.h> -#include <__iterator/prev.h> -#include <__iterator/reverse_iterator.h> -#include <__iterator/wrap_iter.h> - -#if _LIBCPP_STD_VER >= 14 -# include <__iterator/reverse_access.h> -#endif - -#if _LIBCPP_STD_VER >= 17 -# include <__iterator/data.h> -# include <__iterator/empty.h> -# include <__iterator/size.h> -#endif - -#if _LIBCPP_STD_VER >= 20 -# include <__iterator/common_iterator.h> -# include <__iterator/concepts.h> -# include <__iterator/counted_iterator.h> -# include <__iterator/default_sentinel.h> -# include <__iterator/incrementable_traits.h> -# include <__iterator/indirectly_comparable.h> -# include <__iterator/iter_move.h> -# include <__iterator/iter_swap.h> -# include <__iterator/mergeable.h> -# include <__iterator/move_sentinel.h> -# include <__iterator/permutable.h> -# include <__iterator/projected.h> -# include <__iterator/readable_traits.h> -# include <__iterator/sortable.h> -# include <__iterator/unreachable_sentinel.h> -#endif - -#include +#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) +# include <__cxx03/iterator> +#else +# include <__config> +# include <__iterator/access.h> +# include <__iterator/advance.h> +# include <__iterator/back_insert_iterator.h> +# include <__iterator/distance.h> +# include <__iterator/front_insert_iterator.h> +# include <__iterator/insert_iterator.h> +# include <__iterator/istream_iterator.h> +# include <__iterator/istreambuf_iterator.h> +# include <__iterator/iterator.h> +# include <__iterator/iterator_traits.h> +# include <__iterator/move_iterator.h> +# include <__iterator/next.h> +# include <__iterator/ostream_iterator.h> +# include <__iterator/ostreambuf_iterator.h> +# include <__iterator/prev.h> +# include <__iterator/reverse_iterator.h> +# include <__iterator/wrap_iter.h> + +# if _LIBCPP_STD_VER >= 14 +# include <__iterator/reverse_access.h> +# endif + +# if _LIBCPP_STD_VER >= 17 +# include <__iterator/data.h> +# include <__iterator/empty.h> +# include <__iterator/size.h> +# endif + +# if _LIBCPP_STD_VER >= 20 +# include <__iterator/common_iterator.h> +# include <__iterator/concepts.h> +# include <__iterator/counted_iterator.h> +# include <__iterator/default_sentinel.h> +# include <__iterator/incrementable_traits.h> +# include <__iterator/indirectly_comparable.h> +# include <__iterator/iter_move.h> +# include <__iterator/iter_swap.h> +# include <__iterator/mergeable.h> +# include <__iterator/move_sentinel.h> +# include <__iterator/permutable.h> +# include <__iterator/projected.h> +# include <__iterator/readable_traits.h> +# include <__iterator/sortable.h> +# include <__iterator/unreachable_sentinel.h> +# endif + +# include // standard-mandated includes // [iterator.synopsis] -#include -#include - -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif - -#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 -# include -#endif - -#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 -# include -# include -# include -# include -# include -# include -#endif +# include +# include + +# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +# endif + +# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17 +# include +# endif + +# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include +# include +# include +# include +# include +# include +# include +# endif +#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) #endif // _LIBCPP_ITERATOR -- cgit v1.2.3