commit e0c0f856f58ceb68800a964c36c15c606e7a8c4c Author: Florian Weimer Date: Fri May 16 19:53:09 2025 +0200 Use proper extern declaration for _nl_C_LC_CTYPE_{class,toupper,tolower} The existing initializers already contain explicit casts. Keep them due to int/uint32_t mismatch. Reviewed-by: Frédéric Bérat diff --git a/ctype/ctype-info.c b/ctype/ctype-info.c index 0288c4121702e1d8..3933b3b9f7a26fd1 100644 --- a/ctype/ctype-info.c +++ b/ctype/ctype-info.c @@ -41,10 +41,7 @@ libc_hidden_def (__ctype_init) #if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3) /* Defined in locale/C-ctype.c. */ -extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class32[] attribute_hidden; -extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; -extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_upper[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_lower[] attribute_hidden; extern const char _nl_C_LC_CTYPE_class_alpha[] attribute_hidden; diff --git a/include/ctype.h b/include/ctype.h index 0f6e7fc7ea28f821..a15e5b66781535d4 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -66,6 +66,11 @@ __ctype_tolower_loc (void) # define __isdigit_l(c, l) ({ int __c = (c); __c >= '0' && __c <= '9'; }) # endif /* Not __NO_CTYPE. */ +/* For use in initializers. */ +extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; +extern const uint32_t _nl_C_LC_CTYPE_toupper[] attribute_hidden; +extern const uint32_t _nl_C_LC_CTYPE_tolower[] attribute_hidden; + # endif /* IS_IN (libc). */ #endif /* Not _ISOMAC. */ diff --git a/locale/xlocale.c b/locale/xlocale.c index be72b5a1b03a1757..28e47d2f7ec38094 100644 --- a/locale/xlocale.c +++ b/locale/xlocale.c @@ -19,18 +19,13 @@ #include #include "localeinfo.h" +#include #define DEFINE_CATEGORY(category, category_name, items, a) \ extern struct __locale_data _nl_C_##category; #include "categories.def" #undef DEFINE_CATEGORY -/* Defined in locale/C-ctype.c. */ -extern const char _nl_C_LC_CTYPE_class[] attribute_hidden; -extern const char _nl_C_LC_CTYPE_toupper[] attribute_hidden; -extern const char _nl_C_LC_CTYPE_tolower[] attribute_hidden; - - const struct __locale_struct _nl_C_locobj attribute_hidden = { .__locales =