ISO C specifies these APIs as accepting a restricted pointer in their
first parameter:

$ stdc c99 strtol
long int strtol(const char *restrict nptr, char **restrict endptr, int base);
$ stdc c11 strtol
long int strtol(const char *restrict nptr, char **restrict endptr, int base);

However, it should be considered a defect in ISO C.  It's common to see
code that aliases it:

        char str[] = "10 20";

        p = str;
        a = strtol(p, &p, 0);  // Let's ignore error handling for
        b = strtol(p, &p, 0);  // simplicity.

strtol(3) doesn't write to the string at all, so it shouldn't care at
all if there's any aliasing.  Requiring that the user uses a distinct
pointer for the second argument is an artificial imposition that has no
reason to be, and is often violated by real code, so let's lift that
restriction.

For example, in the shadow project, there were two cases (as of
shadow-4.14.8; they probably still are there in more recent versions,
but they now use some wrapper functions that make it more complex to
show) of violation of this restriction:

        $ grep -rn strto.*pos.*pos lib* src/ | sed 's/\t\t*/\t/'
        src/usermod.c:322:      last = strtoll(pos + 1, &pos, 10);
        $ grep -rn strto.*end.*end lib* src/ | sed 's/\t\t*/\t/'
        lib/getrange.c:83:      n = strtoul (endptr, &endptr, 10);

Link: <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112833>
Cc: <gcc@gcc.gnu.org>
Cc: Paul Eggert <egg...@cs.ucla.edu>
Signed-off-by: Alejandro Colomar <a...@kernel.org>
---
 include/stdlib.h                           |  35 +++---
 include/wchar.h                            |  17 ++-
 manual/arith.texi                          |  36 +++----
 stdlib/inttypes.h                          |  24 ++---
 stdlib/stdlib.h                            | 119 +++++++++------------
 sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c |   2 +-
 wcsmbs/wchar.h                             |  96 ++++++++---------
 7 files changed, 154 insertions(+), 175 deletions(-)

diff --git a/include/stdlib.h b/include/stdlib.h
index 0cab3f5b56..c3f61f6891 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -189,32 +189,31 @@ libc_hidden_proto (__arc4random_uniform);
 extern void __arc4random_buf_internal (void *buffer, size_t len)
      attribute_hidden;
 
-extern double __strtod_internal (const char *__restrict __nptr,
+extern double __strtod_internal (const char *__nptr,
                                 char **__restrict __endptr, int __group)
      __THROW __nonnull ((1)) __wur;
-extern float __strtof_internal (const char *__restrict __nptr,
+extern float __strtof_internal (const char *__nptr,
                                char **__restrict __endptr, int __group)
      __THROW __nonnull ((1)) __wur;
-extern long double __strtold_internal (const char *__restrict __nptr,
+extern long double __strtold_internal (const char *__nptr,
                                       char **__restrict __endptr,
                                       int __group)
      __THROW __nonnull ((1)) __wur;
-extern long int __strtol_internal (const char *__restrict __nptr,
+extern long int __strtol_internal (const char *__nptr,
                                   char **__restrict __endptr,
                                   int __base, int __group)
      __THROW __nonnull ((1)) __wur;
-extern unsigned long int __strtoul_internal (const char *__restrict __nptr,
+extern unsigned long int __strtoul_internal (const char *__nptr,
                                             char **__restrict __endptr,
                                             int __base, int __group)
      __THROW __nonnull ((1)) __wur;
 __extension__
-extern long long int __strtoll_internal (const char *__restrict __nptr,
+extern long long int __strtoll_internal (const char *__nptr,
                                         char **__restrict __endptr,
                                         int __base, int __group)
      __THROW __nonnull ((1)) __wur;
 __extension__
-extern unsigned long long int __strtoull_internal (const char *
-                                                  __restrict __nptr,
+extern unsigned long long int __strtoull_internal (const char *__nptr,
                                                   char **__restrict __endptr,
                                                   int __base, int __group)
      __THROW __nonnull ((1)) __wur;
@@ -226,33 +225,31 @@ libc_hidden_proto (__strtoll_internal)
 libc_hidden_proto (__strtoul_internal)
 libc_hidden_proto (__strtoull_internal)
 
-extern double ____strtod_l_internal (const char *__restrict __nptr,
+extern double ____strtod_l_internal (const char *__nptr,
                                     char **__restrict __endptr, int __group,
                                     locale_t __loc);
-extern float ____strtof_l_internal (const char *__restrict __nptr,
+extern float ____strtof_l_internal (const char *__nptr,
                                    char **__restrict __endptr, int __group,
                                    locale_t __loc);
-extern long double ____strtold_l_internal (const char *__restrict __nptr,
+extern long double ____strtold_l_internal (const char *__nptr,
                                           char **__restrict __endptr,
                                           int __group, locale_t __loc);
-extern long int ____strtol_l_internal (const char *__restrict __nptr,
+extern long int ____strtol_l_internal (const char *__nptr,
                                       char **__restrict __endptr,
                                       int __base, int __group,
                                       bool __bin_cst, locale_t __loc);
-extern unsigned long int ____strtoul_l_internal (const char *
-                                                __restrict __nptr,
+extern unsigned long int ____strtoul_l_internal (const char *__nptr,
                                                 char **__restrict __endptr,
                                                 int __base, int __group,
                                                 bool __bin_cst,
                                                 locale_t __loc);
 __extension__
-extern long long int ____strtoll_l_internal (const char *__restrict __nptr,
+extern long long int ____strtoll_l_internal (const char *__nptr,
                                             char **__restrict __endptr,
                                             int __base, int __group,
                                             bool __bin_cst, locale_t __loc);
 __extension__
-extern unsigned long long int ____strtoull_l_internal (const char *
-                                                      __restrict __nptr,
+extern unsigned long long int ____strtoull_l_internal (const char *__nptr,
                                                       char **
                                                       __restrict __endptr,
                                                       int __base, int __group,
@@ -309,12 +306,12 @@ extern _Float128 __wcstof128_nan (const wchar_t *, 
wchar_t **, wchar_t);
 libc_hidden_proto (__strtof128_nan)
 libc_hidden_proto (__wcstof128_nan)
 
-extern _Float128 __strtof128_internal (const char *__restrict __nptr,
+extern _Float128 __strtof128_internal (const char *__nptr,
                                       char **__restrict __endptr,
                                       int __group);
 libc_hidden_proto (__strtof128_internal)
 
-extern _Float128 ____strtof128_l_internal (const char *__restrict __nptr,
+extern _Float128 ____strtof128_l_internal (const char *__nptr,
                                           char **__restrict __endptr,
                                           int __group, locale_t __loc);
 
diff --git a/include/wchar.h b/include/wchar.h
index bf32625736..386f3ebd19 100644
--- a/include/wchar.h
+++ b/include/wchar.h
@@ -76,28 +76,27 @@ libc_hidden_proto (__isoc23_wcstoull_l)
 #endif
 
 
-extern double __wcstod_internal (const wchar_t *__restrict __nptr,
+extern double __wcstod_internal (const wchar_t *__nptr,
                                 wchar_t **__restrict __endptr, int __group)
      __THROW;
-extern float __wcstof_internal (const wchar_t *__restrict __nptr,
+extern float __wcstof_internal (const wchar_t *__nptr,
                                wchar_t **__restrict __endptr, int __group)
      __THROW;
-extern long double __wcstold_internal (const wchar_t *__restrict __nptr,
+extern long double __wcstold_internal (const wchar_t *__nptr,
                                       wchar_t **__restrict __endptr,
                                       int __group) __THROW;
-extern long int __wcstol_internal (const wchar_t *__restrict __nptr,
+extern long int __wcstol_internal (const wchar_t *__nptr,
                                   wchar_t **__restrict __endptr,
                                   int __base, int __group) __THROW;
-extern unsigned long int __wcstoul_internal (const wchar_t *__restrict __npt,
+extern unsigned long int __wcstoul_internal (const wchar_t *__npt,
                                             wchar_t **__restrict __endptr,
                                             int __base, int __group) __THROW;
 __extension__
-extern long long int __wcstoll_internal (const wchar_t *__restrict __nptr,
+extern long long int __wcstoll_internal (const wchar_t *__nptr,
                                         wchar_t **__restrict __endptr,
                                         int __base, int __group) __THROW;
 __extension__
-extern unsigned long long int __wcstoull_internal (const wchar_t *
-                                                  __restrict __nptr,
+extern unsigned long long int __wcstoull_internal (const wchar_t *__nptr,
                                                   wchar_t **
                                                   __restrict __endptr,
                                                   int __base,
@@ -143,7 +142,7 @@ extern unsigned long long int ____wcstoull_l_internal 
(const wchar_t *,
 #if __HAVE_DISTINCT_FLOAT128
 extern __typeof (wcstof128_l) __wcstof128_l;
 libc_hidden_proto (__wcstof128_l)
-extern _Float128 __wcstof128_internal (const wchar_t *__restrict __nptr,
+extern _Float128 __wcstof128_internal (const wchar_t *__nptr,
                                       wchar_t **__restrict __endptr,
                                       int __group) __THROW;
 
diff --git a/manual/arith.texi b/manual/arith.texi
index 0742c08ac4..656c0723be 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -2631,7 +2631,7 @@ functions in this section.  It is seemingly useless but 
the @w{ISO C}
 standard uses it (for the functions defined there) so we have to do it
 as well.
 
-@deftypefun {long int} strtol (const char *restrict @var{string}, char 
**restrict @var{tailptr}, int @var{base})
+@deftypefun {long int} strtol (const char *@var{string}, char **restrict 
@var{tailptr}, int @var{base})
 @standards{ISO, stdlib.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 @c strtol uses the thread-local pointer to the locale in effect, and
@@ -2705,7 +2705,7 @@ case there was overflow.
 There is an example at the end of this section.
 @end deftypefun
 
-@deftypefun {long int} wcstol (const wchar_t *restrict @var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
+@deftypefun {long int} wcstol (const wchar_t *@var{string}, wchar_t **restrict 
@var{tailptr}, int @var{base})
 @standards{ISO, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstol} function is equivalent to the @code{strtol} function
@@ -2714,7 +2714,7 @@ in nearly all aspects but handles wide character strings.
 The @code{wcstol} function was introduced in @w{Amendment 1} of @w{ISO C90}.
 @end deftypefun
 
-@deftypefun {unsigned long int} strtoul (const char *restrict @var{string}, 
char **restrict @var{tailptr}, int @var{base})
+@deftypefun {unsigned long int} strtoul (const char *@var{string}, char 
**restrict @var{tailptr}, int @var{base})
 @standards{ISO, stdlib.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{strtoul} (``string-to-unsigned-long'') function is like
@@ -2732,7 +2732,7 @@ and an input more negative than @code{LONG_MIN} returns
 range, or @code{ERANGE} on overflow.
 @end deftypefun
 
-@deftypefun {unsigned long int} wcstoul (const wchar_t *restrict @var{string}, 
wchar_t **restrict @var{tailptr}, int @var{base})
+@deftypefun {unsigned long int} wcstoul (const wchar_t *@var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
 @standards{ISO, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstoul} function is equivalent to the @code{strtoul} function
@@ -2741,7 +2741,7 @@ in nearly all aspects but handles wide character strings.
 The @code{wcstoul} function was introduced in @w{Amendment 1} of @w{ISO C90}.
 @end deftypefun
 
-@deftypefun {long long int} strtoll (const char *restrict @var{string}, char 
**restrict @var{tailptr}, int @var{base})
+@deftypefun {long long int} strtoll (const char *@var{string}, char **restrict 
@var{tailptr}, int @var{base})
 @standards{ISO, stdlib.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{strtoll} function is like @code{strtol} except that it returns
@@ -2757,7 +2757,7 @@ appropriate for the sign of the value.  It also sets 
@code{errno} to
 The @code{strtoll} function was introduced in @w{ISO C99}.
 @end deftypefun
 
-@deftypefun {long long int} wcstoll (const wchar_t *restrict @var{string}, 
wchar_t **restrict @var{tailptr}, int @var{base})
+@deftypefun {long long int} wcstoll (const wchar_t *@var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
 @standards{ISO, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstoll} function is equivalent to the @code{strtoll} function
@@ -2766,13 +2766,13 @@ in nearly all aspects but handles wide character 
strings.
 The @code{wcstoll} function was introduced in @w{Amendment 1} of @w{ISO C90}.
 @end deftypefun
 
-@deftypefun {long long int} strtoq (const char *restrict @var{string}, char 
**restrict @var{tailptr}, int @var{base})
+@deftypefun {long long int} strtoq (const char *@var{string}, char **restrict 
@var{tailptr}, int @var{base})
 @standards{BSD, stdlib.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 @code{strtoq} (``string-to-quad-word'') is the BSD name for @code{strtoll}.
 @end deftypefun
 
-@deftypefun {long long int} wcstoq (const wchar_t *restrict @var{string}, 
wchar_t **restrict @var{tailptr}, int @var{base})
+@deftypefun {long long int} wcstoq (const wchar_t *@var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
 @standards{GNU, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstoq} function is equivalent to the @code{strtoq} function
@@ -2781,7 +2781,7 @@ in nearly all aspects but handles wide character strings.
 The @code{wcstoq} function is a GNU extension.
 @end deftypefun
 
-@deftypefun {unsigned long long int} strtoull (const char *restrict 
@var{string}, char **restrict @var{tailptr}, int @var{base})
+@deftypefun {unsigned long long int} strtoull (const char *@var{string}, char 
**restrict @var{tailptr}, int @var{base})
 @standards{ISO, stdlib.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{strtoull} function is related to @code{strtoll} the same way
@@ -2790,7 +2790,7 @@ The @code{strtoull} function is related to @code{strtoll} 
the same way
 The @code{strtoull} function was introduced in @w{ISO C99}.
 @end deftypefun
 
-@deftypefun {unsigned long long int} wcstoull (const wchar_t *restrict 
@var{string}, wchar_t **restrict @var{tailptr}, int @var{base})
+@deftypefun {unsigned long long int} wcstoull (const wchar_t *@var{string}, 
wchar_t **restrict @var{tailptr}, int @var{base})
 @standards{ISO, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstoull} function is equivalent to the @code{strtoull} function
@@ -2799,13 +2799,13 @@ in nearly all aspects but handles wide character 
strings.
 The @code{wcstoull} function was introduced in @w{Amendment 1} of @w{ISO C90}.
 @end deftypefun
 
-@deftypefun {unsigned long long int} strtouq (const char *restrict 
@var{string}, char **restrict @var{tailptr}, int @var{base})
+@deftypefun {unsigned long long int} strtouq (const char *@var{string}, char 
**restrict @var{tailptr}, int @var{base})
 @standards{BSD, stdlib.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 @code{strtouq} is the BSD name for @code{strtoull}.
 @end deftypefun
 
-@deftypefun {unsigned long long int} wcstouq (const wchar_t *restrict 
@var{string}, wchar_t **restrict @var{tailptr}, int @var{base})
+@deftypefun {unsigned long long int} wcstouq (const wchar_t *@var{string}, 
wchar_t **restrict @var{tailptr}, int @var{base})
 @standards{GNU, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstouq} function is equivalent to the @code{strtouq} function
@@ -2814,7 +2814,7 @@ in nearly all aspects but handles wide character strings.
 The @code{wcstouq} function is a GNU extension.
 @end deftypefun
 
-@deftypefun intmax_t strtoimax (const char *restrict @var{string}, char 
**restrict @var{tailptr}, int @var{base})
+@deftypefun intmax_t strtoimax (const char *@var{string}, char **restrict 
@var{tailptr}, int @var{base})
 @standards{ISO, inttypes.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{strtoimax} function is like @code{strtol} except that it returns
@@ -2830,7 +2830,7 @@ See @ref{Integers} for a description of the 
@code{intmax_t} type.  The
 @code{strtoimax} function was introduced in @w{ISO C99}.
 @end deftypefun
 
-@deftypefun intmax_t wcstoimax (const wchar_t *restrict @var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
+@deftypefun intmax_t wcstoimax (const wchar_t *@var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
 @standards{ISO, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstoimax} function is equivalent to the @code{strtoimax} function
@@ -2839,7 +2839,7 @@ in nearly all aspects but handles wide character strings.
 The @code{wcstoimax} function was introduced in @w{ISO C99}.
 @end deftypefun
 
-@deftypefun uintmax_t strtoumax (const char *restrict @var{string}, char 
**restrict @var{tailptr}, int @var{base})
+@deftypefun uintmax_t strtoumax (const char *@var{string}, char **restrict 
@var{tailptr}, int @var{base})
 @standards{ISO, inttypes.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{strtoumax} function is related to @code{strtoimax}
@@ -2849,7 +2849,7 @@ See @ref{Integers} for a description of the 
@code{intmax_t} type.  The
 @code{strtoumax} function was introduced in @w{ISO C99}.
 @end deftypefun
 
-@deftypefun uintmax_t wcstoumax (const wchar_t *restrict @var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
+@deftypefun uintmax_t wcstoumax (const wchar_t *@var{string}, wchar_t 
**restrict @var{tailptr}, int @var{base})
 @standards{ISO, wchar.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 The @code{wcstoumax} function is equivalent to the @code{strtoumax} function
@@ -2939,7 +2939,7 @@ functions in this section.  It is seemingly useless but 
the @w{ISO C}
 standard uses it (for the functions defined there) so we have to do it
 as well.
 
-@deftypefun double strtod (const char *restrict @var{string}, char **restrict 
@var{tailptr})
+@deftypefun double strtod (const char *@var{string}, char **restrict 
@var{tailptr})
 @standards{ISO, stdlib.h}
 @safety{@prelim{}@mtsafe{@mtslocale{}}@assafe{}@acsafe{}}
 @c Besides the unsafe-but-ruled-safe locale uses, this uses a lot of
@@ -3075,7 +3075,7 @@ They were introduced in @w{ISO/IEC TS 18661-3} and are 
available on machines
 that support the related types; @pxref{Mathematics}.
 @end deftypefun
 
-@deftypefun double wcstod (const wchar_t *restrict @var{string}, wchar_t 
**restrict @var{tailptr})
+@deftypefun double wcstod (const wchar_t *@var{string}, wchar_t **restrict 
@var{tailptr})
 @deftypefunx float wcstof (const wchar_t *@var{string}, wchar_t 
**@var{tailptr})
 @deftypefunx {long double} wcstold (const wchar_t *@var{string}, wchar_t 
**@var{tailptr})
 @deftypefunx _FloatN wcstofN (const wchar_t *@var{string}, wchar_t 
**@var{tailptr})
diff --git a/stdlib/inttypes.h b/stdlib/inttypes.h
index cfda146aa9..ba6b903dff 100644
--- a/stdlib/inttypes.h
+++ b/stdlib/inttypes.h
@@ -355,20 +355,20 @@ extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t 
__denom)
       __THROW __attribute__ ((__const__));
 
 /* Like `strtol' but convert to `intmax_t'.  */
-extern intmax_t strtoimax (const char *__restrict __nptr,
+extern intmax_t strtoimax (const char *__nptr,
                           char **__restrict __endptr, int __base) __THROW;
 
 /* Like `strtoul' but convert to `uintmax_t'.  */
-extern uintmax_t strtoumax (const char *__restrict __nptr,
+extern uintmax_t strtoumax (const char *__nptr,
                            char ** __restrict __endptr, int __base) __THROW;
 
 /* Like `wcstol' but convert to `intmax_t'.  */
-extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
+extern intmax_t wcstoimax (const __gwchar_t *__nptr,
                           __gwchar_t **__restrict __endptr, int __base)
      __THROW;
 
 /* Like `wcstoul' but convert to `uintmax_t'.  */
-extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
+extern uintmax_t wcstoumax (const __gwchar_t *__nptr,
                            __gwchar_t ** __restrict __endptr, int __base)
      __THROW;
 
@@ -376,32 +376,32 @@ extern uintmax_t wcstoumax (const __gwchar_t *__restrict 
__nptr,
    in base 0 or 2.  */
 #if __GLIBC_USE (C23_STRTOL)
 # ifdef __REDIRECT
-extern intmax_t __REDIRECT_NTH (strtoimax, (const char *__restrict __nptr,
+extern intmax_t __REDIRECT_NTH (strtoimax, (const char *__nptr,
                                            char **__restrict __endptr,
                                            int __base), __isoc23_strtoimax);
-extern uintmax_t __REDIRECT_NTH (strtoumax, (const char *__restrict __nptr,
+extern uintmax_t __REDIRECT_NTH (strtoumax, (const char *__nptr,
                                             char **__restrict __endptr,
                                             int __base), __isoc23_strtoumax);
 extern intmax_t __REDIRECT_NTH (wcstoimax,
-                               (const __gwchar_t *__restrict __nptr,
+                               (const __gwchar_t *__nptr,
                                 __gwchar_t **__restrict __endptr, int __base),
                                __isoc23_wcstoimax);
 extern uintmax_t __REDIRECT_NTH (wcstoumax,
-                                (const __gwchar_t *__restrict __nptr,
+                                (const __gwchar_t *__nptr,
                                  __gwchar_t **__restrict __endptr, int __base),
                                 __isoc23_wcstoumax);
 # else
-extern intmax_t __isoc23_strtoimax (const char *__restrict __nptr,
+extern intmax_t __isoc23_strtoimax (const char *__nptr,
                                    char **__restrict __endptr, int __base)
      __THROW;
-extern uintmax_t __isoc23_strtoumax (const char *__restrict __nptr,
+extern uintmax_t __isoc23_strtoumax (const char *__nptr,
                                     char ** __restrict __endptr, int __base)
      __THROW;
-extern intmax_t __isoc23_wcstoimax (const __gwchar_t *__restrict __nptr,
+extern intmax_t __isoc23_wcstoimax (const __gwchar_t *__nptr,
                                    __gwchar_t **__restrict __endptr,
                                    int __base)
      __THROW;
-extern uintmax_t __isoc23_wcstoumax (const __gwchar_t *__restrict __nptr,
+extern uintmax_t __isoc23_wcstoumax (const __gwchar_t *__nptr,
                                     __gwchar_t ** __restrict __endptr,
                                     int __base)
      __THROW;
diff --git a/stdlib/stdlib.h b/stdlib/stdlib.h
index 901926e893..3602157fcb 100644
--- a/stdlib/stdlib.h
+++ b/stdlib/stdlib.h
@@ -115,82 +115,73 @@ __extension__ extern long long int atoll (const char 
*__nptr)
 #endif
 
 /* Convert a string to a floating-point number.  */
-extern double strtod (const char *__restrict __nptr,
-                     char **__restrict __endptr)
+extern double strtod (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 
 #ifdef __USE_ISOC99
 /* Likewise for `float' and `long double' sizes of floating-point numbers.  */
-extern float strtof (const char *__restrict __nptr,
-                    char **__restrict __endptr) __THROW __nonnull ((1));
+extern float strtof (const char *__nptr, char **__restrict __endptr)
+     __THROW __nonnull ((1));
 
-extern long double strtold (const char *__restrict __nptr,
-                           char **__restrict __endptr)
+extern long double strtold (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 /* Likewise for '_FloatN' and '_FloatNx'.  */
 
 #if __HAVE_FLOAT16 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float16 strtof16 (const char *__restrict __nptr,
-                         char **__restrict __endptr)
+extern _Float16 strtof16 (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 #if __HAVE_FLOAT32 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float32 strtof32 (const char *__restrict __nptr,
-                         char **__restrict __endptr)
+extern _Float32 strtof32 (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 #if __HAVE_FLOAT64 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float64 strtof64 (const char *__restrict __nptr,
-                         char **__restrict __endptr)
+extern _Float64 strtof64 (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 #if __HAVE_FLOAT128 && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float128 strtof128 (const char *__restrict __nptr,
-                           char **__restrict __endptr)
+extern _Float128 strtof128 (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 #if __HAVE_FLOAT32X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float32x strtof32x (const char *__restrict __nptr,
-                           char **__restrict __endptr)
+extern _Float32x strtof32x (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 #if __HAVE_FLOAT64X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float64x strtof64x (const char *__restrict __nptr,
-                           char **__restrict __endptr)
+extern _Float64x strtof64x (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 #if __HAVE_FLOAT128X && __GLIBC_USE (IEC_60559_TYPES_EXT)
-extern _Float128x strtof128x (const char *__restrict __nptr,
-                             char **__restrict __endptr)
+extern _Float128x strtof128x (const char *__nptr, char **__restrict __endptr)
      __THROW __nonnull ((1));
 #endif
 
 /* Convert a string to a long integer.  */
-extern long int strtol (const char *__restrict __nptr,
+extern long int strtol (const char *__nptr,
                        char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
 /* Convert a string to an unsigned long integer.  */
-extern unsigned long int strtoul (const char *__restrict __nptr,
+extern unsigned long int strtoul (const char *__nptr,
                                  char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
 
 #ifdef __USE_MISC
 /* Convert a string to a quadword integer.  */
 __extension__
-extern long long int strtoq (const char *__restrict __nptr,
+extern long long int strtoq (const char *__nptr,
                             char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
 /* Convert a string to an unsigned quadword integer.  */
 __extension__
-extern unsigned long long int strtouq (const char *__restrict __nptr,
+extern unsigned long long int strtouq (const char *__nptr,
                                       char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
 #endif /* Use misc.  */
@@ -198,12 +189,12 @@ extern unsigned long long int strtouq (const char 
*__restrict __nptr,
 #ifdef __USE_ISOC99
 /* Convert a string to a quadword integer.  */
 __extension__
-extern long long int strtoll (const char *__restrict __nptr,
+extern long long int strtoll (const char *__nptr,
                              char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
 /* Convert a string to an unsigned quadword integer.  */
 __extension__
-extern unsigned long long int strtoull (const char *__restrict __nptr,
+extern unsigned long long int strtoull (const char *__nptr,
                                        char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
 #endif /* ISO C99 or use MISC.  */
@@ -212,53 +203,53 @@ extern unsigned long long int strtoull (const char 
*__restrict __nptr,
    in base 0 or 2.  */
 #if __GLIBC_USE (C23_STRTOL)
 # ifdef __REDIRECT
-extern long int __REDIRECT_NTH (strtol, (const char *__restrict __nptr,
+extern long int __REDIRECT_NTH (strtol, (const char *__nptr,
                                         char **__restrict __endptr,
                                         int __base), __isoc23_strtol)
      __nonnull ((1));
 extern unsigned long int __REDIRECT_NTH (strtoul,
-                                        (const char *__restrict __nptr,
+                                        (const char *__nptr,
                                          char **__restrict __endptr,
                                          int __base), __isoc23_strtoul)
      __nonnull ((1));
 #  ifdef __USE_MISC
 __extension__
-extern long long int __REDIRECT_NTH (strtoq, (const char *__restrict __nptr,
+extern long long int __REDIRECT_NTH (strtoq, (const char *__nptr,
                                              char **__restrict __endptr,
                                              int __base), __isoc23_strtoll)
      __nonnull ((1));
 __extension__
 extern unsigned long long int __REDIRECT_NTH (strtouq,
-                                             (const char *__restrict __nptr,
+                                             (const char *__nptr,
                                               char **__restrict __endptr,
                                               int __base), __isoc23_strtoull)
      __nonnull ((1));
 #  endif
 __extension__
-extern long long int __REDIRECT_NTH (strtoll, (const char *__restrict __nptr,
+extern long long int __REDIRECT_NTH (strtoll, (const char *__nptr,
                                               char **__restrict __endptr,
                                               int __base), __isoc23_strtoll)
      __nonnull ((1));
 __extension__
 extern unsigned long long int __REDIRECT_NTH (strtoull,
-                                             (const char *__restrict __nptr,
+                                             (const char *__nptr,
                                               char **__restrict __endptr,
                                               int __base), __isoc23_strtoull)
      __nonnull ((1));
 # else
-extern long int __isoc23_strtol (const char *__restrict __nptr,
+extern long int __isoc23_strtol (const char *__nptr,
                                 char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
-extern unsigned long int __isoc23_strtoul (const char *__restrict __nptr,
+extern unsigned long int __isoc23_strtoul (const char *__nptr,
                                           char **__restrict __endptr,
                                           int __base)
      __THROW __nonnull ((1));
 __extension__
-extern long long int __isoc23_strtoll (const char *__restrict __nptr,
+extern long long int __isoc23_strtoll (const char *__nptr,
                                       char **__restrict __endptr, int __base)
      __THROW __nonnull ((1));
 __extension__
-extern unsigned long long int __isoc23_strtoull (const char *__restrict __nptr,
+extern unsigned long long int __isoc23_strtoull (const char *__nptr,
                                                 char **__restrict __endptr,
                                                 int __base)
      __THROW __nonnull ((1));
@@ -337,23 +328,23 @@ extern int strfromf128x (char *__dest, size_t __size, 
const char * __format,
    by the POSIX.1-2008 extended locale API.  */
 # include <bits/types/locale_t.h>
 
-extern long int strtol_l (const char *__restrict __nptr,
+extern long int strtol_l (const char *__nptr,
                          char **__restrict __endptr, int __base,
                          locale_t __loc) __THROW __nonnull ((1, 4));
 
-extern unsigned long int strtoul_l (const char *__restrict __nptr,
+extern unsigned long int strtoul_l (const char *__nptr,
                                    char **__restrict __endptr,
                                    int __base, locale_t __loc)
      __THROW __nonnull ((1, 4));
 
 __extension__
-extern long long int strtoll_l (const char *__restrict __nptr,
+extern long long int strtoll_l (const char *__nptr,
                                char **__restrict __endptr, int __base,
                                locale_t __loc)
      __THROW __nonnull ((1, 4));
 
 __extension__
-extern unsigned long long int strtoull_l (const char *__restrict __nptr,
+extern unsigned long long int strtoull_l (const char *__nptr,
                                          char **__restrict __endptr,
                                          int __base, locale_t __loc)
      __THROW __nonnull ((1, 4));
@@ -362,19 +353,19 @@ extern unsigned long long int strtoull_l (const char 
*__restrict __nptr,
    in base 0 or 2.  */
 # if __GLIBC_USE (C23_STRTOL)
 #  ifdef __REDIRECT
-extern long int __REDIRECT_NTH (strtol_l, (const char *__restrict __nptr,
+extern long int __REDIRECT_NTH (strtol_l, (const char *__nptr,
                                           char **__restrict __endptr,
                                           int __base, locale_t __loc),
                                __isoc23_strtol_l)
      __nonnull ((1, 4));
 extern unsigned long int __REDIRECT_NTH (strtoul_l,
-                                        (const char *__restrict __nptr,
+                                        (const char *__nptr,
                                          char **__restrict __endptr,
                                          int __base, locale_t __loc),
                                         __isoc23_strtoul_l)
      __nonnull ((1, 4));
 __extension__
-extern long long int __REDIRECT_NTH (strtoll_l, (const char *__restrict __nptr,
+extern long long int __REDIRECT_NTH (strtoll_l, (const char *__nptr,
                                                 char **__restrict __endptr,
                                                 int __base,
                                                 locale_t __loc),
@@ -382,26 +373,26 @@ extern long long int __REDIRECT_NTH (strtoll_l, (const 
char *__restrict __nptr,
      __nonnull ((1, 4));
 __extension__
 extern unsigned long long int __REDIRECT_NTH (strtoull_l,
-                                             (const char *__restrict __nptr,
+                                             (const char *__nptr,
                                               char **__restrict __endptr,
                                               int __base, locale_t __loc),
                                              __isoc23_strtoull_l)
      __nonnull ((1, 4));
 #  else
-extern long int __isoc23_strtol_l (const char *__restrict __nptr,
+extern long int __isoc23_strtol_l (const char *__nptr,
                                   char **__restrict __endptr, int __base,
                                   locale_t __loc) __THROW __nonnull ((1, 4));
-extern unsigned long int __isoc23_strtoul_l (const char *__restrict __nptr,
+extern unsigned long int __isoc23_strtoul_l (const char *__nptr,
                                             char **__restrict __endptr,
                                             int __base, locale_t __loc)
      __THROW __nonnull ((1, 4));
 __extension__
-extern long long int __isoc23_strtoll_l (const char *__restrict __nptr,
+extern long long int __isoc23_strtoll_l (const char *__nptr,
                                         char **__restrict __endptr,
                                         int __base, locale_t __loc)
      __THROW __nonnull ((1, 4));
 __extension__
-extern unsigned long long int __isoc23_strtoull_l (const char *__restrict 
__nptr,
+extern unsigned long long int __isoc23_strtoull_l (const char *__nptr,
                                                   char **__restrict __endptr,
                                                   int __base, locale_t __loc)
      __THROW __nonnull ((1, 4));
@@ -412,64 +403,56 @@ extern unsigned long long int __isoc23_strtoull_l (const 
char *__restrict __nptr
 #  endif
 # endif
 
-extern double strtod_l (const char *__restrict __nptr,
-                       char **__restrict __endptr, locale_t __loc)
+extern double strtod_l (const char *__nptr, char **__restrict __endptr,
+                       locale_t __loc)
      __THROW __nonnull ((1, 3));
 
-extern float strtof_l (const char *__restrict __nptr,
-                      char **__restrict __endptr, locale_t __loc)
+extern float strtof_l (const char *__nptr, char **__restrict __endptr,
+                      locale_t __loc)
      __THROW __nonnull ((1, 3));
 
-extern long double strtold_l (const char *__restrict __nptr,
-                             char **__restrict __endptr,
+extern long double strtold_l (const char *__nptr, char **__restrict __endptr,
                              locale_t __loc)
      __THROW __nonnull ((1, 3));
 
 # if __HAVE_FLOAT16
-extern _Float16 strtof16_l (const char *__restrict __nptr,
-                           char **__restrict __endptr,
+extern _Float16 strtof16_l (const char *__nptr, char **__restrict __endptr,
                            locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
 
 # if __HAVE_FLOAT32
-extern _Float32 strtof32_l (const char *__restrict __nptr,
-                           char **__restrict __endptr,
+extern _Float32 strtof32_l (const char *__nptr, char **__restrict __endptr,
                            locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
 
 # if __HAVE_FLOAT64
-extern _Float64 strtof64_l (const char *__restrict __nptr,
-                           char **__restrict __endptr,
+extern _Float64 strtof64_l (const char *__nptr, char **__restrict __endptr,
                            locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
 
 # if __HAVE_FLOAT128
-extern _Float128 strtof128_l (const char *__restrict __nptr,
-                             char **__restrict __endptr,
+extern _Float128 strtof128_l (const char *__nptr, char **__restrict __endptr,
                              locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
 
 # if __HAVE_FLOAT32X
-extern _Float32x strtof32x_l (const char *__restrict __nptr,
-                             char **__restrict __endptr,
+extern _Float32x strtof32x_l (const char *__nptr, char **__restrict __endptr,
                              locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
 
 # if __HAVE_FLOAT64X
-extern _Float64x strtof64x_l (const char *__restrict __nptr,
-                             char **__restrict __endptr,
+extern _Float64x strtof64x_l (const char *__nptr, char **__restrict __endptr,
                              locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
 
 # if __HAVE_FLOAT128X
-extern _Float128x strtof128x_l (const char *__restrict __nptr,
-                               char **__restrict __endptr,
+extern _Float128x strtof128x_l (const char *__nptr, char **__restrict __endptr,
                                locale_t __loc)
      __THROW __nonnull ((1, 3));
 # endif
diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c 
b/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
index 29ad60c8a5..44dc7bface 100644
--- a/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
+++ b/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
@@ -7,7 +7,7 @@
 #undef __strtod_l
 
 extern double
-__strtod_l (const char *__restrict __nptr, char **__restrict __endptr,
+__strtod_l (const char *__nptr, char **__restrict __endptr,
            locale_t __loc);
 
 double
diff --git a/wcsmbs/wchar.h b/wcsmbs/wchar.h
index 554d811a22..c2c74d6f81 100644
--- a/wcsmbs/wchar.h
+++ b/wcsmbs/wchar.h
@@ -399,14 +399,14 @@ extern int wcswidth (const wchar_t *__s, size_t __n) 
__THROW;
 
 /* Convert initial portion of the wide string NPTR to `double'
    representation.  */
-extern double wcstod (const wchar_t *__restrict __nptr,
+extern double wcstod (const wchar_t *__nptr,
                      wchar_t **__restrict __endptr) __THROW;
 
 #ifdef __USE_ISOC99
 /* Likewise for `float' and `long double' sizes of floating-point numbers.  */
-extern float wcstof (const wchar_t *__restrict __nptr,
+extern float wcstof (const wchar_t *__nptr,
                     wchar_t **__restrict __endptr) __THROW;
-extern long double wcstold (const wchar_t *__restrict __nptr,
+extern long double wcstold (const wchar_t *__nptr,
                            wchar_t **__restrict __endptr) __THROW;
 #endif /* C99 */
 
@@ -414,37 +414,37 @@ extern long double wcstold (const wchar_t *__restrict 
__nptr,
 /* Likewise for `_FloatN' and `_FloatNx' when support is enabled.  */
 
 # if __HAVE_FLOAT16
-extern _Float16 wcstof16 (const wchar_t *__restrict __nptr,
+extern _Float16 wcstof16 (const wchar_t *__nptr,
                          wchar_t **__restrict __endptr) __THROW;
 # endif
 
 # if __HAVE_FLOAT32
-extern _Float32 wcstof32 (const wchar_t *__restrict __nptr,
+extern _Float32 wcstof32 (const wchar_t *__nptr,
                          wchar_t **__restrict __endptr) __THROW;
 # endif
 
 # if __HAVE_FLOAT64
-extern _Float64 wcstof64 (const wchar_t *__restrict __nptr,
+extern _Float64 wcstof64 (const wchar_t *__nptr,
                          wchar_t **__restrict __endptr) __THROW;
 # endif
 
 # if __HAVE_FLOAT128
-extern _Float128 wcstof128 (const wchar_t *__restrict __nptr,
+extern _Float128 wcstof128 (const wchar_t *__nptr,
                            wchar_t **__restrict __endptr) __THROW;
 # endif
 
 # if __HAVE_FLOAT32X
-extern _Float32x wcstof32x (const wchar_t *__restrict __nptr,
+extern _Float32x wcstof32x (const wchar_t *__nptr,
                            wchar_t **__restrict __endptr) __THROW;
 # endif
 
 # if __HAVE_FLOAT64X
-extern _Float64x wcstof64x (const wchar_t *__restrict __nptr,
+extern _Float64x wcstof64x (const wchar_t *__nptr,
                            wchar_t **__restrict __endptr) __THROW;
 # endif
 
 # if __HAVE_FLOAT128X
-extern _Float128x wcstof128x (const wchar_t *__restrict __nptr,
+extern _Float128x wcstof128x (const wchar_t *__nptr,
                              wchar_t **__restrict __endptr) __THROW;
 # endif
 #endif /* __GLIBC_USE (IEC_60559_TYPES_EXT) && __GLIBC_USE (ISOC23) */
@@ -452,12 +452,12 @@ extern _Float128x wcstof128x (const wchar_t *__restrict 
__nptr,
 
 /* Convert initial portion of wide string NPTR to `long int'
    representation.  */
-extern long int wcstol (const wchar_t *__restrict __nptr,
+extern long int wcstol (const wchar_t *__nptr,
                        wchar_t **__restrict __endptr, int __base) __THROW;
 
 /* Convert initial portion of wide string NPTR to `unsigned long int'
    representation.  */
-extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
+extern unsigned long int wcstoul (const wchar_t *__nptr,
                                  wchar_t **__restrict __endptr, int __base)
      __THROW;
 
@@ -465,14 +465,14 @@ extern unsigned long int wcstoul (const wchar_t 
*__restrict __nptr,
 /* Convert initial portion of wide string NPTR to `long long int'
    representation.  */
 __extension__
-extern long long int wcstoll (const wchar_t *__restrict __nptr,
+extern long long int wcstoll (const wchar_t *__nptr,
                              wchar_t **__restrict __endptr, int __base)
      __THROW;
 
 /* Convert initial portion of wide string NPTR to `unsigned long long int'
    representation.  */
 __extension__
-extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
+extern unsigned long long int wcstoull (const wchar_t *__nptr,
                                        wchar_t **__restrict __endptr,
                                        int __base) __THROW;
 #endif /* ISO C99.  */
@@ -481,14 +481,14 @@ extern unsigned long long int wcstoull (const wchar_t 
*__restrict __nptr,
 /* Convert initial portion of wide string NPTR to `long long int'
    representation.  */
 __extension__
-extern long long int wcstoq (const wchar_t *__restrict __nptr,
+extern long long int wcstoq (const wchar_t *__nptr,
                             wchar_t **__restrict __endptr, int __base)
      __THROW;
 
 /* Convert initial portion of wide string NPTR to `unsigned long long int'
    representation.  */
 __extension__
-extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
+extern unsigned long long int wcstouq (const wchar_t *__nptr,
                                       wchar_t **__restrict __endptr,
                                       int __base) __THROW;
 #endif /* Use GNU.  */
@@ -497,49 +497,49 @@ extern unsigned long long int wcstouq (const wchar_t 
*__restrict __nptr,
    in base 0 or 2.  */
 #if __GLIBC_USE (C23_STRTOL)
 # ifdef __REDIRECT
-extern long int __REDIRECT_NTH (wcstol, (const wchar_t *__restrict __nptr,
+extern long int __REDIRECT_NTH (wcstol, (const wchar_t *__nptr,
                                         wchar_t **__restrict __endptr,
                                         int __base), __isoc23_wcstol);
 extern unsigned long int __REDIRECT_NTH (wcstoul,
-                                        (const wchar_t *__restrict __nptr,
+                                        (const wchar_t *__nptr,
                                          wchar_t **__restrict __endptr,
                                          int __base), __isoc23_wcstoul);
 __extension__
 extern long long int __REDIRECT_NTH (wcstoll,
-                                    (const wchar_t *__restrict __nptr,
+                                    (const wchar_t *__nptr,
                                      wchar_t **__restrict __endptr,
                                      int __base), __isoc23_wcstoll);
 __extension__
 extern unsigned long long int __REDIRECT_NTH (wcstoull,
-                                             (const wchar_t *__restrict __nptr,
+                                             (const wchar_t *__nptr,
                                               wchar_t **__restrict __endptr,
                                               int __base), __isoc23_wcstoull);
 #  ifdef __USE_GNU
 __extension__
-extern long long int __REDIRECT_NTH (wcstoq, (const wchar_t *__restrict __nptr,
+extern long long int __REDIRECT_NTH (wcstoq, (const wchar_t *__nptr,
                                              wchar_t **__restrict __endptr,
                                              int __base), __isoc23_wcstoll);
 __extension__
 extern unsigned long long int __REDIRECT_NTH (wcstouq,
-                                             (const wchar_t *__restrict __nptr,
+                                             (const wchar_t *__nptr,
                                               wchar_t **__restrict __endptr,
                                               int __base), __isoc23_wcstoull);
 #  endif
 # else
-extern long int __isoc23_wcstol (const wchar_t *__restrict __nptr,
+extern long int __isoc23_wcstol (const wchar_t *__nptr,
                                 wchar_t **__restrict __endptr, int __base)
      __THROW;
-extern unsigned long int __isoc23_wcstoul (const wchar_t *__restrict __nptr,
+extern unsigned long int __isoc23_wcstoul (const wchar_t *__nptr,
                                           wchar_t **__restrict __endptr,
                                           int __base)
      __THROW;
 __extension__
-extern long long int __isoc23_wcstoll (const wchar_t *__restrict __nptr,
+extern long long int __isoc23_wcstoll (const wchar_t *__nptr,
                                       wchar_t **__restrict __endptr,
                                       int __base)
      __THROW;
 __extension__
-extern unsigned long long int __isoc23_wcstoull (const wchar_t *__restrict 
__nptr,
+extern unsigned long long int __isoc23_wcstoull (const wchar_t *__nptr,
                                                 wchar_t **__restrict __endptr,
                                                 int __base)
      __THROW;
@@ -558,21 +558,21 @@ extern unsigned long long int __isoc23_wcstoull (const 
wchar_t *__restrict __npt
 /* Parallel versions of the functions above which take the locale to
    use as an additional parameter.  These are GNU extensions inspired
    by the POSIX.1-2008 extended locale API.  */
-extern long int wcstol_l (const wchar_t *__restrict __nptr,
+extern long int wcstol_l (const wchar_t *__nptr,
                          wchar_t **__restrict __endptr, int __base,
                          locale_t __loc) __THROW;
 
-extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
+extern unsigned long int wcstoul_l (const wchar_t *__nptr,
                                    wchar_t **__restrict __endptr,
                                    int __base, locale_t __loc) __THROW;
 
 __extension__
-extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
+extern long long int wcstoll_l (const wchar_t *__nptr,
                                wchar_t **__restrict __endptr,
                                int __base, locale_t __loc) __THROW;
 
 __extension__
-extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
+extern unsigned long long int wcstoull_l (const wchar_t *__nptr,
                                          wchar_t **__restrict __endptr,
                                          int __base, locale_t __loc)
      __THROW;
@@ -581,42 +581,42 @@ extern unsigned long long int wcstoull_l (const wchar_t 
*__restrict __nptr,
    in base 0 or 2.  */
 # if __GLIBC_USE (C23_STRTOL)
 #  ifdef __REDIRECT
-extern long int __REDIRECT_NTH (wcstol_l, (const wchar_t *__restrict __nptr,
+extern long int __REDIRECT_NTH (wcstol_l, (const wchar_t *__nptr,
                                           wchar_t **__restrict __endptr,
                                           int __base, locale_t __loc),
                                __isoc23_wcstol_l);
 extern unsigned long int __REDIRECT_NTH (wcstoul_l,
-                                        (const wchar_t *__restrict __nptr,
+                                        (const wchar_t *__nptr,
                                          wchar_t **__restrict __endptr,
                                          int __base, locale_t __loc),
                                         __isoc23_wcstoul_l);
 __extension__
 extern long long int __REDIRECT_NTH (wcstoll_l,
-                                    (const wchar_t *__restrict __nptr,
+                                    (const wchar_t *__nptr,
                                      wchar_t **__restrict __endptr,
                                      int __base, locale_t __loc),
                                     __isoc23_wcstoll_l);
 __extension__
 extern unsigned long long int __REDIRECT_NTH (wcstoull_l,
-                                             (const wchar_t *__restrict __nptr,
+                                             (const wchar_t *__nptr,
                                               wchar_t **__restrict __endptr,
                                               int __base, locale_t __loc),
                                              __isoc23_wcstoull_l);
 #  else
-extern long int __isoc23_wcstol_l (const wchar_t *__restrict __nptr,
+extern long int __isoc23_wcstol_l (const wchar_t *__nptr,
                                   wchar_t **__restrict __endptr, int __base,
                                   locale_t __loc) __THROW;
-extern unsigned long int __isoc23_wcstoul_l (const wchar_t *__restrict __nptr,
+extern unsigned long int __isoc23_wcstoul_l (const wchar_t *__nptr,
                                             wchar_t **__restrict __endptr,
                                             int __base, locale_t __loc)
      __THROW;
 __extension__
-extern long long int __isoc23_wcstoll_l (const wchar_t *__restrict __nptr,
+extern long long int __isoc23_wcstoll_l (const wchar_t *__nptr,
                                         wchar_t **__restrict __endptr,
                                         int __base, locale_t __loc)
      __THROW;
 __extension__
-extern unsigned long long int __isoc23_wcstoull_l (const wchar_t *__restrict 
__nptr,
+extern unsigned long long int __isoc23_wcstoull_l (const wchar_t *__nptr,
                                                   wchar_t **__restrict 
__endptr,
                                                   int __base, locale_t __loc)
      __THROW;
@@ -627,56 +627,56 @@ extern unsigned long long int __isoc23_wcstoull_l (const 
wchar_t *__restrict __n
 #  endif
 # endif
 
-extern double wcstod_l (const wchar_t *__restrict __nptr,
+extern double wcstod_l (const wchar_t *__nptr,
                        wchar_t **__restrict __endptr, locale_t __loc)
      __THROW;
 
-extern float wcstof_l (const wchar_t *__restrict __nptr,
+extern float wcstof_l (const wchar_t *__nptr,
                       wchar_t **__restrict __endptr, locale_t __loc)
      __THROW;
 
-extern long double wcstold_l (const wchar_t *__restrict __nptr,
+extern long double wcstold_l (const wchar_t *__nptr,
                              wchar_t **__restrict __endptr,
                              locale_t __loc) __THROW;
 
 # if __HAVE_FLOAT16
-extern _Float16 wcstof16_l (const wchar_t *__restrict __nptr,
+extern _Float16 wcstof16_l (const wchar_t *__nptr,
                            wchar_t **__restrict __endptr,
                            locale_t __loc) __THROW;
 # endif
 
 # if __HAVE_FLOAT32
-extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr,
+extern _Float32 wcstof32_l (const wchar_t *__nptr,
                            wchar_t **__restrict __endptr,
                            locale_t __loc) __THROW;
 # endif
 
 # if __HAVE_FLOAT64
-extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr,
+extern _Float64 wcstof64_l (const wchar_t *__nptr,
                            wchar_t **__restrict __endptr,
                            locale_t __loc) __THROW;
 # endif
 
 # if __HAVE_FLOAT128
-extern _Float128 wcstof128_l (const wchar_t *__restrict __nptr,
+extern _Float128 wcstof128_l (const wchar_t *__nptr,
                              wchar_t **__restrict __endptr,
                              locale_t __loc) __THROW;
 # endif
 
 # if __HAVE_FLOAT32X
-extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr,
+extern _Float32x wcstof32x_l (const wchar_t *__nptr,
                              wchar_t **__restrict __endptr,
                              locale_t __loc) __THROW;
 # endif
 
 # if __HAVE_FLOAT64X
-extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr,
+extern _Float64x wcstof64x_l (const wchar_t *__nptr,
                              wchar_t **__restrict __endptr,
                              locale_t __loc) __THROW;
 # endif
 
 # if __HAVE_FLOAT128X
-extern _Float128x wcstof128x_l (const wchar_t *__restrict __nptr,
+extern _Float128x wcstof128x_l (const wchar_t *__nptr,
                                wchar_t **__restrict __endptr,
                                locale_t __loc) __THROW;
 # endif
-- 
2.45.2

Attachment: signature.asc
Description: PGP signature

Reply via email to