From 37a8c7818c4407b6d56ffe14f6f12c53b559f18b Mon Sep 17 00:00:00 2001 From: q66 Date: Sun, 14 Apr 2024 14:45:36 +0200 Subject: [PATCH 13/30] libc++: musl locale workarounds --- libcxx/include/locale | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libcxx/include/locale b/libcxx/include/locale index 573910a85..7d610b584 100644 --- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -727,7 +727,11 @@ __num_get_signed_integral(const char* __a, const char* __a_end, ios_base::iostat __libcpp_remove_reference_t __save_errno = errno; errno = 0; char* __p2; +#if defined(__linux__) && !defined(__GLIBC__) + long long __ll = strtoll(__a, &__p2, __base); +#else long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); +#endif __libcpp_remove_reference_t __current_errno = errno; if (__current_errno == 0) errno = __save_errno; @@ -759,7 +763,11 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end, ios_base::iost __libcpp_remove_reference_t __save_errno = errno; errno = 0; char* __p2; +#if defined(__linux__) && !defined(__GLIBC__) + unsigned long long __ll = strtoull(__a, &__p2, __base); +#else unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE); +#endif __libcpp_remove_reference_t __current_errno = errno; if (__current_errno == 0) errno = __save_errno; -- 2.47.0