diff options
author | Joseph Myers <joseph@codesourcery.com> | 2020-12-08 18:15:27 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2020-12-08 18:15:27 +0000 |
commit | 224b419d1e750e3e9ced5c57774bb2bdd5292e28 (patch) | |
tree | 270809a5e89155afa1990475bcff36a5d7ae6f24 | |
parent | 4d3a77c73594c3704992f8d5b779c8be053cff35 (diff) | |
download | glibc-224b419d1e750e3e9ced5c57774bb2bdd5292e28.tar.gz glibc-224b419d1e750e3e9ced5c57774bb2bdd5292e28.tar.xz glibc-224b419d1e750e3e9ced5c57774bb2bdd5292e28.zip |
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.
-rw-r--r-- | include/inttypes.h | 3 | ||||
-rw-r--r-- | stdlib/Makefile | 1 | ||||
-rw-r--r-- | stdlib/strtoimax.c | 1 | ||||
-rw-r--r-- | stdlib/strtoll.c | 1 | ||||
-rw-r--r-- | stdlib/strtoull.c | 1 | ||||
-rw-r--r-- | stdlib/strtoumax.c | 1 | ||||
-rw-r--r-- | stdlib/wcstoimax.c | 1 | ||||
-rw-r--r-- | stdlib/wcstoumax.c | 1 | ||||
-rw-r--r-- | sysdeps/wordsize-32/strtoimax.c | 27 | ||||
-rw-r--r-- | sysdeps/wordsize-32/strtoumax.c | 28 | ||||
-rw-r--r-- | sysdeps/wordsize-32/wcstoimax.c | 28 | ||||
-rw-r--r-- | sysdeps/wordsize-32/wcstoumax.c | 28 | ||||
-rw-r--r-- | sysdeps/wordsize-64/strtoimax.c | 27 | ||||
-rw-r--r-- | sysdeps/wordsize-64/strtol.c | 1 | ||||
-rw-r--r-- | sysdeps/wordsize-64/strtoul.c | 1 | ||||
-rw-r--r-- | sysdeps/wordsize-64/strtoumax.c | 28 | ||||
-rw-r--r-- | sysdeps/wordsize-64/wcstoimax.c | 28 | ||||
-rw-r--r-- | sysdeps/wordsize-64/wcstol.c | 1 | ||||
-rw-r--r-- | sysdeps/wordsize-64/wcstoul.c | 1 | ||||
-rw-r--r-- | sysdeps/wordsize-64/wcstoumax.c | 28 | ||||
-rw-r--r-- | wcsmbs/wcstoll.c | 1 | ||||
-rw-r--r-- | wcsmbs/wcstoull.c | 1 |
22 files changed, 8 insertions, 230 deletions
diff --git a/include/inttypes.h b/include/inttypes.h index 3a583c6c07..9cb6636b13 100644 --- a/include/inttypes.h +++ b/include/inttypes.h @@ -1,6 +1,3 @@ #ifndef _INTTYPES_H #include <stdlib/inttypes.h> -#ifndef _ISOMAC -libc_hidden_proto (strtoumax) -#endif #endif diff --git a/stdlib/Makefile b/stdlib/Makefile index f8a1660186..29b7cd7071 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -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 diff --git a/stdlib/strtoimax.c b/stdlib/strtoimax.c deleted file mode 100644 index f1de70f320..0000000000 --- a/stdlib/strtoimax.c +++ /dev/null @@ -1 +0,0 @@ -#error "The correct implementation must be chosen based on the `intmax_t' type" diff --git a/stdlib/strtoll.c b/stdlib/strtoll.c index b156665fc7..a6b693a341 100644 --- a/stdlib/strtoll.c +++ b/stdlib/strtoll.c @@ -30,4 +30,5 @@ compat_symbol (libc, __strtoll_internal, __strtoq_internal, GLIBC_2_0); # endif weak_alias (strtoll, strtoq) +weak_alias (strtoll, strtoimax) #endif diff --git a/stdlib/strtoull.c b/stdlib/strtoull.c index b4bf9a97d9..dd57aa550c 100644 --- a/stdlib/strtoull.c +++ b/stdlib/strtoull.c @@ -30,4 +30,5 @@ compat_symbol (libc, __strtoull_internal, __strtouq_internal, GLIBC_2_0); # endif weak_alias (strtoull, strtouq) +weak_alias (strtoull, strtoumax) #endif diff --git a/stdlib/strtoumax.c b/stdlib/strtoumax.c deleted file mode 100644 index 508cb19f8c..0000000000 --- a/stdlib/strtoumax.c +++ /dev/null @@ -1 +0,0 @@ -#error "The correct implementation must be chosen based on the `uintmax_t' type" diff --git a/stdlib/wcstoimax.c b/stdlib/wcstoimax.c deleted file mode 100644 index f1de70f320..0000000000 --- a/stdlib/wcstoimax.c +++ /dev/null @@ -1 +0,0 @@ -#error "The correct implementation must be chosen based on the `intmax_t' type" diff --git a/stdlib/wcstoumax.c b/stdlib/wcstoumax.c deleted file mode 100644 index 508cb19f8c..0000000000 --- a/stdlib/wcstoumax.c +++ /dev/null @@ -1 +0,0 @@ -#error "The correct implementation must be chosen based on the `uintmax_t' type" diff --git a/sysdeps/wordsize-32/strtoimax.c b/sysdeps/wordsize-32/strtoimax.c deleted file mode 100644 index be1b71ee2c..0000000000 --- a/sysdeps/wordsize-32/strtoimax.c +++ /dev/null @@ -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); -} diff --git a/sysdeps/wordsize-32/strtoumax.c b/sysdeps/wordsize-32/strtoumax.c deleted file mode 100644 index c6f090cfc5..0000000000 --- a/sysdeps/wordsize-32/strtoumax.c +++ /dev/null @@ -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) diff --git a/sysdeps/wordsize-32/wcstoimax.c b/sysdeps/wordsize-32/wcstoimax.c deleted file mode 100644 index ce7255859b..0000000000 --- a/sysdeps/wordsize-32/wcstoimax.c +++ /dev/null @@ -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); -} diff --git a/sysdeps/wordsize-32/wcstoumax.c b/sysdeps/wordsize-32/wcstoumax.c deleted file mode 100644 index ee47b250dc..0000000000 --- a/sysdeps/wordsize-32/wcstoumax.c +++ /dev/null @@ -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); -} diff --git a/sysdeps/wordsize-64/strtoimax.c b/sysdeps/wordsize-64/strtoimax.c deleted file mode 100644 index 9df5f2f250..0000000000 --- a/sysdeps/wordsize-64/strtoimax.c +++ /dev/null @@ -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); -} diff --git a/sysdeps/wordsize-64/strtol.c b/sysdeps/wordsize-64/strtol.c index ac17bbe4c8..a1b2374153 100644 --- a/sysdeps/wordsize-64/strtol.c +++ b/sysdeps/wordsize-64/strtol.c @@ -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) diff --git a/sysdeps/wordsize-64/strtoul.c b/sysdeps/wordsize-64/strtoul.c index 401882ce0d..856aa11dee 100644 --- a/sysdeps/wordsize-64/strtoul.c +++ b/sysdeps/wordsize-64/strtoul.c @@ -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) diff --git a/sysdeps/wordsize-64/strtoumax.c b/sysdeps/wordsize-64/strtoumax.c deleted file mode 100644 index aad697bb40..0000000000 --- a/sysdeps/wordsize-64/strtoumax.c +++ /dev/null @@ -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) diff --git a/sysdeps/wordsize-64/wcstoimax.c b/sysdeps/wordsize-64/wcstoimax.c deleted file mode 100644 index 6a91737936..0000000000 --- a/sysdeps/wordsize-64/wcstoimax.c +++ /dev/null @@ -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); -} diff --git a/sysdeps/wordsize-64/wcstol.c b/sysdeps/wordsize-64/wcstol.c index b10895a82b..f99c273d95 100644 --- a/sysdeps/wordsize-64/wcstol.c +++ b/sysdeps/wordsize-64/wcstol.c @@ -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) diff --git a/sysdeps/wordsize-64/wcstoul.c b/sysdeps/wordsize-64/wcstoul.c index 2becb80744..e1458e17f3 100644 --- a/sysdeps/wordsize-64/wcstoul.c +++ b/sysdeps/wordsize-64/wcstoul.c @@ -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) diff --git a/sysdeps/wordsize-64/wcstoumax.c b/sysdeps/wordsize-64/wcstoumax.c deleted file mode 100644 index c11053c5b6..0000000000 --- a/sysdeps/wordsize-64/wcstoumax.c +++ /dev/null @@ -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); -} diff --git a/wcsmbs/wcstoll.c b/wcsmbs/wcstoll.c index 9f5ea00ef6..2871db8884 100644 --- a/wcsmbs/wcstoll.c +++ b/wcsmbs/wcstoll.c @@ -22,3 +22,4 @@ #include "wcstol.c" weak_alias (wcstoll, wcstoq) +weak_alias (wcstoll, wcstoimax) diff --git a/wcsmbs/wcstoull.c b/wcsmbs/wcstoull.c index 7ba8ebde83..b9080302f3 100644 --- a/wcsmbs/wcstoull.c +++ b/wcsmbs/wcstoull.c @@ -22,3 +22,4 @@ #include "wcstoul.c" weak_alias (wcstoull, wcstouq) +weak_alias (wcstoull, wcstoumax) |