[libcxx-commits] [libcxx] e03a23b - [libc++] Cast 0 to `__locale_t` in `text_encoding.cpp` (#205882)

via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jun 25 21:00:17 PDT 2026


Author: William Tran-Viet
Date: 2026-06-26T12:00:12+08:00
New Revision: e03a23b2f9f43536ea2e724a078b76b870c5dabc

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

LOG: [libc++] Cast 0 to `__locale_t` in `text_encoding.cpp` (#205882)

- As mentioned
https://github.com/llvm/llvm-project/pull/141312#issuecomment-4799649766,
platforms which define `locale_t` as not a pointer fail would fail to
compile. This should fix the picolibc case.
- As an aside, also disable the `encoding.pass.cpp` test for llvm-libc
as that also uses `__get_locale_encoding()`

Added: 
    

Modified: 
    libcxx/src/text_encoding.cpp
    libcxx/test/std/localization/locales/locale/locale.members/encoding.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/src/text_encoding.cpp b/libcxx/src/text_encoding.cpp
index 871cf9b8b818b..0804c3457f1e6 100644
--- a/libcxx/src/text_encoding.cpp
+++ b/libcxx/src/text_encoding.cpp
@@ -31,7 +31,7 @@ static text_encoding __make_text_encoding(const char* __name) {
 
 std::text_encoding __get_locale_encoding(const char* __name) {
   if (__name == nullptr)
-    return __make_text_encoding(__locale::__get_locale_encoding(static_cast<__locale::__locale_t>(nullptr)));
+    return __make_text_encoding(__locale::__get_locale_encoding(static_cast<__locale::__locale_t>(0)));
 
   __locale::__locale_t __l = __locale::__newlocale(_LIBCPP_CTYPE_MASK, __name, static_cast<__locale::__locale_t>(0));
 

diff  --git a/libcxx/test/std/localization/locales/locale/locale.members/encoding.pass.cpp b/libcxx/test/std/localization/locales/locale/locale.members/encoding.pass.cpp
index 74ba547cf6619..ca1a41e115aec 100644
--- a/libcxx/test/std/localization/locales/locale/locale.members/encoding.pass.cpp
+++ b/libcxx/test/std/localization/locales/locale/locale.members/encoding.pass.cpp
@@ -12,6 +12,7 @@
 // REQUIRES: locale.en_US.UTF-8
 // UNSUPPORTED: no-localization
 // UNSUPPORTED: availability-te-environment-missing
+// UNSUPPORTED: LLVM-LIBC-FIXME
 
 // class locale
 


        


More information about the libcxx-commits mailing list