From 9b2e9577b228350b15d88303b00097dd58e8d29b Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 3 Aug 2007 02:43:06 +0000 Subject: [PATCH] * sysdeps/unix/dirstream.h (struct __dirstream): Move lock member to fill a hole on 64-bit platforms. * stdlib/stdlib.h: Remove __strto*_internal prototypes and strto* inline functions. * include/stdlib.h: Add __strto*_internal prototypes here. * wcsmbs/wchar.h: Remove __wcsto*_internal prototypes and wcsto* inline functions. * include/wchar.h: Add __wcsto*_internal prototypes. * sysdeps/generic/inttypes.h: No need to protect the declaration of the __strto*_internal and __wcsto*_internal members here. --- ChangeLog | 12 ++++ include/stdlib.h | 45 +++++++++++--- include/wchar.h | 26 ++++++++ stdlib/stdlib.h | 118 ------------------------------------- sysdeps/generic/inttypes.h | 65 ++++++++------------ sysdeps/unix/dirstream.h | 6 +- wcsmbs/wchar.h | 90 ---------------------------- 7 files changed, 103 insertions(+), 259 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4a20a942bf..2514584e09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,17 @@ 2007-08-02 Ulrich Drepper + * sysdeps/unix/dirstream.h (struct __dirstream): Move lock member + to fill a hole on 64-bit platforms. + + * stdlib/stdlib.h: Remove __strto*_internal prototypes and strto* + inline functions. + * include/stdlib.h: Add __strto*_internal prototypes here. + * wcsmbs/wchar.h: Remove __wcsto*_internal prototypes and wcsto* + inline functions. + * include/wchar.h: Add __wcsto*_internal prototypes. + * sysdeps/generic/inttypes.h: No need to protect the declaration + of the __strto*_internal and __wcsto*_internal members here. + * rt/mqueue.h: Change const to __const and add nonnull attributes. 2007-08-02 Roland McGrath diff --git a/include/stdlib.h b/include/stdlib.h index 27111b8a85..d5c3751013 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -28,13 +28,6 @@ libc_hidden_proto (qsort) libc_hidden_proto (lrand48_r) libc_hidden_proto (wctomb) libc_hidden_proto (__secure_getenv) -libc_hidden_proto (__strtof_internal) -libc_hidden_proto (__strtod_internal) -libc_hidden_proto (__strtold_internal) -libc_hidden_proto (__strtol_internal) -libc_hidden_proto (__strtoll_internal) -libc_hidden_proto (__strtoul_internal) -libc_hidden_proto (__strtoull_internal) extern long int __random (void); extern void __srandom (unsigned int __seed); @@ -100,6 +93,44 @@ extern void *__libc_memalign (size_t alignment, size_t size) extern int __libc_system (const char *line); + +extern double __strtod_internal (__const char *__restrict __nptr, + char **__restrict __endptr, int __group) + __THROW __nonnull ((1)) __wur; +extern float __strtof_internal (__const char *__restrict __nptr, + char **__restrict __endptr, int __group) + __THROW __nonnull ((1)) __wur; +extern long double __strtold_internal (__const char *__restrict __nptr, + char **__restrict __endptr, + int __group) + __THROW __nonnull ((1)) __wur; +extern long int __strtol_internal (__const char *__restrict __nptr, + char **__restrict __endptr, + int __base, int __group) + __THROW __nonnull ((1)) __wur; +extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, + char **__restrict __endptr, + int __base, int __group) + __THROW __nonnull ((1)) __wur; +__extension__ +extern long long int __strtoll_internal (__const char *__restrict __nptr, + char **__restrict __endptr, + int __base, int __group) + __THROW __nonnull ((1)) __wur; +__extension__ +extern unsigned long long int __strtoull_internal (__const char * + __restrict __nptr, + char **__restrict __endptr, + int __base, int __group) + __THROW __nonnull ((1)) __wur; +libc_hidden_proto (__strtof_internal) +libc_hidden_proto (__strtod_internal) +libc_hidden_proto (__strtold_internal) +libc_hidden_proto (__strtol_internal) +libc_hidden_proto (__strtoll_internal) +libc_hidden_proto (__strtoul_internal) +libc_hidden_proto (__strtoull_internal) + extern double ____strtod_l_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group, __locale_t __loc); diff --git a/include/wchar.h b/include/wchar.h index 89e9a4f81e..b3cf373d9e 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -18,6 +18,32 @@ extern __typeof (wcsftime_l) __wcsftime_l; libc_hidden_proto (__wcsftime_l) +extern double __wcstod_internal (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __group) + __THROW; +extern float __wcstof_internal (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, int __group) + __THROW; +extern long double __wcstold_internal (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __group) __THROW; +extern long int __wcstol_internal (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __base, int __group) __THROW; +extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt, + wchar_t **__restrict __endptr, + int __base, int __group) __THROW; +__extension__ +extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr, + wchar_t **__restrict __endptr, + int __base, int __group) __THROW; +__extension__ +extern unsigned long long int __wcstoull_internal (__const wchar_t * + __restrict __nptr, + wchar_t ** + __restrict __endptr, + int __base, + int __group) __THROW; libc_hidden_proto (__wcstof_internal) libc_hidden_proto (__wcstod_internal) libc_hidden_proto (__wcstold_internal) diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h index dd78744539..d475668926 100644 --- a/stdlib/stdlib.h +++ b/stdlib/stdlib.h @@ -273,125 +273,7 @@ extern long double strtold_l (__const char *__restrict __nptr, #endif /* GNU */ -/* The internal entry points for `strtoX' take an extra flag argument - saying whether or not to parse locale-dependent number grouping. */ - -extern double __strtod_internal (__const char *__restrict __nptr, - char **__restrict __endptr, int __group) - __THROW __nonnull ((1)) __wur; -extern float __strtof_internal (__const char *__restrict __nptr, - char **__restrict __endptr, int __group) - __THROW __nonnull ((1)) __wur; -extern long double __strtold_internal (__const char *__restrict __nptr, - char **__restrict __endptr, - int __group) - __THROW __nonnull ((1)) __wur; -#ifndef __strtol_internal_defined -extern long int __strtol_internal (__const char *__restrict __nptr, - char **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -# define __strtol_internal_defined 1 -#endif -#ifndef __strtoul_internal_defined -extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, - char **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -# define __strtoul_internal_defined 1 -#endif -#if defined __GNUC__ || defined __USE_ISOC99 -# ifndef __strtoll_internal_defined -__extension__ -extern long long int __strtoll_internal (__const char *__restrict __nptr, - char **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -# define __strtoll_internal_defined 1 -# endif -# ifndef __strtoull_internal_defined -__extension__ -extern unsigned long long int __strtoull_internal (__const char * - __restrict __nptr, - char **__restrict __endptr, - int __base, int __group) - __THROW __nonnull ((1)) __wur; -# define __strtoull_internal_defined 1 -# endif -#endif /* GCC */ - #ifdef __USE_EXTERN_INLINES -/* Define inline functions which call the internal entry points. */ - -__BEGIN_NAMESPACE_STD -__extern_inline double -__NTH (strtod (__const char *__restrict __nptr, char **__restrict __endptr)) -{ - return __strtod_internal (__nptr, __endptr, 0); -} -__extern_inline long int -__NTH (strtol (__const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtol_internal (__nptr, __endptr, __base, 0); -} -__extern_inline unsigned long int -__NTH (strtoul (__const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoul_internal (__nptr, __endptr, __base, 0); -} -__END_NAMESPACE_STD - -# ifdef __USE_ISOC99 -__BEGIN_NAMESPACE_C99 -__extern_inline float -__NTH (strtof (__const char *__restrict __nptr, char **__restrict __endptr)) -{ - return __strtof_internal (__nptr, __endptr, 0); -} -# ifndef __LDBL_COMPAT -__extern_inline long double -__NTH (strtold (__const char *__restrict __nptr, char **__restrict __endptr)) -{ - return __strtold_internal (__nptr, __endptr, 0); -} -# endif -__END_NAMESPACE_C99 -# endif - -# ifdef __USE_BSD -__extension__ __extern_inline long long int -__NTH (strtoq (__const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoll_internal (__nptr, __endptr, __base, 0); -} -__extension__ __extern_inline unsigned long long int -__NTH (strtouq (__const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoull_internal (__nptr, __endptr, __base, 0); -} -# endif - -# if defined __USE_MISC || defined __USE_ISOC99 -__BEGIN_NAMESPACE_C99 -__extension__ __extern_inline long long int -__NTH (strtoll (__const char *__restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoll_internal (__nptr, __endptr, __base, 0); -} -__extension__ __extern_inline unsigned long long int -__NTH (strtoull (__const char * __restrict __nptr, char **__restrict __endptr, - int __base)) -{ - return __strtoull_internal (__nptr, __endptr, __base, 0); -} -__END_NAMESPACE_C99 -# endif - __BEGIN_NAMESPACE_STD __extern_inline double __NTH (atof (__const char *__nptr)) diff --git a/sysdeps/generic/inttypes.h b/sysdeps/generic/inttypes.h index 3f1b316c09..bf0fffa5c2 100644 --- a/sysdeps/generic/inttypes.h +++ b/sysdeps/generic/inttypes.h @@ -323,13 +323,11 @@ extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, # if __WORDSIZE == 64 -/* Like `strtol' but convert to `intmax_t'. */ -# ifndef __strtol_internal_defined extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, - int __base, int __group) __THROW; -# define __strtol_internal_defined 1 -# endif + int __base, int __group) + __THROW __nonnull ((1)) __wur; +/* Like `strtol' but convert to `intmax_t'. */ __extern_inline intmax_t __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base)) @@ -337,14 +335,12 @@ __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, return __strtol_internal (nptr, endptr, base, 0); } -/* Like `strtoul' but convert to `uintmax_t'. */ -# ifndef __strtoul_internal_defined extern unsigned long int __strtoul_internal (__const char * __restrict __nptr, char ** __restrict __endptr, - int __base, int __group) __THROW; -# define __strtoul_internal_defined 1 -# endif + int __base, int __group) + __THROW __nonnull ((1)) __wur; +/* Like `strtoul' but convert to `uintmax_t'. */ __extern_inline uintmax_t __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base)) @@ -352,13 +348,11 @@ __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, return __strtoul_internal (nptr, endptr, base, 0); } -/* Like `wcstol' but convert to `intmax_t'. */ -# ifndef __wcstol_internal_defined extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t **__restrict __endptr, - int __base, int __group) __THROW; -# define __wcstol_internal_defined 1 -# endif + int __base, int __group) + __THROW __nonnull ((1)) __wur; +/* Like `wcstol' but convert to `intmax_t'. */ __extern_inline intmax_t __NTH (wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)) @@ -366,16 +360,13 @@ __NTH (wcstoimax (__const __gwchar_t *__restrict nptr, return __wcstol_internal (nptr, endptr, base, 0); } - -/* Like `wcstoul' but convert to `uintmax_t'. */ -# ifndef __wcstoul_internal_defined extern unsigned long int __wcstoul_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t ** __restrict __endptr, - int __base, int __group) __THROW; -# define __wcstoul_internal_defined 1 -# endif + int __base, int __group) + __THROW __nonnull ((1)) __wur; +/* Like `wcstoul' but convert to `uintmax_t'. */ __extern_inline uintmax_t __NTH (wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)) @@ -385,14 +376,12 @@ __NTH (wcstoumax (__const __gwchar_t *__restrict nptr, # else /* __WORDSIZE == 32 */ -/* Like `strtol' but convert to `intmax_t'. */ -# ifndef __strtoll_internal_defined __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, - int __base, int __group) __THROW; -# define __strtoll_internal_defined 1 -# endif + int __base, int __group) + __THROW __nonnull ((1)) __wur; +/* Like `strtol' but convert to `intmax_t'. */ __extern_inline intmax_t __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base)) @@ -400,17 +389,15 @@ __NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr, return __strtoll_internal (nptr, endptr, base, 0); } -/* Like `strtoul' but convert to `uintmax_t'. */ -# ifndef __strtoull_internal_defined __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char ** __restrict __endptr, int __base, - int __group) __THROW; -# define __strtoull_internal_defined 1 -# endif + int __group) + __THROW __nonnull ((1)) __wur; +/* Like `strtoul' but convert to `uintmax_t'. */ __extern_inline uintmax_t __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base)) @@ -418,15 +405,13 @@ __NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr, return __strtoull_internal (nptr, endptr, base, 0); } -/* Like `wcstol' but convert to `intmax_t'. */ -# ifndef __wcstoll_internal_defined __extension__ extern long long int __wcstoll_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t **__restrict __endptr, - int __base, int __group) __THROW; -# define __wcstoll_internal_defined 1 -# endif + int __base, int __group) + __THROW __nonnull ((1)) __wur; +/* Like `wcstol' but convert to `intmax_t'. */ __extern_inline intmax_t __NTH (wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)) @@ -435,17 +420,15 @@ __NTH (wcstoimax (__const __gwchar_t *__restrict nptr, } -/* Like `wcstoul' but convert to `uintmax_t'. */ -# ifndef __wcstoull_internal_defined __extension__ extern unsigned long long int __wcstoull_internal (__const __gwchar_t * __restrict __nptr, __gwchar_t ** __restrict __endptr, int __base, - int __group) __THROW; -# define __wcstoull_internal_defined 1 -# endif + int __group) + __THROW __nonnull ((1)) __wur; +/* Like `wcstoul' but convert to `uintmax_t'. */ __extern_inline uintmax_t __NTH (wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base)) diff --git a/sysdeps/unix/dirstream.h b/sysdeps/unix/dirstream.h index a1f74473c6..b1d80f0017 100644 --- a/sysdeps/unix/dirstream.h +++ b/sysdeps/unix/dirstream.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 2007 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -33,14 +33,14 @@ struct __dirstream { int fd; /* File descriptor. */ + __libc_lock_define (, lock) /* Mutex lock for this structure. */ + char *data; /* Directory block. */ size_t allocation; /* Space allocated for the block. */ size_t size; /* Total valid data in the block. */ size_t offset; /* Current offset into the block. */ off_t filepos; /* Position of next entry to read. */ - - __libc_lock_define (, lock) /* Mutex lock for this structure. */ }; #define _DIR_dirfd(dirp) ((dirp)->fd) diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h index 569fd2b2f6..b334e06231 100644 --- a/wcsmbs/wchar.h +++ b/wcsmbs/wchar.h @@ -503,96 +503,6 @@ extern long double wcstold_l (__const wchar_t *__restrict __nptr, #endif /* GNU */ -/* The internal entry points for `wcstoX' take an extra flag argument - saying whether or not to parse locale-dependent number grouping. */ -extern double __wcstod_internal (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __group) - __THROW; -extern float __wcstof_internal (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __group) - __THROW; -extern long double __wcstold_internal (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __group) __THROW; - -#if !defined __wcstol_internal_defined \ - && defined __OPTIMIZE__ && __GNUC__ >= 2 -extern long int __wcstol_internal (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base, int __group) __THROW; -# define __wcstol_internal_defined 1 -#endif -#if !defined __wcstoul_internal_defined \ - && defined __OPTIMIZE__ && __GNUC__ >= 2 -extern unsigned long int __wcstoul_internal (__const wchar_t *__restrict __npt, - wchar_t **__restrict __endptr, - int __base, int __group) __THROW; -# define __wcstoul_internal_defined 1 -#endif -#if !defined __wcstoll_internal_defined \ - && defined __OPTIMIZE__ && __GNUC__ >= 2 -__extension__ -extern long long int __wcstoll_internal (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, - int __base, int __group) __THROW; -# define __wcstoll_internal_defined 1 -#endif -#if !defined __wcstoull_internal_defined \ - && defined __OPTIMIZE__ && __GNUC__ >= 2 -__extension__ -extern unsigned long long int __wcstoull_internal (__const wchar_t * - __restrict __nptr, - wchar_t ** - __restrict __endptr, - int __base, - int __group) __THROW; -# define __wcstoull_internal_defined 1 -#endif - - -#if defined __OPTIMIZE__ && __GNUC__ >= 2 -/* Define inline functions which call the internal entry points. */ -__BEGIN_NAMESPACE_C99 - -__extern_inline double -__NTH (wcstod (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr)) -{ return __wcstod_internal (__nptr, __endptr, 0); } -__extern_inline long int -__NTH (wcstol (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base)) -{ return __wcstol_internal (__nptr, __endptr, __base, 0); } -__extern_inline unsigned long int -__NTH (wcstoul (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base)) -{ return __wcstoul_internal (__nptr, __endptr, __base, 0); } -__END_NAMESPACE_C99 - -# ifdef __USE_GNU -__extern_inline float -__NTH (wcstof (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr)) -{ return __wcstof_internal (__nptr, __endptr, 0); } -# ifndef __LDBL_COMPAT -__extern_inline long double -__NTH (wcstold (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr)) -{ return __wcstold_internal (__nptr, __endptr, 0); } -# endif -__extension__ -__extern_inline long long int -__NTH (wcstoq (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base)) -{ return __wcstoll_internal (__nptr, __endptr, __base, 0); } -__extension__ -__extern_inline unsigned long long int -__NTH (wcstouq (__const wchar_t *__restrict __nptr, - wchar_t **__restrict __endptr, int __base)) -{ return __wcstoull_internal (__nptr, __endptr, __base, 0); } -# endif /* Use GNU. */ -#endif /* Optimizing GCC >=2. */ - - #ifdef __USE_GNU /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */