[libcxx-commits] [libcxx] [libc++] Remove dead code from the locale base API and support code (PR #89070)
Nikolas Klauser via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Jul 5 04:11:43 PDT 2024
https://github.com/philnik777 updated https://github.com/llvm/llvm-project/pull/89070
>From fdc6f50841d2932427c0b41e7157d0dd424c62e5 Mon Sep 17 00:00:00 2001
From: Nikolas Klauser <nikolasklauser at berlin.de>
Date: Wed, 17 Apr 2024 15:21:08 +0200
Subject: [PATCH] [libc++] Remove dead code from the locale base API and
support code
---
libcxx/include/__locale_dir/locale_base_api.h | 14 ------
.../__locale_dir/locale_base_api/android.h | 46 +++++++------------
.../__locale_dir/locale_base_api/fuchsia.h | 12 ++---
.../__locale_dir/locale_base_api/ibm.h | 10 ----
.../__locale_dir/locale_base_api/musl.h | 13 ------
.../__locale_dir/locale_base_api/newlib.h | 10 ----
.../__locale_dir/locale_base_api/openbsd.h | 8 ----
.../__locale_dir/locale_base_api/win32.h | 4 --
.../__support/xlocale/__posix_l_fallback.h | 2 -
.../__support/xlocale/__strtonum_fallback.h | 15 ------
10 files changed, 20 insertions(+), 114 deletions(-)
diff --git a/libcxx/include/__locale_dir/locale_base_api.h b/libcxx/include/__locale_dir/locale_base_api.h
index 2355b4a840d73..8c000c558c527 100644
--- a/libcxx/include/__locale_dir/locale_base_api.h
+++ b/libcxx/include/__locale_dir/locale_base_api.h
@@ -95,18 +95,4 @@ except that locale_t is used instead of the current global locale.
The variadic functions may be implemented as templates with a parameter pack instead of variadic functions.
*/
-/*
-// TODO: These symbols are never actually used, but defined by one or more implementations. They should be removed.
-long strtol_l(const char* str, char** str_end, locale_t);
-unsigned long strtoul_l(const char* str, char** str_end, locale_t);
-long long wcstoll_l(const wchar_t* str, wchar_t** str_end, int base, locale_t);
-unsigned long long wcstoull_l(const wchar_t* str, wchar_t** str_end, int base, locale_t);
-long double wcstold_l(const wchar_t* str, wchar_t** str_end, int base, locale_t);
-int sprintf_l(char* str, const char* format, locale_t, ...);
-int vsprintf_l(char* str, const char* format, locale_t, va_list);
-int vsnprintf_l(char* str, size_t size, const char* format, locale_t, va_list);
-int isblank_l(int ch, locale_t);
-
-*/
-
#endif // _LIBCPP___LOCALE_DIR_LOCALE_BASE_API_H
diff --git a/libcxx/include/__locale_dir/locale_base_api/android.h b/libcxx/include/__locale_dir/locale_base_api/android.h
index a33d2539f0654..9965d8bbf6a2e 100644
--- a/libcxx/include/__locale_dir/locale_base_api/android.h
+++ b/libcxx/include/__locale_dir/locale_base_api/android.h
@@ -10,37 +10,29 @@
#ifndef _LIBCPP___LOCALE_LOCALE_BASE_API_ANDROID_H
#define _LIBCPP___LOCALE_LOCALE_BASE_API_ANDROID_H
-#if defined(__BIONIC__)
+#include <stdlib.h>
-# ifdef __cplusplus
+// FIXME: Is this actually required?
extern "C" {
-# endif
-
-# include <stdlib.h>
-# include <xlocale.h>
-
-# ifdef __cplusplus
+#include <xlocale.h>
}
-# endif
-# if defined(__ANDROID__)
-
-# include <android/api-level.h>
-# if __ANDROID_API__ < 21
-# include <__support/xlocale/__posix_l_fallback.h>
-# endif
+#include <android/api-level.h>
+#if __ANDROID_API__ < 21
+# include <__support/xlocale/__posix_l_fallback.h>
+#endif
// If we do not have this header, we are in a platform build rather than an NDK
// build, which will always be at least as new as the ToT NDK, in which case we
// don't need any of the inlines below since libc provides them.
-# if __has_include(<android/ndk-version.h>)
-# include <android/ndk-version.h>
+#if __has_include(<android/ndk-version.h>)
+# include <android/ndk-version.h>
// In NDK versions later than 16, locale-aware functions are provided by
// legacy_stdlib_inlines.h
-# if __NDK_MAJOR__ <= 16
-# if __ANDROID_API__ < 21
-# include <__support/xlocale/__strtonum_fallback.h>
-# elif __ANDROID_API__ < 26
+# if __NDK_MAJOR__ <= 16
+# if __ANDROID_API__ < 21
+# include <__support/xlocale/__strtonum_fallback.h>
+# elif __ANDROID_API__ < 26
inline _LIBCPP_HIDE_FROM_ABI float strtof_l(const char* __nptr, char** __endptr, locale_t) {
return ::strtof(__nptr, __endptr);
@@ -50,15 +42,9 @@ inline _LIBCPP_HIDE_FROM_ABI double strtod_l(const char* __nptr, char** __endptr
return ::strtod(__nptr, __endptr);
}
-inline _LIBCPP_HIDE_FROM_ABI long strtol_l(const char* __nptr, char** __endptr, int __base, locale_t) {
- return ::strtol(__nptr, __endptr, __base);
-}
-
-# endif // __ANDROID_API__ < 26
+# endif // __ANDROID_API__ < 26
-# endif // __NDK_MAJOR__ <= 16
-# endif // __has_include(<android/ndk-version.h>)
-# endif // defined(__ANDROID__)
+# endif // __NDK_MAJOR__ <= 16
+#endif // __has_include(<android/ndk-version.h>)
-#endif // defined(__BIONIC__)
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_ANDROID_H
diff --git a/libcxx/include/__locale_dir/locale_base_api/fuchsia.h b/libcxx/include/__locale_dir/locale_base_api/fuchsia.h
index f999bead234e5..4c3440f981c6d 100644
--- a/libcxx/include/__locale_dir/locale_base_api/fuchsia.h
+++ b/libcxx/include/__locale_dir/locale_base_api/fuchsia.h
@@ -10,13 +10,9 @@
#ifndef _LIBCPP___LOCALE_LOCALE_BASE_API_FUCHSIA_H
#define _LIBCPP___LOCALE_LOCALE_BASE_API_FUCHSIA_H
-#if defined(__Fuchsia__)
-
-# include <__support/xlocale/__posix_l_fallback.h>
-# include <__support/xlocale/__strtonum_fallback.h>
-# include <cstdlib>
-# include <cwchar>
-
-#endif // defined(__Fuchsia__)
+#include <__support/xlocale/__posix_l_fallback.h>
+#include <__support/xlocale/__strtonum_fallback.h>
+#include <cstdlib>
+#include <cwchar>
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_FUCHSIA_H
diff --git a/libcxx/include/__locale_dir/locale_base_api/ibm.h b/libcxx/include/__locale_dir/locale_base_api/ibm.h
index 5e89a1dc1e8a6..01af20194428b 100644
--- a/libcxx/include/__locale_dir/locale_base_api/ibm.h
+++ b/libcxx/include/__locale_dir/locale_base_api/ibm.h
@@ -58,11 +58,6 @@ inline _LIBCPP_HIDE_FROM_ABI long long strtoll_l(const char* __nptr, char** __en
return ::strtoll(__nptr, __endptr, __base);
}
-inline _LIBCPP_HIDE_FROM_ABI long strtol_l(const char* __nptr, char** __endptr, int __base, locale_t locale) {
- __setAndRestore __newloc(locale);
- return ::strtol(__nptr, __endptr, __base);
-}
-
inline _LIBCPP_HIDE_FROM_ABI double strtod_l(const char* __nptr, char** __endptr, locale_t locale) {
__setAndRestore __newloc(locale);
return ::strtod(__nptr, __endptr);
@@ -84,11 +79,6 @@ strtoull_l(const char* __nptr, char** __endptr, int __base, locale_t locale) {
return ::strtoull(__nptr, __endptr, __base);
}
-inline _LIBCPP_HIDE_FROM_ABI unsigned long strtoul_l(const char* __nptr, char** __endptr, int __base, locale_t locale) {
- __setAndRestore __newloc(locale);
- return ::strtoul(__nptr, __endptr, __base);
-}
-
inline _LIBCPP_HIDE_FROM_ABI
_LIBCPP_ATTRIBUTE_FORMAT(__printf__, 2, 0) int vasprintf(char** strp, const char* fmt, va_list ap) {
const size_t buff_size = 256;
diff --git a/libcxx/include/__locale_dir/locale_base_api/musl.h b/libcxx/include/__locale_dir/locale_base_api/musl.h
index b689200baee71..bf7b849d58634 100644
--- a/libcxx/include/__locale_dir/locale_base_api/musl.h
+++ b/libcxx/include/__locale_dir/locale_base_api/musl.h
@@ -28,17 +28,4 @@ inline _LIBCPP_HIDE_FROM_ABI unsigned long long strtoull_l(const char* __nptr, c
return ::strtoull(__nptr, __endptr, __base);
}
-inline _LIBCPP_HIDE_FROM_ABI long long wcstoll_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
- return ::wcstoll(__nptr, __endptr, __base);
-}
-
-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
-wcstoull_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
- return ::wcstoull(__nptr, __endptr, __base);
-}
-
-inline _LIBCPP_HIDE_FROM_ABI long double wcstold_l(const wchar_t* __nptr, wchar_t** __endptr, locale_t) {
- return ::wcstold(__nptr, __endptr);
-}
-
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_MUSL_H
diff --git a/libcxx/include/__locale_dir/locale_base_api/newlib.h b/libcxx/include/__locale_dir/locale_base_api/newlib.h
index 8d030cb73209f..a8c1cff16e6d8 100644
--- a/libcxx/include/__locale_dir/locale_base_api/newlib.h
+++ b/libcxx/include/__locale_dir/locale_base_api/newlib.h
@@ -9,14 +9,4 @@
#ifndef _LIBCPP___LOCALE_LOCALE_BASE_API_NEWLIB_H
#define _LIBCPP___LOCALE_LOCALE_BASE_API_NEWLIB_H
-#if defined(_NEWLIB_VERSION)
-
-# if !defined(__NEWLIB__) || __NEWLIB__ < 2 || __NEWLIB__ == 2 && __NEWLIB_MINOR__ < 5
-# include <__support/xlocale/__nop_locale_mgmt.h>
-# include <__support/xlocale/__posix_l_fallback.h>
-# include <__support/xlocale/__strtonum_fallback.h>
-# endif
-
-#endif // _NEWLIB_VERSION
-
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_NEWLIB_H
diff --git a/libcxx/include/__locale_dir/locale_base_api/openbsd.h b/libcxx/include/__locale_dir/locale_base_api/openbsd.h
index ad999f5dfcad6..0c05d6a0f7887 100644
--- a/libcxx/include/__locale_dir/locale_base_api/openbsd.h
+++ b/libcxx/include/__locale_dir/locale_base_api/openbsd.h
@@ -16,12 +16,4 @@
#include <ctype.h>
#include <cwctype>
-inline _LIBCPP_HIDE_FROM_ABI long strtol_l(const char* __nptr, char** __endptr, int __base, locale_t) {
- return ::strtol(__nptr, __endptr, __base);
-}
-
-inline _LIBCPP_HIDE_FROM_ABI unsigned long strtoul_l(const char* __nptr, char** __endptr, int __base, locale_t) {
- return ::strtoul(__nptr, __endptr, __base);
-}
-
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_OPENBSD_H
diff --git a/libcxx/include/__locale_dir/locale_base_api/win32.h b/libcxx/include/__locale_dir/locale_base_api/win32.h
index 5dfacfb9c1ee9..f66baffb69204 100644
--- a/libcxx/include/__locale_dir/locale_base_api/win32.h
+++ b/libcxx/include/__locale_dir/locale_base_api/win32.h
@@ -225,15 +225,11 @@ _LIBCPP_EXPORTED_FROM_ABI size_t strftime_l(char* ret, size_t n, const char* for
# define strftime_l _strftime_l
#endif
#define sscanf_l(__s, __l, __f, ...) _sscanf_l(__s, __f, __l, __VA_ARGS__)
-#define sprintf_l(__s, __l, __f, ...) _sprintf_l(__s, __f, __l, __VA_ARGS__)
-#define vsprintf_l(__s, __l, __f, ...) _vsprintf_l(__s, __f, __l, __VA_ARGS__)
-#define vsnprintf_l(__s, __n, __l, __f, ...) _vsnprintf_l(__s, __n, __f, __l, __VA_ARGS__)
_LIBCPP_EXPORTED_FROM_ABI int snprintf_l(char* __ret, size_t __n, locale_t __loc, const char* __format, ...);
_LIBCPP_EXPORTED_FROM_ABI int asprintf_l(char** __ret, locale_t __loc, const char* __format, ...);
_LIBCPP_EXPORTED_FROM_ABI int vasprintf_l(char** __ret, locale_t __loc, const char* __format, va_list __ap);
// not-so-pressing FIXME: use locale to determine blank characters
-inline int isblank_l(int __c, locale_t /*loc*/) { return (__c == ' ' || __c == '\t'); }
inline int iswblank_l(wint_t __c, locale_t /*loc*/) { return (__c == L' ' || __c == L'\t'); }
#endif // _LIBCPP___LOCALE_LOCALE_BASE_API_WIN32_H
diff --git a/libcxx/include/__support/xlocale/__posix_l_fallback.h b/libcxx/include/__support/xlocale/__posix_l_fallback.h
index 9c3c99e37ecc0..8a3a6f27f48dd 100644
--- a/libcxx/include/__support/xlocale/__posix_l_fallback.h
+++ b/libcxx/include/__support/xlocale/__posix_l_fallback.h
@@ -29,8 +29,6 @@ inline _LIBCPP_HIDE_FROM_ABI int isalnum_l(int __c, locale_t) { return ::isalnum
inline _LIBCPP_HIDE_FROM_ABI int isalpha_l(int __c, locale_t) { return ::isalpha(__c); }
-inline _LIBCPP_HIDE_FROM_ABI int isblank_l(int __c, locale_t) { return ::isblank(__c); }
-
inline _LIBCPP_HIDE_FROM_ABI int iscntrl_l(int __c, locale_t) { return ::iscntrl(__c); }
inline _LIBCPP_HIDE_FROM_ABI int isdigit_l(int __c, locale_t) { return ::isdigit(__c); }
diff --git a/libcxx/include/__support/xlocale/__strtonum_fallback.h b/libcxx/include/__support/xlocale/__strtonum_fallback.h
index 5dd59500c592b..b7eef5210ed37 100644
--- a/libcxx/include/__support/xlocale/__strtonum_fallback.h
+++ b/libcxx/include/__support/xlocale/__strtonum_fallback.h
@@ -42,19 +42,4 @@ inline _LIBCPP_HIDE_FROM_ABI unsigned long long strtoull_l(const char* __nptr, c
return ::strtoull(__nptr, __endptr, __base);
}
-#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
-inline _LIBCPP_HIDE_FROM_ABI long long wcstoll_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
- return ::wcstoll(__nptr, __endptr, __base);
-}
-
-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
-wcstoull_l(const wchar_t* __nptr, wchar_t** __endptr, int __base, locale_t) {
- return ::wcstoull(__nptr, __endptr, __base);
-}
-
-inline _LIBCPP_HIDE_FROM_ABI long double wcstold_l(const wchar_t* __nptr, wchar_t** __endptr, locale_t) {
- return ::wcstold(__nptr, __endptr);
-}
-#endif // _LIBCPP_HAS_NO_WIDE_CHARACTERS
-
#endif // _LIBCPP___SUPPORT_XLOCALE_STRTONUM_FALLBACK_H
More information about the libcxx-commits
mailing list