[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