2002-08-04  Ulrich Drepper  <drepper@redhat.com>

	* elf/dl-addr.c (_dl_addr): Add libc_hidden_def.
	* elf/dl-close.c (_dl_close): Add libc_hidden_def.
	* elf/dl-open.c (_dl_open): Add libc_hidden_def.
	* include/dlfcn.h: Add libc_hidden_proto for _dl_addr, _dl_open,
	_dl_close.

	* include/libio.h: Add libc_hidden_proto for __underflow, __wuflow,
	__wunderflow.
	* libio/genops.c (__underflow): Add libc_hidden_def.
	* libio/wgenops.c (__wuflow): Likewise.
	(__wunderflow): Likewise.

	* include/obstack.h: Add libc_hidden_proto for _obstack_newchunk.
	* malloc/obstack.c (_obstack_newchunk): Add libc_hidden_def.

	* include/stdio.h: Add libc_hidden_proto for __vfscanf.
	* stdio-common/vfscanf.c (__vfscanf): Add libc_hidden_def.

	* include/string.h: Add libc_hidden_proto for __strverscmp.
	* string/strverscmp.c (__strverscmp): Add libc_hidden_def.

	* include/unistd.h: Add libc_hidden_proto for __sysconf.
	* sysdeps/generic/sysconf.c (__sysconf): Add libc_hidden_def.
	* sysdeps/posix/sysconf.c: Likewise.
	* sysdeps/unix/sysv/irix4/sysconf.c: Likewise.
	* sysdeps/unix/sysv/sysv4/sysconf.c: Likewise.

	* include/wctype.h: Use libc_hidden_proto for __iswctype, __iswalnum_l,
	__iswalpha_l, __iswblank_l, __iswcntrl_l, __iswdigit_l, __iswlower_l,
	__iswgraph_l, __iswprint_l, __iswpunct_l, __iswspace_l, __iswupper_l,
	__iswxdigit_l, __towlower_l, __towupper_l.
	* wcsmbs/wcstype.c (__iswctype): Use libc_hidden_def.
	* wcsmbs/wcfuncs_l.c: Use libc_hidden_def for all functions.

	* include/sys/wait.h: Add libc_hidden_proto for __xmknod.
	* sysdeps/generic/xmknod.c (__xmknod): Add libc_hidden_def.
	* sysdeps/mach/hurd/xmknod.c: Likewise.
	* sysdeps/unix/xmknod.c: Likewise.
	* sysdeps/unix/sysv/linux/xmknod.c: Likewise.
	* sysdeps/unix/sysv/linux/alpha/xmknod.c: Likewise.
	* sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise.

	* sunrpc/svc.c: Add missing INTUSE for _authenticate.
This commit is contained in:
Ulrich Drepper 2002-08-04 09:27:27 +00:00
parent cc7e7a2641
commit a20d8dbee7
27 changed files with 112 additions and 28 deletions

View File

@ -1,3 +1,49 @@
2002-08-04 Ulrich Drepper <drepper@redhat.com>
* elf/dl-addr.c (_dl_addr): Add libc_hidden_def.
* elf/dl-close.c (_dl_close): Add libc_hidden_def.
* elf/dl-open.c (_dl_open): Add libc_hidden_def.
* include/dlfcn.h: Add libc_hidden_proto for _dl_addr, _dl_open,
_dl_close.
* include/libio.h: Add libc_hidden_proto for __underflow, __wuflow,
__wunderflow.
* libio/genops.c (__underflow): Add libc_hidden_def.
* libio/wgenops.c (__wuflow): Likewise.
(__wunderflow): Likewise.
* include/obstack.h: Add libc_hidden_proto for _obstack_newchunk.
* malloc/obstack.c (_obstack_newchunk): Add libc_hidden_def.
* include/stdio.h: Add libc_hidden_proto for __vfscanf.
* stdio-common/vfscanf.c (__vfscanf): Add libc_hidden_def.
* include/string.h: Add libc_hidden_proto for __strverscmp.
* string/strverscmp.c (__strverscmp): Add libc_hidden_def.
* include/unistd.h: Add libc_hidden_proto for __sysconf.
* sysdeps/generic/sysconf.c (__sysconf): Add libc_hidden_def.
* sysdeps/posix/sysconf.c: Likewise.
* sysdeps/unix/sysv/irix4/sysconf.c: Likewise.
* sysdeps/unix/sysv/sysv4/sysconf.c: Likewise.
* include/wctype.h: Use libc_hidden_proto for __iswctype, __iswalnum_l,
__iswalpha_l, __iswblank_l, __iswcntrl_l, __iswdigit_l, __iswlower_l,
__iswgraph_l, __iswprint_l, __iswpunct_l, __iswspace_l, __iswupper_l,
__iswxdigit_l, __towlower_l, __towupper_l.
* wcsmbs/wcstype.c (__iswctype): Use libc_hidden_def.
* wcsmbs/wcfuncs_l.c: Use libc_hidden_def for all functions.
* include/sys/wait.h: Add libc_hidden_proto for __xmknod.
* sysdeps/generic/xmknod.c (__xmknod): Add libc_hidden_def.
* sysdeps/mach/hurd/xmknod.c: Likewise.
* sysdeps/unix/xmknod.c: Likewise.
* sysdeps/unix/sysv/linux/xmknod.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/xmknod.c: Likewise.
* sysdeps/unix/sysv/linux/mips/xmknod.c: Likewise.
* sunrpc/svc.c: Add missing INTUSE for _authenticate.
2002-08-03 Roland McGrath <roland@redhat.com> 2002-08-03 Roland McGrath <roland@redhat.com>
* include/sys/resource.h: Use libc_hidden_proto for getpriority, * include/sys/resource.h: Use libc_hidden_proto for getpriority,

View File

@ -16,16 +16,19 @@ extern int __libc_dlclose (void *__map);
/* Locate shared object containing the given address. */ /* Locate shared object containing the given address. */
extern int _dl_addr (const void *address, Dl_info *info) extern int _dl_addr (const void *address, Dl_info *info)
internal_function; internal_function;
libc_hidden_proto (_dl_addr)
/* Open the shared object NAME, relocate it, and run its initializer if it /* Open the shared object NAME, relocate it, and run its initializer if it
hasn't already been run. MODE is as for `dlopen' (see <dlfcn.h>). If hasn't already been run. MODE is as for `dlopen' (see <dlfcn.h>). If
the object is already opened, returns its existing map. */ the object is already opened, returns its existing map. */
extern void *_dl_open (const char *name, int mode, const void *caller) extern void *_dl_open (const char *name, int mode, const void *caller)
internal_function; internal_function;
libc_hidden_proto (_dl_open)
/* Close an object previously opened by _dl_open. */ /* Close an object previously opened by _dl_open. */
extern void _dl_close (void *map) extern void _dl_close (void *map)
internal_function; internal_function;
libc_hidden_proto (_dl_close)
/* Look up NAME in shared object HANDLE (which may be RTLD_DEFAULT or /* Look up NAME in shared object HANDLE (which may be RTLD_DEFAULT or
RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns RTLD_NEXT). WHO is the calling function, for RTLD_NEXT. Returns

View File

@ -4,6 +4,9 @@
#define _LIBC_LIBIO_H #define _LIBC_LIBIO_H
libc_hidden_proto (__overflow) libc_hidden_proto (__overflow)
libc_hidden_proto (__underflow)
libc_hidden_proto (__woverflow) libc_hidden_proto (__woverflow)
libc_hidden_proto (__wunderflow)
libc_hidden_proto (__wuflow)
#endif #endif

View File

@ -1 +1,3 @@
#include <malloc/obstack.h> #include <malloc/obstack.h>
libc_hidden_proto (_obstack_newchunk)

View File

@ -16,6 +16,7 @@ extern int __vfscanf (FILE *__restrict __s,
__const char *__restrict __format, __const char *__restrict __format,
_G_va_list __arg) _G_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0))); __attribute__ ((__format__ (__scanf__, 2, 0)));
libc_hidden_proto (__vfscanf)
extern int __vscanf (__const char *__restrict __format, extern int __vscanf (__const char *__restrict __format,
_G_va_list __arg) _G_va_list __arg)
__attribute__ ((__format__ (__scanf__, 1, 0))); __attribute__ ((__format__ (__scanf__, 1, 0)));

View File

@ -71,3 +71,4 @@ libc_hidden_proto (__strncasecmp_l)
libc_hidden_proto (__strdup) libc_hidden_proto (__strdup)
libc_hidden_proto (__strndup) libc_hidden_proto (__strndup)
libc_hidden_proto (__strerror_r) libc_hidden_proto (__strerror_r)
libc_hidden_proto (__strverscmp)

View File

@ -23,6 +23,7 @@ extern __inline__ int __stat (__const char *__path, struct stat *__statbuf)
{ {
return __xstat (_STAT_VER, __path, __statbuf); return __xstat (_STAT_VER, __path, __statbuf);
} }
libc_hidden_proto (__xmknod)
extern __inline__ int __mknod (__const char *__path, __mode_t __mode, extern __inline__ int __mknod (__const char *__path, __mode_t __mode,
__dev_t __dev) __dev_t __dev)
{ {

View File

@ -73,6 +73,7 @@ extern int __execve (__const char *__path, char *__const __argv[],
extern long int __pathconf (__const char *__path, int __name); extern long int __pathconf (__const char *__path, int __name);
extern long int __fpathconf (int __fd, int __name); extern long int __fpathconf (int __fd, int __name);
extern long int __sysconf (int __name); extern long int __sysconf (int __name);
libc_hidden_proto (__sysconf)
extern __pid_t __getpid (void); extern __pid_t __getpid (void);
libc_hidden_proto (__getpid) libc_hidden_proto (__getpid)
extern __pid_t __getppid (void); extern __pid_t __getppid (void);

View File

@ -17,12 +17,20 @@ extern int __iswctype_internal (wint_t __wc, wctype_t __desc) attribute_hidden;
extern wctype_t __wctype (__const char *__property); extern wctype_t __wctype (__const char *__property);
extern wint_t __towctrans (wint_t __wc, wctrans_t __desc); extern wint_t __towctrans (wint_t __wc, wctrans_t __desc);
#ifndef NOT_IN_libc libc_hidden_proto (__iswctype)
# define __iswalpha_l(wc, loc) INTUSE(__iswalpha_l) (wc, loc) libc_hidden_proto (__iswalnum_l)
# define __iswctype(wc, desc) INTUSE(__iswctype) (wc, desc) libc_hidden_proto (__iswalpha_l)
# define __iswdigit_l(wc, loc) INTUSE(__iswdigit_l) (wc, loc) libc_hidden_proto (__iswblank_l)
# define __iswspace_l(wc, loc) INTUSE(__iswspace_l) (wc, loc) libc_hidden_proto (__iswcntrl_l)
# define __iswxdigit_l(wc, loc) INTUSE(__iswxdigit_l) (wc, loc) libc_hidden_proto (__iswdigit_l)
#endif libc_hidden_proto (__iswlower_l)
libc_hidden_proto (__iswgraph_l)
libc_hidden_proto (__iswprint_l)
libc_hidden_proto (__iswpunct_l)
libc_hidden_proto (__iswspace_l)
libc_hidden_proto (__iswupper_l)
libc_hidden_proto (__iswxdigit_l)
libc_hidden_proto (__towlower_l)
libc_hidden_proto (__towupper_l)
#endif #endif

View File

@ -350,6 +350,7 @@ __underflow (fp)
INTUSE(_IO_free_backup_area) (fp); INTUSE(_IO_free_backup_area) (fp);
return _IO_UNDERFLOW (fp); return _IO_UNDERFLOW (fp);
} }
libc_hidden_def (__underflow)
int int
__uflow (fp) __uflow (fp)

View File

@ -278,7 +278,7 @@ __wuflow (fp)
INTUSE(_IO_free_wbackup_area) (fp); INTUSE(_IO_free_wbackup_area) (fp);
return _IO_UFLOW (fp); return _IO_UFLOW (fp);
} }
libc_hidden_def (__wuflow)
wint_t wint_t
__wunderflow (fp) __wunderflow (fp)
@ -309,6 +309,7 @@ __wunderflow (fp)
INTUSE(_IO_free_wbackup_area) (fp); INTUSE(_IO_free_wbackup_area) (fp);
return _IO_UNDERFLOW (fp); return _IO_UNDERFLOW (fp);
} }
libc_hidden_def (__wunderflow)
_IO_size_t _IO_size_t

View File

@ -1,5 +1,5 @@
/* obstack.c - subroutines used implicitly by object stack macros /* obstack.c - subroutines used implicitly by object stack macros
Copyright (C) 1988-1994,96,97,98,99,2000,2001 Free Software Foundation, Inc. Copyright (C) 1988-1994, 1996-2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. Its master source is NOT part of This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib. the C library, however. The master source lives in /gd/gnu/lib.
@ -22,7 +22,11 @@
# include <config.h> # include <config.h>
#endif #endif
#ifdef _LIBC
#include <obstack.h>
#else
#include "obstack.h" #include "obstack.h"
#endif
/* NOTE BEFORE MODIFYING THIS FILE: This version number must be /* NOTE BEFORE MODIFYING THIS FILE: This version number must be
incremented whenever callers compiled using an old obstack.h can no incremented whenever callers compiled using an old obstack.h can no
@ -338,6 +342,9 @@ _obstack_newchunk (h, length)
/* The new chunk certainly contains no empty object yet. */ /* The new chunk certainly contains no empty object yet. */
h->maybe_empty_object = 0; h->maybe_empty_object = 0;
} }
#ifdef _LIBC
libc_hidden_def (_obstack_newchunk)
#endif
/* Return nonzero if object OBJ has been allocated from obstack H. /* Return nonzero if object OBJ has been allocated from obstack H.
This is here for debugging. This is here for debugging.

View File

@ -2441,6 +2441,7 @@ __vfscanf (FILE *s, const char *format, va_list argptr)
{ {
return INTUSE(_IO_vfscanf) (s, format, argptr, NULL); return INTUSE(_IO_vfscanf) (s, format, argptr, NULL);
} }
libc_hidden_def (__vfscanf)
# endif # endif
#endif #endif

View File

@ -1,5 +1,5 @@
/* Compare strings while treating digits characters numerically. /* Compare strings while treating digits characters numerically.
Copyright (C) 1997 Free Software Foundation, Inc. Copyright (C) 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997. Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
@ -109,4 +109,5 @@ __strverscmp (s1, s2)
return state; return state;
} }
} }
libc_hidden_def (__strverscmp)
weak_alias (__strverscmp, strverscmp) weak_alias (__strverscmp, strverscmp)

View File

@ -438,7 +438,7 @@ svc_getreq_common (const int fd)
r.rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor; r.rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor;
r.rq_xprt->xp_verf.oa_length = 0; r.rq_xprt->xp_verf.oa_length = 0;
} }
else if ((why = _authenticate (&r, &msg)) != AUTH_OK) else if ((why = INTUSE(_authenticate) (&r, &msg)) != AUTH_OK)
{ {
svcerr_auth (xprt, why); svcerr_auth (xprt, why);
goto call_done; goto call_done;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,1993,1995,1996,1997,2001 Free Software Foundation, Inc. /* Copyright (C) 1991,1993,1995-1997,2001,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -260,6 +260,7 @@ __sysconf (name)
} }
weak_alias (__sysconf, sysconf) weak_alias (__sysconf, sysconf)
libc_hidden_def (__sysconf)
stub_warning (sysconf) stub_warning (sysconf)
#include <stub-tag.h> #include <stub-tag.h>

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1993, 1995, 1996, 1997 Free Software Foundation, Inc. /* Copyright (C) 1991,1993,1995,1996,1997,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -38,4 +38,5 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
stub_warning (__xmknod) stub_warning (__xmknod)
weak_alias (__xmknod, _xmknod) weak_alias (__xmknod, _xmknod)
libc_hidden_def (__xmknod)
#include <stub-tag.h> #include <stub-tag.h>

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 99 Free Software Foundation, Inc. /* Copyright (C) 1991,92,93,94,95,96,99,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -108,3 +108,4 @@ __xmknod (int vers, const char *file_name, mode_t mode, dev_t *dev)
return __hurd_fail (err); return __hurd_fail (err);
return 0; return 0;
} }
libc_hidden_def (__xmknod)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,93,95,96,97,99,2000,2001 Free Software Foundation, Inc. /* Copyright (C) 1991,93,1995-1997,1999-2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -1128,3 +1128,4 @@ __sysconf (name)
#undef __sysconf #undef __sysconf
weak_alias (__sysconf, sysconf) weak_alias (__sysconf, sysconf)
libc_hidden_def (__sysconf)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc. /* Copyright (C) 1994, 1995, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -33,3 +33,4 @@ __sysconf (name)
} }
weak_alias (__sysconf, sysconf) weak_alias (__sysconf, sysconf)
libc_hidden_def (__sysconf)

View File

@ -1,5 +1,5 @@
/* xmknod call using old-style Unix mknod system call. /* xmknod call using old-style Unix mknod system call.
Copyright (C) 1991, 1993, 1995, 1996, 1997 Free Software Foundation, Inc. Copyright (C) 1991,1993,1995,1996,1997,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -45,3 +45,4 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
} }
weak_alias (__xmknod, _xmknod) weak_alias (__xmknod, _xmknod)
libc_hidden_def (__xmknod)

View File

@ -1,5 +1,5 @@
/* xmknod call using old-style Unix mknod system call. /* xmknod call using old-style Unix mknod system call.
Copyright (C) 1991, 93, 95, 96, 97, 98, 00 Free Software Foundation, Inc. Copyright (C) 1991,93,95,96,97,98,00,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -49,3 +49,4 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
} }
weak_alias (__xmknod, _xmknod) weak_alias (__xmknod, _xmknod)
libc_hidden_def (__xmknod)

View File

@ -1,5 +1,5 @@
/* xmknod call using old-style Unix mknod system call. /* xmknod call using old-style Unix mknod system call.
Copyright (C) 1991, 93, 95, 96, 97, 98, 2000 Free Software Foundation, Inc. Copyright (C) 1991,93,95,96,97,98,2000,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -50,3 +50,4 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
} }
weak_alias (__xmknod, _xmknod) weak_alias (__xmknod, _xmknod)
libc_hidden_def (__xmknod)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc. /* Copyright (C) 1993, 1995, 1996, 1997, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org). Contributed by Brendan Kehoe (brendan@zen.org).
@ -363,3 +363,4 @@ __sysconf (name)
} }
weak_alias (__sysconf, sysconf) weak_alias (__sysconf, sysconf)
libc_hidden_def (__sysconf)

View File

@ -1,5 +1,5 @@
/* xmknod call using old-style Unix mknod system call. /* xmknod call using old-style Unix mknod system call.
Copyright (C) 1991, 1993, 1995, 1996, 1997 Free Software Foundation, Inc. Copyright (C) 1991,1993,1995,1996,1997,2002 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -39,3 +39,4 @@ __xmknod (int vers, const char *path, mode_t mode, dev_t *dev)
} }
weak_alias (__xmknod, _xmknod) weak_alias (__xmknod, _xmknod)
libc_hidden_def (__xmknod)

View File

@ -34,5 +34,5 @@ __iswctype (wint_t wc, wctype_t desc)
return wctype_table_lookup ((const char *) desc, wc); return wctype_table_lookup ((const char *) desc, wc);
} }
INTDEF(__iswctype) libc_hidden_def (__iswctype)
weak_alias (__iswctype, iswctype) weak_alias (__iswctype, iswctype)

View File

@ -24,11 +24,6 @@
#define USE_IN_EXTENDED_LOCALE_MODEL #define USE_IN_EXTENDED_LOCALE_MODEL
#include "wchar-lookup.h" #include "wchar-lookup.h"
#undef __iswalpha_l
#undef __iswdigit_l
#undef __iswspace_l
#undef __iswxdigit_l
/* Provide real-function versions of all the wctype macros. */ /* Provide real-function versions of all the wctype macros. */
#define func(name, type) \ #define func(name, type) \
@ -38,7 +33,7 @@
const char *desc = locale->__locales[LC_CTYPE]->values[i].string; \ const char *desc = locale->__locales[LC_CTYPE]->values[i].string; \
return wctype_table_lookup (desc, wc); \ return wctype_table_lookup (desc, wc); \
} \ } \
INTDEF(name) libc_hidden_def (name)
func (__iswalnum_l, __ISwalnum) func (__iswalnum_l, __ISwalnum)
func (__iswalpha_l, __ISwalpha) func (__iswalpha_l, __ISwalpha)
@ -60,6 +55,7 @@ wint_t
const char *desc = locale->__locales[LC_CTYPE]->values[i].string; const char *desc = locale->__locales[LC_CTYPE]->values[i].string;
return wctrans_table_lookup (desc, wc); return wctrans_table_lookup (desc, wc);
} }
libc_hidden_def (__towlower_l)
wint_t wint_t
(__towupper_l) (wint_t wc, __locale_t locale) (__towupper_l) (wint_t wc, __locale_t locale)
@ -68,3 +64,4 @@ wint_t
const char *desc = locale->__locales[LC_CTYPE]->values[i].string; const char *desc = locale->__locales[LC_CTYPE]->values[i].string;
return wctrans_table_lookup (desc, wc); return wctrans_table_lookup (desc, wc);
} }
libc_hidden_def (__towupper_l)