[libcxx-commits] [libcxx] 26ee552 - [libc++] Fix includes in `<string>` for no-`wchar_t` modes (#187650)

via libcxx-commits libcxx-commits at lists.llvm.org
Sun Mar 22 05:29:30 PDT 2026


Author: A. Jiang
Date: 2026-03-22T20:29:25+08:00
New Revision: 26ee552ef583c47977026285aa684da5d4c53a2d

URL: https://github.com/llvm/llvm-project/commit/26ee552ef583c47977026285aa684da5d4c53a2d
DIFF: https://github.com/llvm/llvm-project/commit/26ee552ef583c47977026285aa684da5d4c53a2d.diff

LOG: [libc++] Fix includes in `<string>` for no-`wchar_t` modes (#187650)

Since befaa35212dbaac39cd76a8dc748e4df7c90a0d9, the CI stably failed for
the generic-no-wide-characters build, because in no-`wchar_t` modes, the
header for `__remove_cv_t` wasn't properly included.

This PR adds the missing include of `<__type_traits/remove_cv.h>`.

As drive-by, `<__cstddef/size_t.h>` and
`<__type_traits/is_constant_evaluated.h>`, which are included by
`<cwchar>`, are also made included by `<string>` to avoid potential
regression as we're using `size_t` and
`__libcpp_is_constant_evaluated()` in `<string>`.

Added: 
    

Modified: 
    libcxx/include/string

Removed: 
    


################################################################################
diff  --git a/libcxx/include/string b/libcxx/include/string
index fc14e27787944..0c8767df2cdd2 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -597,6 +597,7 @@ basic_string<char32_t> operator""s( const char32_t *str, size_t len );
 #  include <__algorithm/remove_if.h>
 #  include <__assert>
 #  include <__config>
+#  include <__cstddef/size_t.h>
 #  include <__debug_utils/sanitizers.h>
 #  include <__format/enable_insertable.h>
 #  include <__functional/hash.h>
@@ -629,6 +630,7 @@ basic_string<char32_t> operator""s( const char32_t *str, size_t len );
 #  include <__type_traits/enable_if.h>
 #  include <__type_traits/is_allocator.h>
 #  include <__type_traits/is_array.h>
+#  include <__type_traits/is_constant_evaluated.h>
 #  include <__type_traits/is_convertible.h>
 #  include <__type_traits/is_generic_transparent_comparator.h>
 #  include <__type_traits/is_nothrow_assignable.h>
@@ -638,6 +640,7 @@ basic_string<char32_t> operator""s( const char32_t *str, size_t len );
 #  include <__type_traits/is_trivially_constructible.h>
 #  include <__type_traits/is_trivially_copyable.h>
 #  include <__type_traits/is_trivially_relocatable.h>
+#  include <__type_traits/remove_cv.h>
 #  include <__type_traits/remove_cvref.h>
 #  include <__utility/default_three_way_comparator.h>
 #  include <__utility/exception_guard.h>


        


More information about the libcxx-commits mailing list