From b5bc528c140f6dab6600a64c020cdbf6003e4d35 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Mon, 18 Nov 2024 17:03:29 +0800 Subject: [PATCH] [libc++] Guard `__pad_and_output` with `_LIBCPP_HAS_LOCALIZATION` (#116580) This fixes errors for no-localization builds (possibly introduced by #116223). --- libcxx/include/__iterator/ostreambuf_iterator.h | 2 ++ libcxx/include/__locale_dir/pad_and_output.h | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libcxx/include/__iterator/ostreambuf_iterator.h b/libcxx/include/__iterator/ostreambuf_iterator.h index 621ffd4f988c..f00449355e4e 100644 --- a/libcxx/include/__iterator/ostreambuf_iterator.h +++ b/libcxx/include/__iterator/ostreambuf_iterator.h @@ -65,9 +65,11 @@ public: _LIBCPP_HIDE_FROM_ABI ostreambuf_iterator& operator++(int) { return *this; } _LIBCPP_HIDE_FROM_ABI bool failed() const _NOEXCEPT { return __sbuf_ == nullptr; } +#if _LIBCPP_HAS_LOCALIZATION template friend _LIBCPP_HIDE_FROM_ABI ostreambuf_iterator<_Ch, _Tr> __pad_and_output( ostreambuf_iterator<_Ch, _Tr> __s, const _Ch* __ob, const _Ch* __op, const _Ch* __oe, ios_base& __iob, _Ch __fl); +#endif // _LIBCPP_HAS_LOCALIZATION }; _LIBCPP_END_NAMESPACE_STD diff --git a/libcxx/include/__locale_dir/pad_and_output.h b/libcxx/include/__locale_dir/pad_and_output.h index c35c5df90801..a1cb37d0786d 100644 --- a/libcxx/include/__locale_dir/pad_and_output.h +++ b/libcxx/include/__locale_dir/pad_and_output.h @@ -10,11 +10,14 @@ #define _LIBCPP___LOCALE_DIR_PAD_AND_OUTPUT_H #include <__config> -#include -#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) -# pragma GCC system_header -#endif +#if _LIBCPP_HAS_LOCALIZATION + +# include + +# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +# endif _LIBCPP_BEGIN_NAMESPACE_STD @@ -80,4 +83,6 @@ _LIBCPP_HIDE_FROM_ABI ostreambuf_iterator<_CharT, _Traits> __pad_and_output( _LIBCPP_END_NAMESPACE_STD +#endif // _LIBCPP_HAS_LOCALIZATION + #endif // _LIBCPP___LOCALE_DIR_PAD_AND_OUTPUT_H