mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 01:33:36 +08:00
Make strtoimax, strtoumax, wcstoimax, wcstoumax into aliases
The functions strtoimax, strtoumax, wcstoimax, wcstoumax currently have three implementations each (wordsize-32, wordsize-64 and dummy implementation in stdlib/ using #error), defining the functions as thin wrappers round corresponding *_internal functions. Simplify the code by changing them into aliases of functions such as strtol and wcstoull. This is more consistent with how e.g. imaxdiv is handled. Tested for x86_64 and x86.
This commit is contained in:
parent
4d3a77c735
commit
224b419d1e
@ -1,6 +1,3 @@
|
||||
#ifndef _INTTYPES_H
|
||||
#include <stdlib/inttypes.h>
|
||||
#ifndef _ISOMAC
|
||||
libc_hidden_proto (strtoumax)
|
||||
#endif
|
||||
#endif
|
||||
|
@ -56,7 +56,6 @@ routines := \
|
||||
system canonicalize \
|
||||
a64l l64a \
|
||||
rpmatch strfmon strfmon_l getsubopt xpg_basename fmtmsg \
|
||||
strtoimax strtoumax wcstoimax wcstoumax \
|
||||
getcontext setcontext makecontext swapcontext
|
||||
aux = grouping groupingwc tens_in_limb
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
#error "The correct implementation must be chosen based on the `intmax_t' type"
|
@ -30,4 +30,5 @@ compat_symbol (libc, __strtoll_internal, __strtoq_internal, GLIBC_2_0);
|
||||
|
||||
# endif
|
||||
weak_alias (strtoll, strtoq)
|
||||
weak_alias (strtoll, strtoimax)
|
||||
#endif
|
||||
|
@ -30,4 +30,5 @@ compat_symbol (libc, __strtoull_internal, __strtouq_internal, GLIBC_2_0);
|
||||
|
||||
# endif
|
||||
weak_alias (strtoull, strtouq)
|
||||
weak_alias (strtoull, strtoumax)
|
||||
#endif
|
||||
|
@ -1 +0,0 @@
|
||||
#error "The correct implementation must be chosen based on the `uintmax_t' type"
|
@ -1 +0,0 @@
|
||||
#error "The correct implementation must be chosen based on the `intmax_t' type"
|
@ -1 +0,0 @@
|
||||
#error "The correct implementation must be chosen based on the `uintmax_t' type"
|
@ -1,27 +0,0 @@
|
||||
/* Convert string to maximal integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
intmax_t
|
||||
strtoimax (const char *__restrict nptr, char **__restrict endptr, int base)
|
||||
{
|
||||
return __strtoll_internal (nptr, endptr, base, 0);
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
/* Convert string to maximal unsigned integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
uintmax_t
|
||||
strtoumax (const char *__restrict nptr, char **__restrict endptr, int base)
|
||||
{
|
||||
return __strtoull_internal (nptr, endptr, base, 0);
|
||||
}
|
||||
libc_hidden_def (strtoumax)
|
@ -1,28 +0,0 @@
|
||||
/* Convert wide-character string to maximal integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <wchar.h>
|
||||
|
||||
intmax_t
|
||||
wcstoimax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
|
||||
int base)
|
||||
{
|
||||
return __wcstoll_internal (nptr, endptr, base, 0);
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
/* Convert wide-character string to maximal unsigned integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <wchar.h>
|
||||
|
||||
uintmax_t
|
||||
wcstoumax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
|
||||
int base)
|
||||
{
|
||||
return __wcstoull_internal (nptr, endptr, base, 0);
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
/* Convert string to maximal integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
intmax_t
|
||||
strtoimax (const char *__restrict nptr, char **__restrict endptr, int base)
|
||||
{
|
||||
return __strtol_internal (nptr, endptr, base, 0);
|
||||
}
|
@ -14,3 +14,4 @@ weak_alias (strtol, strtoll)
|
||||
libc_hidden_ver (strtol, strtoll)
|
||||
weak_alias (strtol, strtoq)
|
||||
libc_hidden_ver (strtol, strtoq)
|
||||
weak_alias (strtol, strtoimax)
|
||||
|
@ -12,3 +12,4 @@ strong_alias (__strtoul_internal, __strtoull_internal)
|
||||
libc_hidden_ver (__strtoul_internal, __strtoull_internal)
|
||||
weak_alias (strtoul, strtoull)
|
||||
weak_alias (strtoul, strtouq)
|
||||
weak_alias (strtoul, strtoumax)
|
||||
|
@ -1,28 +0,0 @@
|
||||
/* Convert string to maximal unsigned integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
uintmax_t
|
||||
strtoumax (const char *__restrict nptr, char **__restrict endptr, int base)
|
||||
{
|
||||
return __strtoul_internal (nptr, endptr, base, 0);
|
||||
}
|
||||
libc_hidden_def (strtoumax)
|
@ -1,28 +0,0 @@
|
||||
/* Convert wide-character string to maximal integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <wchar.h>
|
||||
|
||||
intmax_t
|
||||
wcstoimax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
|
||||
int base)
|
||||
{
|
||||
return __wcstol_internal (nptr, endptr, base, 0);
|
||||
}
|
@ -12,3 +12,4 @@ strong_alias (__wcstol_internal, __wcstoll_internal)
|
||||
libc_hidden_ver (__wcstol_internal, __wcstoll_internal)
|
||||
weak_alias (wcstol, wcstoll)
|
||||
weak_alias (wcstol, wcstoq)
|
||||
weak_alias (wcstol, wcstoimax)
|
||||
|
@ -12,3 +12,4 @@ strong_alias (__wcstoul_internal, __wcstoull_internal)
|
||||
libc_hidden_ver (__wcstoul_internal, __wcstoull_internal)
|
||||
weak_alias (wcstoul, wcstoull)
|
||||
weak_alias (wcstoul, wcstouq)
|
||||
weak_alias (wcstoul, wcstoumax)
|
||||
|
@ -1,28 +0,0 @@
|
||||
/* Convert wide-character string to maximal unsigned integer.
|
||||
Copyright (C) 1997-2020 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, see
|
||||
<https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <wchar.h>
|
||||
|
||||
uintmax_t
|
||||
wcstoumax (const wchar_t *__restrict nptr, wchar_t **__restrict endptr,
|
||||
int base)
|
||||
{
|
||||
return __wcstoul_internal (nptr, endptr, base, 0);
|
||||
}
|
@ -22,3 +22,4 @@
|
||||
#include "wcstol.c"
|
||||
|
||||
weak_alias (wcstoll, wcstoq)
|
||||
weak_alias (wcstoll, wcstoimax)
|
||||
|
@ -22,3 +22,4 @@
|
||||
#include "wcstoul.c"
|
||||
|
||||
weak_alias (wcstoull, wcstouq)
|
||||
weak_alias (wcstoull, wcstoumax)
|
||||
|
Loading…
Reference in New Issue
Block a user