--- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -742,7 +742,11 @@ __num_get_signed_integral(const char* __a, const char* __a_end, typename remove_reference::type __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 typename remove_reference::type __current_errno = errno; if (__current_errno == 0) errno = __save_errno; @@ -782,7 +786,11 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end, typename remove_reference::type __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 typename remove_reference::type __current_errno = errno; if (__current_errno == 0) errno = __save_errno;