mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-26 07:19:16 +08:00
Update gnulib
This updates gnulib to a relatively recent commit. Most of this was done by the gnulib import script; the only change I made was to update-gnulib.sh. Tested on x86-64 Fedora 34. I also did a mingw cross build.
This commit is contained in:
@ -1,18 +1,18 @@
|
||||
/* A GNU-like <stdlib.h>.
|
||||
|
||||
Copyright (C) 1995, 2001-2004, 2006-2021 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 2001-2004, 2006-2022 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
This file 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.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
This file 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 General Public License for more details.
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
#if __GNUC__ >= 3
|
||||
@ -99,6 +99,35 @@ struct random_data
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_DEALLOC (F, I) declares that the function returns pointers
|
||||
that can be freed by passing them as the Ith argument to the
|
||||
function F. */
|
||||
#ifndef _GL_ATTRIBUTE_DEALLOC
|
||||
# if __GNUC__ >= 11
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i) __attribute__ ((__malloc__ (f, i)))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_DEALLOC(f, i)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_DEALLOC_FREE declares that the function returns pointers that
|
||||
can be freed via 'free'; it can be used only after declaring 'free'. */
|
||||
/* Applies to: functions. Cannot be used on inline functions. */
|
||||
#ifndef _GL_ATTRIBUTE_DEALLOC_FREE
|
||||
# define _GL_ATTRIBUTE_DEALLOC_FREE _GL_ATTRIBUTE_DEALLOC (free, 1)
|
||||
#endif
|
||||
|
||||
/* _GL_ATTRIBUTE_MALLOC declares that the function returns a pointer to freshly
|
||||
allocated memory. */
|
||||
/* Applies to: functions. */
|
||||
#ifndef _GL_ATTRIBUTE_MALLOC
|
||||
# if __GNUC__ >= 3 || defined __clang__
|
||||
# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
|
||||
# else
|
||||
# define _GL_ATTRIBUTE_MALLOC
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* The __attribute__ feature is available in gcc versions 2.5 and later.
|
||||
The attribute __pure__ was added in gcc 2.96. */
|
||||
#ifndef _GL_ATTRIBUTE_PURE
|
||||
@ -149,6 +178,28 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
|
||||
#endif
|
||||
|
||||
|
||||
#if @GNULIB_FREE_POSIX@
|
||||
# if @REPLACE_FREE@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef free
|
||||
# define free rpl_free
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (free, void, (void *ptr));
|
||||
_GL_CXXALIAS_RPL (free, void, (void *ptr));
|
||||
# else
|
||||
_GL_CXXALIAS_SYS (free, void, (void *ptr));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (free);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef free
|
||||
/* Assume free is always declared. */
|
||||
_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
|
||||
"use gnulib module free for portability");
|
||||
#endif
|
||||
|
||||
|
||||
/* Allocate memory with indefinite extent and specified alignment. */
|
||||
#if @GNULIB_ALIGNED_ALLOC@
|
||||
# if @REPLACE_ALIGNED_ALLOC@
|
||||
@ -156,21 +207,37 @@ _GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
|
||||
# undef aligned_alloc
|
||||
# define aligned_alloc rpl_aligned_alloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
|
||||
_GL_FUNCDECL_RPL (aligned_alloc, void *,
|
||||
(size_t alignment, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (aligned_alloc, void *, (size_t alignment, size_t size));
|
||||
# else
|
||||
# if @HAVE_ALIGNED_ALLOC@
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (aligned_alloc, void *,
|
||||
(size_t alignment, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (aligned_alloc, void *, (size_t alignment, size_t size));
|
||||
# endif
|
||||
# endif
|
||||
# if @HAVE_ALIGNED_ALLOC@
|
||||
_GL_CXXALIASWARN (aligned_alloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef aligned_alloc
|
||||
# if HAVE_RAW_DECL_ALIGNED_ALLOC
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined aligned_alloc
|
||||
/* For -Wmismatched-dealloc: Associate aligned_alloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (aligned_alloc, void *,
|
||||
(size_t alignment, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK
|
||||
# undef aligned_alloc
|
||||
# if HAVE_RAW_DECL_ALIGNED_ALLOC
|
||||
_GL_WARN_ON_USE (aligned_alloc, "aligned_alloc is not portable - "
|
||||
"use gnulib module aligned_alloc for portability");
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@ -193,24 +260,41 @@ _GL_WARN_ON_USE (atoll, "atoll is unportable - "
|
||||
#endif
|
||||
|
||||
#if @GNULIB_CALLOC_POSIX@
|
||||
# if @REPLACE_CALLOC@
|
||||
# if (@GNULIB_CALLOC_POSIX@ && @REPLACE_CALLOC_FOR_CALLOC_POSIX@) \
|
||||
|| (@GNULIB_CALLOC_GNU@ && @REPLACE_CALLOC_FOR_CALLOC_GNU@)
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef calloc
|
||||
# define calloc rpl_calloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size));
|
||||
_GL_FUNCDECL_RPL (calloc, void *,
|
||||
(size_t nmemb, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size));
|
||||
# else
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (calloc, void *,
|
||||
(size_t nmemb, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (calloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef calloc
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined calloc
|
||||
/* For -Wmismatched-dealloc: Associate calloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (calloc, void *,
|
||||
(size_t nmemb, size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK
|
||||
# undef calloc
|
||||
/* Assume calloc is always declared. */
|
||||
_GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
|
||||
"use gnulib module calloc-posix for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_CANONICALIZE_FILE_NAME@
|
||||
@ -218,13 +302,17 @@ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - "
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define canonicalize_file_name rpl_canonicalize_file_name
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_FUNCDECL_RPL (canonicalize_file_name, char *,
|
||||
(const char *name)
|
||||
_GL_ARG_NONNULL ((1))
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name));
|
||||
# else
|
||||
# if !@HAVE_CANONICALIZE_FILE_NAME@
|
||||
_GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# if !@HAVE_CANONICALIZE_FILE_NAME@ || __GNUC__ >= 11
|
||||
_GL_FUNCDECL_SYS (canonicalize_file_name, char *,
|
||||
(const char *name)
|
||||
_GL_ARG_NONNULL ((1))
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
|
||||
# endif
|
||||
@ -233,12 +321,22 @@ _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name));
|
||||
(!@HAVE_CANONICALIZE_FILE_NAME@ || @REPLACE_CANONICALIZE_FILE_NAME@)
|
||||
# endif
|
||||
_GL_CXXALIASWARN (canonicalize_file_name);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef canonicalize_file_name
|
||||
# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined canonicalize_file_name
|
||||
/* For -Wmismatched-dealloc: Associate canonicalize_file_name with free or
|
||||
rpl_free. */
|
||||
_GL_FUNCDECL_SYS (canonicalize_file_name, char *,
|
||||
(const char *name)
|
||||
_GL_ARG_NONNULL ((1))
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK
|
||||
# undef canonicalize_file_name
|
||||
# if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME
|
||||
_GL_WARN_ON_USE (canonicalize_file_name,
|
||||
"canonicalize_file_name is unportable - "
|
||||
"use gnulib module canonicalize-lgpl for portability");
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@ -288,27 +386,6 @@ _GL_CXXALIASWARN (fcvt);
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_FREE_POSIX@
|
||||
# if @REPLACE_FREE@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef free
|
||||
# define free rpl_free
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (free, void, (void *ptr));
|
||||
_GL_CXXALIAS_RPL (free, void, (void *ptr));
|
||||
# else
|
||||
_GL_CXXALIAS_SYS (free, void, (void *ptr));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (free);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef free
|
||||
/* Assume free is always declared. */
|
||||
_GL_WARN_ON_USE (free, "free is not future POSIX compliant everywhere - "
|
||||
"use gnulib module free for portability");
|
||||
#endif
|
||||
|
||||
#if @GNULIB_MDA_GCVT@
|
||||
/* On native Windows, map 'gcvt' to '_gcvt', so that -loldnames is not
|
||||
required. In C++ with GNULIB_NAMESPACE, avoid differences between
|
||||
@ -398,25 +475,42 @@ _GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
|
||||
by never specifying a zero size), so it does not need malloc or
|
||||
realloc to be redefined. */
|
||||
#if @GNULIB_MALLOC_POSIX@
|
||||
# if @REPLACE_MALLOC@
|
||||
# if (@GNULIB_MALLOC_POSIX@ && @REPLACE_MALLOC_FOR_MALLOC_POSIX@) \
|
||||
|| (@GNULIB_MALLOC_GNU@ && @REPLACE_MALLOC_FOR_MALLOC_GNU@)
|
||||
# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
|
||||
|| _GL_USE_STDLIB_ALLOC)
|
||||
# undef malloc
|
||||
# define malloc rpl_malloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (malloc, void *, (size_t size));
|
||||
_GL_FUNCDECL_RPL (malloc, void *,
|
||||
(size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (malloc, void *, (size_t size));
|
||||
# else
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (malloc, void *,
|
||||
(size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (malloc, void *, (size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (malloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef malloc
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined malloc
|
||||
/* For -Wmismatched-dealloc: Associate malloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (malloc, void *,
|
||||
(size_t size)
|
||||
_GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef malloc
|
||||
/* Assume malloc is always declared. */
|
||||
_GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - "
|
||||
"use gnulib module malloc-posix for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Convert a multibyte character to a wide character. */
|
||||
@ -736,29 +830,35 @@ _GL_CXXALIASWARN (putenv);
|
||||
/* Sort an array of NMEMB elements, starting at address BASE, each element
|
||||
occupying SIZE bytes, in ascending order according to the comparison
|
||||
function COMPARE. */
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif
|
||||
# if !GNULIB_defined_qsort_r_fn_types
|
||||
typedef int (*_gl_qsort_r_compar_fn) (void const *, void const *, void *);
|
||||
# define GNULIB_defined_qsort_r_fn_types 1
|
||||
# endif
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif
|
||||
# if @REPLACE_QSORT_R@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef qsort_r
|
||||
# define qsort_r rpl_qsort_r
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
|
||||
int (*compare) (void const *, void const *,
|
||||
void *),
|
||||
_gl_qsort_r_compar_fn compare,
|
||||
void *arg) _GL_ARG_NONNULL ((1, 4)));
|
||||
_GL_CXXALIAS_RPL (qsort_r, void, (void *base, size_t nmemb, size_t size,
|
||||
int (*compare) (void const *, void const *,
|
||||
void *),
|
||||
_gl_qsort_r_compar_fn compare,
|
||||
void *arg));
|
||||
# else
|
||||
# if !@HAVE_QSORT_R@
|
||||
_GL_FUNCDECL_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
|
||||
int (*compare) (void const *, void const *,
|
||||
void *),
|
||||
_gl_qsort_r_compar_fn compare,
|
||||
void *arg) _GL_ARG_NONNULL ((1, 4)));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
|
||||
int (*compare) (void const *, void const *,
|
||||
void *),
|
||||
_gl_qsort_r_compar_fn compare,
|
||||
void *arg));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (qsort_r);
|
||||
@ -1009,35 +1109,60 @@ _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - "
|
||||
|
||||
|
||||
#if @GNULIB_REALLOC_POSIX@
|
||||
# if @REPLACE_REALLOC@
|
||||
# if (@GNULIB_REALLOC_POSIX@ && @REPLACE_REALLOC_FOR_REALLOC_POSIX@) \
|
||||
|| (@GNULIB_REALLOC_GNU@ && @REPLACE_REALLOC_FOR_REALLOC_GNU@)
|
||||
# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
|
||||
|| _GL_USE_STDLIB_ALLOC)
|
||||
# undef realloc
|
||||
# define realloc rpl_realloc
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size));
|
||||
_GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)
|
||||
_GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
_GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size));
|
||||
# else
|
||||
# if __GNUC__ >= 11
|
||||
/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
|
||||
_GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size));
|
||||
# endif
|
||||
# if __GLIBC__ >= 2
|
||||
_GL_CXXALIASWARN (realloc);
|
||||
# endif
|
||||
#elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef realloc
|
||||
#else
|
||||
# if @GNULIB_FREE_POSIX@ && __GNUC__ >= 11 && !defined realloc
|
||||
/* For -Wmismatched-dealloc: Associate realloc with free or rpl_free. */
|
||||
_GL_FUNCDECL_SYS (realloc, void *, (void *ptr, size_t size)
|
||||
_GL_ATTRIBUTE_DEALLOC_FREE);
|
||||
# endif
|
||||
# if defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC
|
||||
# undef realloc
|
||||
/* Assume realloc is always declared. */
|
||||
_GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - "
|
||||
"use gnulib module realloc-posix for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
#if @GNULIB_REALLOCARRAY@
|
||||
# if ! @HAVE_REALLOCARRAY@
|
||||
# if @REPLACE_REALLOCARRAY@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# undef reallocarray
|
||||
# define reallocarray rpl_reallocarray
|
||||
# endif
|
||||
_GL_FUNCDECL_RPL (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
_GL_CXXALIAS_RPL (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
# else
|
||||
# if ! @HAVE_REALLOCARRAY@
|
||||
_GL_FUNCDECL_SYS (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (reallocarray, void *,
|
||||
(void *ptr, size_t nmemb, size_t size));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (reallocarray);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef reallocarray
|
||||
@ -1202,6 +1327,47 @@ _GL_WARN_ON_USE (strtold, "strtold is unportable - "
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOL@
|
||||
/* Parse a signed integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
|
||||
"0x").
|
||||
If ENDPTR is not NULL, the address of the first byte after the integer is
|
||||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is LONG_MAX or LONG_MIN, and errno is set
|
||||
to ERANGE. */
|
||||
# if @REPLACE_STRTOL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtol rpl_strtol
|
||||
# endif
|
||||
# define GNULIB_defined_strtol_function 1
|
||||
_GL_FUNCDECL_RPL (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOL@
|
||||
_GL_FUNCDECL_SYS (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtol, long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtol);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtol
|
||||
# if HAVE_RAW_DECL_STRTOL
|
||||
_GL_WARN_ON_USE (strtol, "strtol is unportable - "
|
||||
"use gnulib module strtol for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOLL@
|
||||
/* Parse a signed integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
@ -1211,15 +1377,29 @@ _GL_WARN_ON_USE (strtold, "strtold is unportable - "
|
||||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set
|
||||
to ERANGE. */
|
||||
# if !@HAVE_STRTOLL@
|
||||
# if @REPLACE_STRTOLL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtoll rpl_strtoll
|
||||
# endif
|
||||
# define GNULIB_defined_strtoll_function 1
|
||||
_GL_FUNCDECL_RPL (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOLL@
|
||||
_GL_FUNCDECL_SYS (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtoll, long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtoll);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtoll
|
||||
@ -1229,6 +1409,46 @@ _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOUL@
|
||||
/* Parse an unsigned integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
it may be decimal or octal (with prefix "0") or hexadecimal (with prefix
|
||||
"0x").
|
||||
If ENDPTR is not NULL, the address of the first byte after the integer is
|
||||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is ULONG_MAX, and errno is set to ERANGE. */
|
||||
# if @REPLACE_STRTOUL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtoul rpl_strtoul
|
||||
# endif
|
||||
# define GNULIB_defined_strtoul_function 1
|
||||
_GL_FUNCDECL_RPL (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOUL@
|
||||
_GL_FUNCDECL_SYS (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtoul, unsigned long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtoul);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtoul
|
||||
# if HAVE_RAW_DECL_STRTOUL
|
||||
_GL_WARN_ON_USE (strtoul, "strtoul is unportable - "
|
||||
"use gnulib module strtoul for portability");
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if @GNULIB_STRTOULL@
|
||||
/* Parse an unsigned integer whose textual representation starts at STRING.
|
||||
The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0,
|
||||
@ -1238,15 +1458,29 @@ _GL_WARN_ON_USE (strtoll, "strtoll is unportable - "
|
||||
stored in *ENDPTR.
|
||||
Upon overflow, the return value is ULLONG_MAX, and errno is set to
|
||||
ERANGE. */
|
||||
# if !@HAVE_STRTOULL@
|
||||
# if @REPLACE_STRTOULL@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
# define strtoull rpl_strtoull
|
||||
# endif
|
||||
# define GNULIB_defined_strtoull_function 1
|
||||
_GL_FUNCDECL_RPL (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
_GL_CXXALIAS_RPL (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# else
|
||||
# if !@HAVE_STRTOULL@
|
||||
_GL_FUNCDECL_SYS (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base)
|
||||
_GL_ARG_NONNULL ((1)));
|
||||
# endif
|
||||
# endif
|
||||
_GL_CXXALIAS_SYS (strtoull, unsigned long long,
|
||||
(const char *restrict string, char **restrict endptr,
|
||||
int base));
|
||||
# endif
|
||||
_GL_CXXALIASWARN (strtoull);
|
||||
#elif defined GNULIB_POSIXCHECK
|
||||
# undef strtoull
|
||||
|
Reference in New Issue
Block a user