From 0ee972d1b095bfea89499b358646e44d60aa4a4b Mon Sep 17 00:00:00 2001 From: Aschref Ben Thabet Date: Thu, 16 Jul 2020 10:28:49 +0200 Subject: [PATCH] ctype.h: Fix unused variable warnings If __HAVE_LOCALE_INFO__ is not defined, then the locale in the locale-specific ctype functions is ignored. In the previous implementation this resulted in compiler warnings. For example: int main() { locale_t locale; locale = duplocale(uselocale((locale_t)0)); isspace_l('x', locale); return 0; } gcc -Wall main.c main.c: In function 'main': main.c:6:11: warning: variable 'locale' set but not used [-Wunused-but-set-variable] 6 | locale_t locale; | ^~~~~~ --- newlib/libc/include/ctype.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/newlib/libc/include/ctype.h b/newlib/libc/include/ctype.h index a0009af17..8b1013ac0 100644 --- a/newlib/libc/include/ctype.h +++ b/newlib/libc/include/ctype.h @@ -66,6 +66,9 @@ extern int toascii_l (int __c, locale_t __l); #define _X 0100 #define _B 0200 +/* For C++ backward-compatibility only. */ +extern __IMPORT const char _ctype_[]; + #ifdef __HAVE_LOCALE_INFO__ const char *__locale_ctype_ptr (void); #else @@ -108,7 +111,12 @@ const char *__locale_ctype_ptr (void); #ifdef __HAVE_LOCALE_INFO__ const char *__locale_ctype_ptr_l (locale_t); #else -#define __locale_ctype_ptr_l(l) _ctype_ +static __inline char * +__locale_ctype_ptr_l(locale_t _l) +{ + (void)_l; + return __locale_ctype_ptr(); +} #endif #define __ctype_lookup_l(__c,__l) ((__locale_ctype_ptr_l(__l)+sizeof(""[__c]))[(int)(__c)]) @@ -170,9 +178,6 @@ const char *__locale_ctype_ptr_l (locale_t); #endif /* !__cplusplus */ -/* For C++ backward-compatibility only. */ -extern __IMPORT const char _ctype_[]; - _END_STD_C #endif /* _CTYPE_H_ */